Skip to main content
Glama
sammcj
by sammcj

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).

insignia de herrería

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

Related MCP server: DocsFetcher MCP Server

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.

A
license - permissive license
-
quality - not tested
F
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sammcj/mcp-package-docs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server