developer-tools

Package Docs

sammcj

by sammcj

Access up-to-date library info for NPM, Go & Python with Package Docs. Quickly find docs for python requests & npm cmd;

Provides efficient access to NPM/Go/Python package documentation through smart parsing and caching, enabling quick retrieval of up-to-date library information.

github stars

80

0 commentsdiscussion

Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.

Built-in caching for performanceMulti-language support (Go, Python, NPM, Rust)Smart parsing avoids context overload

best for

  • / Developers needing quick package reference
  • / Code review and documentation lookup
  • / Multi-language project development
  • / Package evaluation and comparison

capabilities

  • / Query NPM package documentation
  • / Access Go package docs via go doc
  • / Retrieve Python library help information
  • / Search Rust crate documentation
  • / Parse code symbols and functions
  • / Search within documentation with fuzzy matching

what it does

Provides LLMs with cached access to package documentation across NPM, Go, Python, and Rust ecosystems with smart parsing and search capabilities.

about

Package Docs is a community-built MCP server published by sammcj that provides AI assistants with tools and capabilities via the Model Context Protocol. Access up-to-date library info for NPM, Go & Python with Package Docs. Quickly find docs for python requests & npm cmd; It is categorized under developer tools.

how to install

You can install Package Docs in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.

license

MIT

Package Docs is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.

readme

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.

Note: I am not actively maintaining the codebase at present. While it doesn't provide access to private package documentation - the Context7 MCP server and service meets my needs which are mostly for public package documentation. I personally use Context7 via my mcp-devtools MCP server which is actively maintained.

Features

  • Multi-Language Support:

    • Go packages via go doc
    • Python libraries via built-in help()
    • NPM packages via registry documentation (including private registries)
    • Rust crates via crates.io and docs.rs
  • 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

Note: I do not recommend using npx -y to run your MCP servers in production as you're esentially trusting whatever package you're downloading off the internet at that moment in time. I highly recommend cloning the repository locally or building into a container image.

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"],
      "env": {
        "ENABLE_LSP": "true" // Optional: Enable Language Server Protocol support
      }
    }
  }
}
  1. 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:

{
  "mcpServers": {
    "package-docs": {
      "command": "npx",
      "args": ["-y", "mcp-package-docs"],
      "env": {
        "ENABLE_LSP": "true",
        "TYPESCRIPT_SERVER": "{"command":"/custom/path/typescript-language-server","args":["--stdio"]}"
      }
    }
  }
}
  1. The server provides the following tools:

lookup_go_doc / describe_go_package

Fetches Go package documentation

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

lookup_python_doc / describe_python_package

Fetches Python package documentation

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

describe_rust_package

Fetches Rust crate documentation from crates.io and docs.rs

{
  "name": "describe_rust_package",
  "arguments": {
    "package": "serde",      // required: crate name
    "version": "1.0.219"     // optional: specific version
  }
}

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", "npm", "swift", or "rust"
    "fuzzy": true            // optional: enable fuzzy matching (default: true)
  }
}

lookup_npm_doc / describe_npm_package

Fetches NPM package documentation from both public and private registries. Automatically uses the appropriate registry based on your .npmrc configuration.

{
  "name": "describe_npm_package",
  "arguments": {
    "package": "axios",      // required - supports both scoped (@org/pkg) and unscoped packages
    "version": "1.6.0"       // optional
  }
}

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:

registry=https://nexus.mycompany.com/repository/npm-group/
@mycompany:registry=https://nexus.mycompany.com/repository/npm-private/
@mycompany-ct:registry=https://npm.pkg.github.com/

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

{
  "name": "get_hover",
  "arguments": {
    "languageId": "typescript", // required: language identifier (e.g., "typescript", "javascript")
    "filePath": "src/index.ts", // required: path to the source file
    "content": "const x = 1;",  // required: content of the file
    "line": 0,                  // required: zero-based line number
    "character": 6,             // required: zero-based character position
    "projectRoot": "/path/to/project" // optional: project root directory
  }
}

get_completions

Get completion suggestions for a position in a document

{
  "name": "get_completions",
  "arguments": {
    "languageId": "typescript", // required: language identifier
    "filePath": "src/index.ts", // required: path to the source file
    "content": "const arr = []; arr.",  // required: content of the file
    "line": 0,                  // required: zero-based line number
    "character": 16,            // required: zero-based character position
    "projectRoot": "/path/to/project" // optional: project root directory
  }
}

get_diagnostics

Get diagnostic information (errors, warnings) for a document

{
  "name": "get_diagnostics",
  "arguments": {
    "languageId": "typescript", // required: language identifier
    "filePath": "src/index.ts", // required: path to the source file
    "content": "const x: string = 1;",  // required: content of the file
    "projectRoot": "/path/to/project" // optional: project root directory
  }
}

Example Usage in an LLM

Looking up Documentation

// Looking up Go documentation
const goDocResult = await use_mcp_tool({
  server_name: "package-docs",
  tool_name: "describe_go_package",
  arguments: {
    package: "encoding/json",
    symbol: "Marshal"
  }
});

// Looking up Python documentation
const pythonDocResult = await use_mcp_tool({
  server_name: "package-docs",
  tool_name: "describe_python_package",
  arguments: {
    package: "requests",
    symbol: "post"
  }
});

// Looking up Rust documentation
const rustDocResult = await use_mcp_tool({
  server_name: "package-docs",
  tool_name: "describe_rust_package",
  arguments: {
    package: "serde"
  }
});

// Searching within documentation
const searchResult = await use_mcp_tool({
  server_name: "package-docs",
  tool_name: "search_package_docs",
  arguments: {
    package: "serde",
    query: "serialize",
    language: "rust",
    fuzzy: true
  }
});

// Using LSP for hover information (when LSP is enabled)
const hoverResult = await use_mcp_tool({
  server_name: "package-docs",
  tool_name: "get_hover",
  arguments: {
    languageId: "typescript",
    filePath: "src/index.ts",
    content: "const axios = require('axios');
axios.get",
    line: 1,
    character: 7
  }
});

Requirements

  • Node.js >= 20
  • Go (for Go package documentation)
  • Python 3 (for Python package documentation)
  • Internet connection (for NPM package documentation and Rust crate documentation)
  • Language servers (for LSP functionality):
    • TypeScript/JavaScript: npm install -g typescript-language-server typescript
    • HTML/CSS/JSON: npm install -g vscode-langservers-extracted

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.

FAQ

What is the Package Docs MCP server?
Package Docs is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
How do MCP servers relate to agent skills?
Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
How are reviews shown for Package Docs?
This profile displays 43 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.7 out of 5—verify behavior in your own environment before production use.

Use Cases

Extended AI Capabilities

Add new capabilities to Claude beyond text generation

Example

Access external data sources, execute code, interact with tools and services

Transform Claude from chatbot to action-taking agent

Context Enhancement

Provide Claude with access to relevant context and data

Example

Load project documentation, access knowledge bases, query databases

Get more accurate, context-aware responses

Workflow Automation

Automate multi-step workflows combining AI and external tools

Example

Research → Summarize → Create document → Send notification

Complete complex tasks end-to-end without manual steps

Implementation Guide

Prerequisites

  • Claude Desktop 0.7.0+ or Cursor IDE with MCP support
  • Basic understanding of MCP architecture and capabilities
  • Access credentials for integrated services (if required)
  • Willingness to experiment and iterate on configuration

Time Estimate

15-60 minutes depending on server complexity

Installation Steps

  1. 1.Install MCP server: npm install -g [package-name] or via GitHub
  2. 2.Add server configuration to ~/.claude/mcp.json
  3. 3.Provide required credentials and configuration
  4. 4.Restart Claude Desktop to load new server
  5. 5.Test basic functionality with simple prompts
  6. 6.Explore capabilities and experiment with use cases
  7. 7.Document successful patterns for reuse

Troubleshooting

  • MCP server not loading: Check config syntax, verify installation
  • Connection errors: Check network, firewall, credentials
  • Feature not working: Read server docs, check required parameters
  • Performance issues: Monitor resource usage, check for network latency
  • Conflicts with other servers: Check port assignments, namespace collisions

Best Practices

✓ Do

  • +Read server documentation thoroughly before setup
  • +Start with simple use cases to validate functionality
  • +Test in non-production environment first
  • +Monitor resource usage and performance
  • +Keep servers updated for bug fixes and new features
  • +Document configuration for team members
  • +Use environment variables for sensitive configuration

✗ Don't

  • Don't grant overly permissive access to MCP servers
  • Don't skip reading security considerations in docs
  • Don't expose sensitive data without proper controls
  • Don't run untrusted MCP servers without code review
  • Don't ignore error messages—investigate root cause

💡 Pro Tips

  • Combine multiple MCP servers for powerful workflows
  • Create custom MCP servers for your specific needs
  • Share successful configurations with team
  • Use MCP inspector for debugging
  • Join MCP community for tips and troubleshooting

Technical Details

Architecture

Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.

Protocols

  • Model Context Protocol (MCP)
  • JSON-RPC 2.0
  • stdio or HTTP transport

Compatibility

  • Claude Desktop
  • Cursor IDE
  • Custom MCP clients

When to Use This

✓ Use When

Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.

✗ Avoid When

Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.

Integration

  • Tool composition: Chain multiple MCP tools in workflows
  • Context augmentation: Provide AI with relevant external data
  • Action delegation: Let AI execute tasks on external systems
  • Bidirectional sync: Keep AI context and external systems in sync

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.

List & Promote Your MCP Server

Share your MCP server with the developer community

GET_STARTED →
MCP server reviews

Ratings

4.743 reviews
  • Chaitanya Patil· Dec 20, 2024

    Package Docs has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.

  • Zara Johnson· Dec 12, 2024

    According to our notes, Package Docs benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.

  • Evelyn Choi· Dec 4, 2024

    Package Docs is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.

  • Evelyn Perez· Nov 23, 2024

    We wired Package Docs into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.

  • Piyush G· Nov 11, 2024

    Package Docs reduced integration guesswork — categories and install configs on the listing matched the upstream repo.

  • Yuki Huang· Nov 3, 2024

    I recommend Package Docs for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.

  • Fatima Gill· Oct 22, 2024

    We evaluated Package Docs against two servers with overlapping tools; this profile had the clearer scope statement.

  • Yuki Martin· Oct 14, 2024

    Package Docs reduced integration guesswork — categories and install configs on the listing matched the upstream repo.

  • Shikha Mishra· Oct 2, 2024

    We wired Package Docs into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.

  • Fatima Sethi· Sep 17, 2024

    Package Docs is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.

showing 1-10 of 43

1 / 5