MCP Package Docs Server
Package Documentation MCP Server
An MCP (Model Context Protocol) server that provides LLMs with efficient access to package documentation across multiple programming languages and language server protocol (LSP) capabilities.
<a href="https://glama.ai/mcp/servers/mrk7ul7nz7"><img width="380" height="200" src="https://glama.ai/mcp/servers/mrk7ul7nz7/badge" alt="Package Docs Server MCP server" /></a>
Features
- Multi-Language Support:
- Go packages via
go doc
- Python libraries via built-in
help()
- NPM packages via registry documentation (including private registries)
- Go packages via
- 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
- Language Server Protocol (LSP) Support:
- Hover information for code symbols
- Code completions
- Diagnostics (errors and warnings)
- Currently supports TypeScript/JavaScript
- Extensible for other languages
- Performance Optimised:
- Built-in caching
- Efficient parsing
- Minimal memory footprint
Installation
Installing via Smithery
To install Package Docs for Claude Desktop automatically via Smithery:
Usage
As an MCP Server
- Add to your MCP settings configuration:
- The LSP functionality includes default configurations for common language servers:
- TypeScript/JavaScript:
typescript-language-server --stdio
- HTML:
vscode-html-language-server --stdio
- CSS:
vscode-css-language-server --stdio
- JSON:
vscode-json-language-server --stdio
You can override these defaults if needed:
- The server provides the following tools:
lookup_go_doc
Fetches Go package documentation
lookup_python_doc
Fetches Python package documentation
search_package_docs
Search within package documentation
lookup_npm_doc
Fetches NPM package documentation from both public and private registries. Automatically uses the appropriate registry based on your .npmrc configuration.
The tool reads your ~/.npmrc file to determine the correct registry for each package:
- Uses scoped registry configurations (e.g., @mycompany:registry=...)
- Supports private registries (GitHub Packages, GitLab, Nexus, Artifactory, etc.)
- Falls back to the default npm registry if no custom registry is configured
Example .npmrc configurations:
Language Server Protocol (LSP) Tools
When LSP support is enabled, the following additional tools become available:
get_hover
Get hover information for a position in a document
get_completions
Get completion suggestions for a position in a document
get_diagnostics
Get diagnostic information (errors, warnings) for a document
Example Usage in an LLM
Looking up Documentation
Requirements
- Node.js >= 20
- Go (for Go package documentation)
- Python 3 (for Python package documentation)
- Internet connection (for NPM package documentation)
- Language servers (for LSP functionality):
- TypeScript/JavaScript:
npm install -g typescript-language-server typescript
- HTML/CSS/JSON:
npm install -g vscode-langservers-extracted
- TypeScript/JavaScript:
Development
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
You must be authenticated.
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.