Skip to Content
MCP ServersCommunityPackage Documentation MCP Server

Package Documentation MCP Server

View original on GitHub 

smithery badge

An MCP (Model Context Protocol) server that provides LLMs with efficient access to package documentation across multiple programming languages.

Package Docs Server MCP server

Features

  • Multi-Language Support:

    • Go packages via go doc
    • Python libraries via built-in help()
    • NPM packages via registry documentation
  • Smart Documentation Parsing:

    • Structured output with description, usage, and examples
    • Focused information to avoid context overload
    • Support for specific symbol/function lookups
    • Fuzzy and exact search capabilities across documentation
  • Advanced Search Features:

    • Search within package documentation
    • Fuzzy matching for flexible queries
    • Context-aware results with relevance scoring
    • Symbol extraction from search results
  • Performance Optimised:

    • Built-in caching
    • Efficient parsing
    • Minimal memory footprint

Installation

Installing via Smithery

To install Package Docs for Claude Desktop automatically via Smithery :

npx -y @smithery/cli install mcp-package-docs --client claude

Manual Installation

npx -y mcp-package-docs

Usage

As an MCP Server

  1. Add to your MCP settings configuration:
{ "mcpServers": { "package-docs": { "command": "npx", "args": ["-y", "mcp-package-docs"] } } }
  1. The server provides the following tools:

lookup_go_doc

Fetches Go package documentation

{ "name": "lookup_go_doc", "arguments": { "package": "encoding/json", // required "symbol": "Marshal" // optional } }

lookup_python_doc

Fetches Python package documentation

{ "name": "lookup_python_doc", "arguments": { "package": "requests", // required "symbol": "get" // optional } }

search_package_docs

Search within package documentation

{ "name": "search_package_docs", "arguments": { "package": "requests", // required: package name "query": "authentication", // required: search query "language": "python", // required: "go", "python", or "npm" "fuzzy": true // optional: enable fuzzy matching (default: true) } }

lookup_npm_doc

Fetches NPM package documentation

{ "name": "lookup_npm_doc", "arguments": { "package": "axios", // required "version": "1.6.0" // optional } }

Example Usage in an LLM

Looking up Documentation

// Looking up documentation const docResult = await use_mcp_tool({ server_name: "package-docs", tool_name: "lookup_python_doc", arguments: { package: "requests", symbol: "post" } }); // Searching within documentation const searchResult = await use_mcp_tool({ server_name: "package-docs", tool_name: "search_package_docs", arguments: { package: "requests", query: "authentication headers", language: "python", fuzzy: true } });

Requirements

  • Node.js >= 20
  • Go (for Go package documentation)
  • Python 3 (for Python package documentation)
  • Internet connection (for NPM package documentation)

Development

# Install dependencies npm i # Build npm run build # Watch mode npm run watch

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Last updated on