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 directoriodatadurante la compilación, o se usará directamente en tiempo de ejecución si no se especificadataDir. Usa esto OgitUrl.gitUrl: (Compilación/Ejecución) URL del repositorio Git. Usa esto OincludeDir.- Si
autoUpdateIntervales 0 (predeterminado), el servidor intenta descargar un archivo.tar.gzdirectamente (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 ungit cloney habilita actualizaciones periódicas.
- Si
gitRef: (Compilación/Ejecución) La rama, etiqueta o hash de commit que se usará delgitUrl(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 degit pull. Requiere que el comandogitesté 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 deincludeDirogitUrldefinido 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) Sitrue(predeterminado), elimina los archivos binarios/de medios comunes (imágenes, videos, archivos comprimidos, etc.) y los archivos de más de 100 KB del directoriodatadespués del paso de compilación. Establecefalsepara deshabilitar esta limpieza.- Si se usa
includeDirdurante la compilación: Los archivos que coincidan con estos patrones se excluyen al copiar adata. También se respetan las reglas de.gitignore. - Si se usa
gitUrlodataDiren tiempo de ejecución: Los archivos que coincidan con estos patrones dentro del directoriodatason ignorados por el indexador de búsqueda.
- Si se usa
Precedencia:
- 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. - Configuración en tiempo de compilación: Los ajustes en
docs-mcp.config.json(includeDir,gitUrl,toolName, etc.) definen los valores predeterminados utilizados durantenpm run buildy también sirven como valores predeterminados en tiempo de ejecución si no se anulan. - 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).
- Haz fork/clona este repositorio: Comienza con el código de este proyecto.
- Configura
docs-mcp.config.json: Define elincludeDirogitUrlque apunte a tu fuente de contenido. Establece eltoolNameytoolDescriptionpredeterminados. - Actualiza
package.json: Cambia elname(p. ej.,@my-org/my-docs-mcp),version,description, etc. - Compila: Ejecuta
npm run build. Esto clona/copia tu contenido en el directoriodatay deja el paquete listo. - 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
Listados de la comunidad
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ámetro | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|
package-name | Sí | - | Nombre del paquete NPM (p. ej., @org/my-mcp) |
package-description | No | MCP Server | Descripción del paquete |
entry-point | No | src/index.js | Ruta del archivo de entrada principal |
include-folders | No | src,data,bin | Lista separada por comas de carpetas a incluir |
include-files | No | *.json,*.md,LICENSE | Lista separada por comas de patrones de archivo |
dependencies | No | {} | Dependencias adicionales como cadena JSON |
build-command | No | - | Comando de compilación a ejecutar antes de publicar |
node-version | No | 18 | Versió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
- Agrega el secreto
NPM_TOKENa tu repositorio de GitHub (Settings → Secrets → Actions) - 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.jsoncompleto con dependencias MCP - Ejecuta comandos de compilación opcionales
- Publica en NPM con acceso público
Licencia
MIT
