Docs MCP Server

Un servidor MCP que hace que la documentación y los códigos fuente sean buscables para asistentes de IA, compatible con directorios locales y repositorios Git.

Documentación

Docs MCP Server

Un servidor flexible del Model Context Protocol (MCP) impulsado por Probe que hace que cualquier documentación o base de código sea buscable por asistentes de IA.

Chatea con código o con tu documentación simplemente apuntando a un repositorio git o carpeta:

npx -y @probelabs/docs-mcp@latest --gitUrl https://github.com/probelabs/probe

Casos de uso:

  • Chatea con cualquier repositorio de GitHub: Apunta el servidor a un repositorio Git público o privado para habilitar consultas en lenguaje natural sobre su contenido.
  • Busca en tu documentación: Integra la documentación de tu proyecto (desde un directorio local o Git) para facilitar su búsqueda.
  • Crea servidores MCP personalizados: Usa este proyecto como plantilla para crear tus propios servidores MCP oficiales adaptados a conjuntos de documentación específicos o incluso bases de código.

La fuente de contenido (documentación o código) puede precompilarse en el paquete durante el paso de npm run build, o configurarse dinámicamente en tiempo de ejecución usando directorios locales o repositorios Git. De forma predeterminada, al usar un gitUrl sin habilitar las actualizaciones automáticas, el servidor descarga un archivo .tar.gz para un inicio más rápido. La clonación completa de Git se usa solo cuando autoUpdateInterval es mayor que 0.

Características

  • Impulsado por Probe: Aprovecha el motor de búsqueda Probe para obtener resultados eficientes y relevantes.
  • Fuentes de contenido flexibles: Incluye un directorio local específico o clona un repositorio Git.
  • Contenido precompilado: Opcionalmente, agrupa el contenido de documentación/código directamente en el paquete.
  • Configuración dinámica: Configura las fuentes de contenido, los ajustes de Git y los detalles de la herramienta MCP mediante archivo de configuración, argumentos de CLI o variables de entorno.
  • Actualizaciones automáticas de Git: Mantén el contenido actualizado extrayendo automáticamente los cambios de un repositorio Git en un intervalo configurable.
  • Herramienta MCP personalizable: Define el nombre y la descripción de la herramienta de búsqueda expuesta a los asistentes de IA.
  • Integración con IA: Se integra perfectamente con asistentes de IA que admiten el Model Context Protocol (MCP).

Instalación

Inicio rápido con Claude Desktop

Agrega a tu archivo de configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS):

{
  "mcpServers": {
    "docs-search": {
      "command": "npx",
      "args": [
        "-y",
        "@probelabs/docs-mcp@latest",
        "--gitUrl",
        "https://github.com/your-org/your-repo",
        "--toolName",
        "search_docs",
        "--toolDescription",
        "Search documentation"
      ]
    }
  }
}

Integración con clientes MCP

Puedes configurar tu cliente MCP para iniciar este servidor usando npx. Aquí hay ejemplos de cómo podrías configurar un cliente (la sintaxis puede variar según el cliente específico):

Ejemplo 1: Búsqueda dinámica de un repositorio Git (Tyk Docs)

Esta configuración le indica al cliente que ejecute el paquete @probelabs/docs-mcp más reciente usando npx, apuntándolo dinámicamente al repositorio de documentación de Tyk. El argumento -y confirma automáticamente el mensaje de instalación de npx. Los argumentos --toolName y --toolDescription personalizan cómo aparece la herramienta de búsqueda ante el asistente de IA.

{
  "mcpServers": {
    "tyk-docs-search": {
      "command": "npx",
      "args": [
        "-y",
        "@probelabs/docs-mcp@latest",
        "--gitUrl",
        "https://github.com/TykTechnologies/tyk-docs",
        "--toolName",
        "search_tyk_docs",
        "--toolDescription",
        "Search Tyk API Management Documentation"
      ],
      "enabled": true
    }
  }
}

Alternativamente, algunos clientes podrían permitir especificar el comando completo directamente. Podrías lograr lo mismo que en el Ejemplo 1 usando:

npx -y @probelabs/docs-mcp@latest --gitUrl https://github.com/TykTechnologies/tyk-docs --toolName search_tyk_docs --toolDescription "Search Tyk API Management Documentation"

Ejemplo 2: Uso de un servidor MCP precompilado y con marca (p. ej., paquete Tyk)

Si un equipo publica un paquete precompilado que contiene documentación específica (como @tyk-technologies/docs-mcp), la configuración se vuelve más simple, ya que la fuente de contenido y los detalles de la herramienta están integrados en ese paquete. El argumento -y sigue siendo recomendado para npx.

{
  "mcpServers": {
    "tyk-official-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@tyk-technologies/docs-mcp@latest"
      ],
      "enabled": true
    }
  }
}

Este enfoque es ideal para distribuir experiencias de búsqueda estandarizadas para documentación oficial o bases de código. Consulta la sección "Cómo crear tu propio servidor MCP precompilado" a continuación.

Aquí hay un ejemplo de cómo el equipo de Tyk ha creado su propio servidor MCP de documentación https://github.com/TykTechnologies/docs-mcp.

Configuración

Crea un archivo docs-mcp.config.json en el directorio raíz para definir la fuente de contenido predeterminada y los detalles de la herramienta MCP utilizados durante la compilación y en tiempo de ejecución (a menos que se anulen mediante argumentos de CLI o variables de entorno).

Ejemplo 1: Uso de un directorio local

{
  "includeDir": "/Users/username/projects/my-project/docs",
  "toolName": "search_my_project_docs",
  "toolDescription": "Search the documentation for My Project.",
  "ignorePatterns": [
    "node_modules",
    ".git",
    "build",
    "*.log"
  ]
}

Ejemplo 2: Uso de un repositorio Git

{
  "gitUrl": "https://github.com/your-org/your-codebase.git",
  "gitRef": "develop",
  "autoUpdateInterval": 15,
  "toolName": "search_codebase",
  "toolDescription": "Search the main company codebase.",
  "ignorePatterns": [
    "*.test.js",
    "dist/",
    "__snapshots__"
  ]
}

Opciones de configuración

  • includeDir: (Compilación/Ejecución) Ruta absoluta a un directorio local cuyo contenido se copiará al directorio data durante la compilación, o se usará directamente en tiempo de ejecución si no se especifica dataDir. Usa esto O gitUrl.
  • gitUrl: (Compilación/Ejecución) URL del repositorio Git. Usa esto O includeDir.
    • Si autoUpdateInterval es 0 (predeterminado), el servidor intenta descargar un archivo .tar.gz directamente (actualmente asume la estructura de URL de GitHub: https://github.com/{owner}/{repo}/archive/{ref}.tar.gz). Esto es más rápido pero no admite actualizaciones.
    • Si autoUpdateInterval > 0, el servidor realiza un git clone y habilita actualizaciones periódicas.
  • gitRef: (Compilación/Ejecución) La rama, etiqueta o hash de commit que se usará del gitUrl (predeterminado: main). Se usa tanto para la descarga del tarball como para la clonación/pull de Git.
  • autoUpdateInterval: (Ejecución) Intervalo en minutos para verificar automáticamente las actualizaciones de Git (predeterminado: 0, es decir, deshabilitado). Establecer un valor > 0 habilita la clonación de Git y las operaciones periódicas de git pull. Requiere que el comando git esté disponible en la ruta del sistema.
  • dataDir: (Ejecución) Ruta al directorio que contiene el contenido que se buscará en tiempo de ejecución. Anula el contenido proveniente de includeDir o gitUrl definido en el archivo de configuración o compilado en el paquete. Útil para apuntar el servidor a datos en vivo sin reconstruir.
  • toolName: (Compilación/Ejecución) El nombre de la herramienta MCP expuesta por el servidor (predeterminado: search_docs). Elige un nombre descriptivo relevante para el contenido.
  • toolDescription: (Compilación/Ejecución) La descripción de la herramienta MCP que se muestra a los asistentes de IA (predeterminado: "Search documentation using the probe search engine.").
  • ignorePatterns: (Compilación/Ejecución) Una matriz de patrones glob.
  • enableBuildCleanup: (Compilación) Si true (predeterminado), elimina los archivos binarios/de medios comunes (imágenes, videos, archivos comprimidos, etc.) y los archivos de más de 100 KB del directorio data después del paso de compilación. Establece false para deshabilitar esta limpieza.
    • Si se usa includeDir durante la compilación: Los archivos que coincidan con estos patrones se excluyen al copiar a data. También se respetan las reglas de .gitignore.
    • Si se usa gitUrl o dataDir en tiempo de ejecución: Los archivos que coincidan con estos patrones dentro del directorio data son ignorados por el indexador de búsqueda.

Precedencia:

  1. Configuración en tiempo de ejecución (más alta): Los argumentos de CLI (--dataDir, --gitUrl, etc.) y las variables de entorno (DATA_DIR, GIT_URL, etc.) anulan todas las demás configuraciones. Los argumentos de CLI tienen prioridad sobre las variables de entorno.
  2. Configuración en tiempo de compilación: Los ajustes en docs-mcp.config.json (includeDir, gitUrl, toolName, etc.) definen los valores predeterminados utilizados durante npm run build y también sirven como valores predeterminados en tiempo de ejecución si no se anulan.
  3. Valores predeterminados (más bajos): Se utilizan valores predeterminados internos si no se proporciona configuración (p. ej., toolName: 'search_docs', autoUpdateInterval: 5).

Nota: Si tanto includeDir como gitUrl se proporcionan en la misma fuente de configuración (p. ej., ambos en el archivo de configuración, o ambos como argumentos de CLI), gitUrl tiene prioridad.

Cómo crear tu propio servidor MCP precompilado

Puedes usar este proyecto como plantilla para crear y publicar tu propio paquete npm con documentación o código precompilado. Esto proporciona una experiencia de configuración cero para los usuarios (como el Ejemplo 2 anterior).

  1. Haz fork/clona este repositorio: Comienza con el código de este proyecto.
  2. Configura docs-mcp.config.json: Define el includeDir o gitUrl que apunte a tu fuente de contenido. Establece el toolName y toolDescription predeterminados.
  3. Actualiza package.json: Cambia el name (p. ej., @my-org/my-docs-mcp), version, description, etc.
  4. Compila: Ejecuta npm run build. Esto clona/copia tu contenido en el directorio data y deja el paquete listo.
  5. Publica: Ejecuta npm publish (necesitarás autenticación de npm configurada).

Ahora, los usuarios pueden ejecutar fácilmente tu servidor de documentación específico: npx @my-org/my-docs-mcp@latest.

(Las secciones anteriores "Running", "Dynamic Configuration at Runtime" y "Environment Variables" se han eliminado, ya que el uso de npx con argumentos dentro de las configuraciones de cliente es ahora el método principal documentado.)

Uso con asistentes de IA

Este servidor MCP expone una herramienta de búsqueda a los asistentes de IA conectados a través del Model Context Protocol. El nombre y la descripción de la herramienta son configurables (consulta la sección Configuración). Busca el contenido dentro del directorio data actualmente activo (determinado por la configuración de compilación, el archivo de configuración, los argumentos de CLI o las variables de entorno).

Parámetros de la herramienta:

  • query: Una consulta en lenguaje natural o palabras clave que describan qué buscar (p. ej., "how to configure the gateway", "database connection example", "user authentication"). El servidor usa las capacidades de búsqueda de Probe para encontrar contenido relevante. (Obligatorio)
  • page: El número de página para los resultados cuando hay muchas coincidencias. El valor predeterminado es 1 si se omite. (Opcional)

Ejemplo de llamada a la herramienta (usando search_tyk_docs del Ejemplo de uso 1):

{
  "tool_name": "search_tyk_docs",
  "arguments": {
    "query": "gateway rate limiting",
    "page": 1 // Requesting the first page
  }
}

Ejemplo de llamada a la herramienta (usando la herramienta del paquete @tyk/docs-mcp):

Suponiendo que el paquete precompilado @tyk/docs-mcp definió su nombre de herramienta como search_tyk_official_docs:

{
  "tool_name": "search_tyk_official_docs",
  "arguments": {
    "query": "dashboard api access",
    "page": 2 // Requesting the second page
  }
}

(La sección anterior "Publishing as an npm Package" ha sido reemplazada por la sección "Cómo crear tu propio servidor MCP precompilado" anterior.)

Integraciones de terceros

Instalación mediante Smithery

Para instalar Docs MCP Server para Claude Desktop automáticamente mediante Smithery:

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

smithery badge

Listados de la comunidad

Docs Server MCP server

MseeP.ai Security Assessment Badge

Lanzamientos automáticos de NPM con GitHub Actions

Este proyecto incluye un flujo de trabajo reutilizable de GitHub Actions que hace que publicar servidores MCP en NPM sea increíblemente simple. Puedes usar este flujo de trabajo en cualquier proyecto para compilar y publicar automáticamente tu servidor MCP cuando envías una etiqueta git.

Uso del flujo de trabajo de lanzamiento reutilizable

Para usar este sistema de lanzamiento automatizado en tu propio proyecto, crea un único archivo .github/workflows/release.yml:

name: Release MCP

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    uses: probelabs/docs-mcp/.github/workflows/release-mcp.yml@main
    with:
      package-name: '@yourorg/your-mcp-server'
      package-description: 'Your MCP Server Description'
      include-folders: 'src,data,bin'  # Folders to include in the package
      include-files: '*.json,*.md'     # File patterns to include
    secrets:
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

Luego, simplemente crea una etiqueta git para activar un lanzamiento:

git tag v1.0.0
git push origin v1.0.0

Parámetros de entrada del flujo de trabajo

ParámetroObligatorioPredeterminadoDescripción
package-nameSí-Nombre del paquete NPM (p. ej., @org/my-mcp)
package-descriptionNoMCP ServerDescripción del paquete
entry-pointNosrc/index.jsRuta del archivo de entrada principal
include-foldersNosrc,data,binLista separada por comas de carpetas a incluir
include-filesNo*.json,*.md,LICENSELista separada por comas de patrones de archivo
dependenciesNo{}Dependencias adicionales como cadena JSON
build-commandNo-Comando de compilación a ejecutar antes de publicar
node-versionNo18Versión de Node.js a usar

Ejemplos de configuración

Configuración mínima

jobs:
  release:
    uses: probelabs/docs-mcp/.github/workflows/release-mcp.yml@main
    with:
      package-name: '@myorg/simple-mcp'
    secrets:
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

Con dependencias personalizadas

jobs:
  release:
    uses: probelabs/docs-mcp/.github/workflows/release-mcp.yml@main
    with:
      package-name: '@myorg/custom-mcp'
      dependencies: '{"lodash": "^4.17.21", "dotenv": "^16.0.0"}'
    secrets:
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

Con paso de compilación

jobs:
  release:
    uses: probelabs/docs-mcp/.github/workflows/release-mcp.yml@main
    with:
      package-name: '@myorg/built-mcp'
      build-command: 'npm run build && npm run prepare-data'
      include-folders: 'dist,assets'
    secrets:
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

Requisitos previos

  1. Agrega el secreto NPM_TOKEN a tu repositorio de GitHub (Settings → Secrets → Actions)
  2. Asegúrate de tener acceso de publicación npm para tu organización/ámbito

El flujo de trabajo automáticamente:

  • Extrae la versión de las etiquetas git (p. ej., v1.0.0 → 1.0.0)
  • Genera un package.json completo con dependencias MCP
  • Ejecuta comandos de compilación opcionales
  • Publica en NPM con acceso público

Licencia

MIT