package documentation mcp

Local 2025-08-31 23:37:41 0

Fetches and extracts comprehensive package documentation from multiple programming language ecosystems (JavaScript, Python, Java, etc.) for LLMs like Claude without requiring API keys.


smithery badge npm version npm downloads

An MCP server that fetches package documentation from multiple language ecosystems for LLMs like Claude without requiring API keys.

DocsFetcher Server MCP server

✨ Features

  • ? Supports multiple programming languages (JavaScript, Python, Java, .NET, Ruby, PHP, Rust, Go, Swift)
  • ? Fetches documentation for packages by name or URL
  • ? Crawls documentation sites to extract comprehensive information
  • ? Extracts README, API docs, code examples, and repository info
  • ? Provides structured data for LLM summarization
  • ? Includes specialized prompts for documentation analysis
  • ? No API key required - works natively with Claude Desktop and Cursor IDE

? Installation

Claude Desktop

  1. Open Claude Desktop → Settings → Developer
  2. Click "Edit Config" and add:
{
  "mcpServers": {
    "docsFetcher": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@cdugo/mcp-get-docs",
        "--config",
        "'{}'"
      ]
    }
  }
}

Cursor IDE Configuration

  1. Open Cursor IDE → Settings → MCP -> Add New MCP Servier
  2. Add:
    Name: docsFetcher
    Command: npx -y @smithery/cli@latest run @cdugo/mcp-get-docs --config "{}"

Prerequisites

  • ? Node.js 18 or later

?‍♂️ Running Locally

git clone https://github.com/cdugo/package-documentation-mcp
cd package-documentation-mcp
npm install
npm run build

Once installed, you can run the server locally with:

# From the project root directory
npm start

For development with auto-restart on file changes:

npm run dev

The server will start on the default port (usually 3000). You should see output like:

? DocsFetcher MCP Server running!
? Ready to fetch documentation

To specify a custom port:

PORT=8080 npm start

?️ Available Tools

  1. fetch-url-docs: ? Fetch docs from a specific URL
  2. fetch-package-docs: ? Fetch docs for a package with optional language specification
  3. fetch-library-docs: ? Smart tool that works with either package name or URL
  4. fetch-multilingual-docs: ? Fetch docs for a package across multiple language ecosystems

? Available Prompts

  1. summarize-library-docs: ? Create a comprehensive library summary
  2. explain-dependency-error: ? Generate dependency error explanations

? Example Queries

Basic Library Information

  • "What is Express.js and how do I use it?"
  • "Tell me about the React library"
  • "How do I use requests in Python?"

Multi-language Support

  • "Show me documentation for lodash in JavaScript"
  • "Compare pandas in Python and data.table in R"

Using Tools

  • "@fetch-package-docs with packageName='express' and language='javascript'"
  • "@fetch-package-docs with packageName='requests' and language='python'"
  • "@fetch-multilingual-docs with packageName='http' and languages=['javascript', 'python', 'rust']"

Using Prompts

  • "@summarize-library-docs with libraryName='express'"
  • "@explain-dependency-error with packageName='dotenv'"

❓ Troubleshooting

Local Installation

  • Server not showing up: ✅ Verify absolute path in configuration
  • Connection errors: ? Restart Claude Desktop or Cursor IDE
  • Fetch failures: ⚠️ Some packages may have non-standard documentation
  • Language support: ? If a language isn't working, try using the package's direct URL

? License

MIT

[
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "url": {
          "description": "URL of the library documentation to fetch",
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "name": "fetch-url-docs"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "language": {
          "description": "Programming language or repository type (e.g., javascript, python, java, dotnet)",
          "type": "string"
        },
        "packageName": {
          "description": "Name of the package to fetch documentation for",
          "type": "string"
        }
      },
      "required": [
        "packageName"
      ],
      "type": "object"
    },
    "name": "fetch-package-docs"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "language": {
          "description": "Programming language or repository type if providing a package name (e.g., javascript, python, java, dotnet)",
          "type": "string"
        },
        "library": {
          "description": "Name of the package or URL of the library documentation to fetch",
          "type": "string"
        }
      },
      "required": [
        "library"
      ],
      "type": "object"
    },
    "name": "fetch-library-docs"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "languages": {
          "description": "List of programming languages or repository types to check (e.g., javascript, python, java)",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "packageName": {
          "description": "Name of the package to fetch documentation for",
          "type": "string"
        }
      },
      "required": [
        "packageName",
        "languages"
      ],
      "type": "object"
    },
    "name": "fetch-multilingual-docs"
  }
]