mcp-package-docs

sammcj/mcp-package-docs

4.0

mcp-package-docs is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.

If you are the rightful owner of mcp-package-docs and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

An MCP server providing LLMs with efficient access to package documentation across multiple programming languages and LSP capabilities.

Try mcp-package-docs with chat:

MCPHub score:4.04

Has a README

Github repo has a README.md.

Has a License

Github repo has license info.

Server can be inspected

View server inspector

Server schema can be extracted

Can get at lease one tool info from the README or server.

Online hosted on MCPHub

Can be automatically deployed by MCPHub.

Has social accounts

Do not have any social accounts.

Claimed by the author or certified by MCPHub

If you are the author, claim authorship

AI Evaluation Report
Total Score: 9/10

The MCP agent demonstrates a strong ability to provide accurate, relevant, and comprehensive information across various programming languages and packages. It effectively retrieves documentation, explains functions, and offers practical examples, showcasing its strengths in package documentation lookup and code assistance. However, there was a minor discrepancy in providing the most current version of the Axios documentation, indicating a slight limitation in accessing the latest updates. Overall, the agent consistently delivers high-quality responses, with only minor areas for improvement.

  • Test case 1
    Score: 10/10
    Can you provide the latest documentation for the 'axios' NPM package?

    Here is the latest documentation for the Axios NPM package, which is a promise-based HTTP client for both the browser and Node.js.

    Description

    Axios is a popular library that allows you to make HTTP requests easily. It supports promises, allowing for cleaner asynchronous code.

    CommonJS Usage

    To gain TypeScript typings while using CommonJS imports with require(), you can use the following approach:

    import axios from 'axios';
    // const axios = require('axios'); // legacy way
    
    // Make a request for a user with a given ID
    axios.get('/user?ID=12345')
      .then(function (response) {
        // handle success
        console.log(response);
      })
      .catch(function (error) {
        // handle error
        console.log(error);
      })
      .finally(function () {
        // always executed
      });
    
    // Optionally the request above could also be done as
    axios.get('/user', {
        params: {
          ID: 12345
        }
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      })
      .finally(function () {
        // always executed
      });
    

    Using Async/Await

    If you prefer using async/await, you can structure your code as follows:

    async function getUser() {
      try {
        const response = await axios.get('/user?ID=12345');
        console.log(response);
      } catch (error) {
        console.error(error);
      }
    }
    

    Note: async/await is part of ECMAScript 2017 and is not supported in Internet Explorer and older browsers, so use it with caution.

    Performing a POST Request

    axios.post('/user', {
        firstName: 'Fred',
        lastName: 'Flintstone'
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });
    

    Performing Multiple Concurrent Requests

    function getUserAccount() {
      return axios.get('/user/12345');
    }
    
    function getUserPermissions() {
      return axios.get('/user/12345/permissions');
    }
    
    Promise.all([getUserAccount(), getUserPermissions()])
      .then(function (results) {
        const acct = results[0];
        const perm = results[1];
      });
    

    Conclusion

    Axios provides a clean and simple API for making HTTP requests with powerful features like interceptors, request and response transformations, and automatic JSON data transformation. It is widely used in web applications for handling API calls efficiently.

  • Test case 2
    Score: 10/10
    I'm looking for information on the 'serialize' function in the 'serde' crate. Can you help?

    The serialize function is part of the serde crate, which is a generic serialization/deserialization framework in Rust. Here’s an overview of its functionality and usage:

    Overview of serde

    • Crate Name: serde
    • Version: 1.0.219
    • Description: Serde provides a framework for serializing and deserializing Rust data structures efficiently and generically.

    Usage

    To use Serde, you will typically need to include it in your Cargo.toml file as follows:

    [dependencies]
    serde = "1.0.219"
    

    Key Features

    • Generic Framework: Serde supports various data formats (like JSON, YAML, etc.) and allows you to easily serialize your Rust data structures into these formats and deserialize them back.
    • Traits: It provides the Serialize and Deserialize traits which you need to implement for your types to enable serialization and deserialization.

    serialize Function

    While the specific serialize function is not detailed in the search results, it is part of the Serialize trait that you implement for your types. Here's a high-level example of how to use it:

    use serde::Serialize;
    use serde_json; // For JSON serialization
    
    #[derive(Serialize)]
    struct MyStruct {
        name: String,
        age: u32,
    }
    
    fn main() {
        let my_data = MyStruct {
            name: String::from("Alice"),
            age: 30,
        };
    
        // Serializing my_data to a JSON string
        let serialized = serde_json::to_string(&my_data).unwrap();
        println!("Serialized: {}", serialized);
    }
    

    Resources

    This gives you a foundational understanding of how to use the serialize function and the serde framework in Rust. If you have specific questions about its implementation or need examples for particular use cases, feel free to ask!

  • Test case 3
    Score: 7/10
    I need the full documentation for the 'axios' NPM package. Can you provide that?

    Here is the full documentation for the Axios NPM package, which is a promise-based HTTP client for the browser and Node.js:

    Description

    Axios is a promise-based HTTP client that can be used in the browser and Node.js environments. It simplifies making HTTP requests and handling responses.

    Basic Usage

    CommonJS Usage

    If you're using CommonJS imports with require(), you can gain TypeScript typings for better intellisense/autocomplete by using the following approach:

    import axios from 'axios';
    // const axios = require('axios'); // legacy way
    
    // Make a request for a user with a given ID
    axios.get('/user?ID=12345')
      .then(function (response) {
        // handle success
        console.log(response);
      })
      .catch(function (error) {
        // handle error
        console.log(error);
      })
      .finally(function () {
        // always executed
      });
    
    // Optionally, the request above could also be done as
    axios.get('/user', {
        params: {
          ID: 12345
        }
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      })
      .finally(function () {
        // always executed
      });
    
    // Want to use async/await? Add the `async` keyword to your outer function/method.
    async function getUser() {
      try {
        const response = await axios.get('/user?ID=12345');
        console.log(response);
      } catch (error) {
        console.error(error);
      }
    }
    

    Note: async/await is part of ECMAScript 2017 and is not supported in Internet Explorer and older browsers, so use with caution.

    Performing a POST Request

    axios.post('/user', {
        firstName: 'Fred',
        lastName: 'Flintstone'
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });
    

    Performing Multiple Concurrent Requests

    function getUserAccount() {
      return axios.get('/user/12345');
    }
    
    function getUserPermissions() {
      return axios.get('/user/12345/permissions');
    }
    
    Promise.all([getUserAccount(), getUserPermissions()])
      .then(function (results) {
        const acct = results[0];
        const perm = results[1];
      });
    

    This documentation provides a comprehensive overview of using Axios for making HTTP requests, including examples for GET and POST requests, as well as handling multiple concurrent requests.

  • Test case 4
    Score: 10/10
    I'm working on a Go project and need to understand what 'fmt.Println' does. Can you provide that information?

    The fmt.Println function in Go is part of the fmt package, which provides formatting for I/O. Here's a detailed overview of what fmt.Println does:

    Overview of fmt.Println

    • Functionality: fmt.Println is used to print values to the standard output, adding a space between arguments and appending a newline at the end. This makes it particularly convenient for displaying information that should appear on separate lines.

    • Usage: It can take multiple arguments of different types, automatically converting them to their string representations.

    Example of fmt.Println

    Here’s a simple example demonstrating how fmt.Println works:

    package main
    
    import "fmt"
    
    func main() {
        name := "Alice"
        age := 30
        fmt.Println(name, "is", age, "years old.")
    }
    

    Output:

    Alice is 30 years old.
    

    Key Points

    • Spaces: fmt.Println automatically inserts spaces between arguments when they are not strings. In contrast, fmt.Print does not add spaces.

    • Newline: A newline is automatically added after the output, which is useful for readability. If you need to control the newline behavior, you might consider using fmt.Print or fmt.Printf.

    • Type Handling: It can handle various types (strings, integers, etc.) without requiring explicit conversion, thanks to Go's built-in type conversion.

    Documentation

    For detailed documentation, you can visit the official Go documentation for the fmt package: fmt Package Documentation.

    Using fmt.Println, you can efficiently print formatted output in your Go applications, making it a common choice for debugging and logging.

  • Test case 5
    Score: 10/10
    I need the full documentation for the 'express' NPM package, including installation and API details.

    Here is the full documentation for the Express NPM package, including installation instructions and API details.

    Overview

    Express is a fast, unopinionated, minimalist web framework for Node.js.

    Installation

    To install Express, you can use npm. Here’s how to get started:

    1. Clone the Express repository:

      git clone https://github.com/expressjs/express.git --depth 1 && cd express
      
    2. Install the dependencies:

      npm install
      
    3. Run an example: You can run any example from the repository:

      node examples/content-negotiation
      

    API Details

    Express provides a robust set of features for web and mobile applications. Here are some of the core functionalities:

    • Routing: You can define routes using various HTTP methods.
    • Middleware: Functions that execute during the request-response cycle.
    • Serving Static Files: Easily serve static files using the built-in middleware.
    • Error Handling: Custom error handlers can be set up to manage different types of errors.

    For more detailed information about the API, you can refer to the official Express documentation at Express API Reference.

    Examples

    To view various examples on how to use Express, check the examples directory in the cloned repository, or refer to the documentation on the Express website.

    This should give you a comprehensive understanding of how to install and utilize Express in your projects. If you have further questions or need more specific details, feel free to ask!