MCP Package Docs Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides Language Server Protocol (LSP) support for CSS through vscode-css-language-server

  • Supports private npm registries including GitHub Packages via .npmrc configuration

  • Supports private npm registries including GitLab via .npmrc configuration

Documentación del paquete MCP Server

Un servidor MCP (Protocolo de contexto de modelo) que proporciona a los LLM un acceso eficiente a la documentación de paquetes en múltiples lenguajes de programación y capacidades de protocolo de servidor de lenguaje (LSP).

Características

  • Soporte multilingüe :
    • Paquetes Go a través de go doc
    • Bibliotecas de Python a través de help()
    • Paquetes NPM a través de documentación de registro (incluidos registros privados)
    • Cajas de Rust a través de crates.io y docs.rs
  • Análisis inteligente de documentación :
    • Salida estructurada con descripción, uso y ejemplos
    • Información enfocada para evitar la sobrecarga de contexto
    • Soporte para búsquedas de símbolos/funciones específicas
    • Capacidades de búsqueda exacta y difusa en toda la documentación
  • Funciones de búsqueda avanzada :
    • Buscar dentro de la documentación del paquete
    • Coincidencia difusa para consultas flexibles
    • Resultados sensibles al contexto con puntuación de relevancia
    • Extracción de símbolos de los resultados de búsqueda
  • Compatibilidad con el Protocolo de servidor de lenguaje (LSP) :
    • Información sobre los símbolos de código al pasar el cursor
    • Finalizaciones de código
    • Diagnósticos (errores y advertencias)
    • Actualmente es compatible con TypeScript/JavaScript
    • Extensible para otros idiomas
  • Rendimiento optimizado :
    • Almacenamiento en caché integrado
    • Análisis eficiente
    • Huella mínima de memoria

Instalación

npx -y mcp-package-docs

Instalación mediante herrería

Para instalar automáticamente Package Docs para Claude Desktop a través de Smithery :

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

Uso

Como servidor MCP

  1. Añade a tu configuración de MCP:
{ "mcpServers": { "package-docs": { "command": "npx", "args": ["-y", "mcp-package-docs"], "env": { "ENABLE_LSP": "true" // Optional: Enable Language Server Protocol support } } } }
  1. La funcionalidad LSP incluye configuraciones predeterminadas para servidores de lenguaje comunes:
  • TypeScript/JavaScript: typescript-language-server --stdio
  • HTML: vscode-html-language-server --stdio
  • CSS: vscode-css-language-server --stdio
  • JSON: vscode-json-language-server --stdio

Puede anular estos valores predeterminados si es necesario:

{ "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. El servidor proporciona las siguientes herramientas:

buscar_documento_go / describir_paquete_go

Obtiene la documentación del paquete Go

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

buscar_doc_python / describir_paquete_python

Obtiene la documentación del paquete de Python

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

describe_rust_package

Obtiene la documentación de las cajas de Rust desde crates.io y docs.rs

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

buscar_documentos_del_paquete

Buscar dentro de la documentación del paquete

{ "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) } }

buscar_doc_npm / describir_paquete_npm

Obtiene la documentación de paquetes NPM de registros públicos y privados. Utiliza automáticamente el registro apropiado según la configuración de .npmrc.

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

La herramienta lee su archivo ~/.npmrc para determinar el registro correcto para cada paquete:

  • Utiliza configuraciones de registro con alcance (por ejemplo, @mycompany:registry=...)
  • Admite registros privados (paquetes de GitHub, GitLab, Nexus, Artifactory, etc.)
  • Vuelve al registro npm predeterminado si no se configura ningún registro personalizado

Ejemplo de configuraciones .npmrc:

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/

Herramientas del Protocolo de Servidor de Lenguaje (LSP)

Cuando se habilita la compatibilidad con LSP, las siguientes herramientas adicionales están disponibles:

obtener_hover

Obtener información al pasar el cursor sobre una posición en un documento

{ "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 } }

obtener_completaciones

Obtener sugerencias para completar una posición en un documento

{ "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 } }

obtener_diagnósticos

Obtener información de diagnóstico (errores, advertencias) de un documento

{ "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 } }

Ejemplo de uso en un LLM

Buscando documentación

// 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');\naxios.get", line: 1, character: 7 } });

Requisitos

  • Node.js >= 20
  • Go (para la documentación del paquete Go)
  • Python 3 (para la documentación del paquete Python)
  • Conexión a Internet (para la documentación del paquete NPM y la documentación del paquete Rust)
  • Servidores de idioma (para funcionalidad LSP):
    • TypeScript/JavaScript: npm install -g typescript-language-server typescript
    • HTML/CSS/JSON: npm install -g vscode-langservers-extracted

Desarrollo

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

Contribuyendo

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones ( git checkout -b feature/amazing-feature )
  3. Confirme sus cambios ( git commit -m 'Add some amazing feature' )
  4. Empujar a la rama ( git push origin feature/amazing-feature )
  5. Abrir una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Facilita a los LLM acceder y obtener de manera eficiente documentación estructurada para paquetes en Go, Python y NPM, mejorando el desarrollo de software con soporte para múltiples idiomas y optimización del rendimiento.

  1. Features
    1. Installation
      1. Installing via Smithery
    2. Usage
      1. As an MCP Server
      2. Language Server Protocol (LSP) Tools
      3. Example Usage in an LLM
    3. Requirements
      1. Development
        1. Contributing
          1. License
            ID: mrk7ul7nz7