Docs MCP Server
Um servidor MCP que torna documentação e bases de código pesquisáveis para assistentes de IA, suportando diretórios locais e repositórios Git.
Documentação
Docs MCP Server
Um servidor flexível do Model Context Protocol (MCP) alimentado pelo Probe que torna qualquer documentação ou base de código pesquisável por assistentes de IA.
Converse com o código ou com sua documentação simplesmente apontando para um repositório Git ou pasta:
npx -y @probelabs/docs-mcp@latest --gitUrl https://github.com/probelabs/probe
Casos de Uso:
- Converse com qualquer repositório do GitHub: Aponte o servidor para um repositório Git público ou privado para habilitar consultas em linguagem natural sobre seu conteúdo.
- Pesquise sua documentação: Integre a documentação do seu projeto (de um diretório local ou Git) para facilitar a busca.
- Crie servidores MCP personalizados: Use este projeto como modelo para criar seus próprios servidores MCP oficiais, adaptados a conjuntos específicos de documentação ou até mesmo bases de código.
A fonte de conteúdo (documentação ou código) pode ser pré-construída no pacote durante a etapa de npm run build, ou configurada dinamicamente em tempo de execução usando diretórios locais ou repositórios Git. Por padrão, ao usar um gitUrl sem habilitar atualizações automáticas, o servidor baixa um arquivo .tar.gz para inicialização mais rápida. A clonagem completa do Git é usada apenas quando autoUpdateInterval é maior que 0.
Recursos
- Alimentado pelo Probe: Utiliza o mecanismo de busca Probe para resultados eficientes e relevantes.
- Fontes de conteúdo flexíveis: Inclua um diretório local específico ou clone um repositório Git.
- Conteúdo pré-construído: Opcionalmente, agrupe o conteúdo de documentação/código diretamente no pacote.
- Configuração dinâmica: Configure fontes de conteúdo, configurações do Git e detalhes da ferramenta MCP via arquivo de configuração, argumentos de CLI ou variáveis de ambiente.
- Atualizações automáticas do Git: Mantenha o conteúdo atualizado puxando automaticamente as alterações de um repositório Git em um intervalo configurável.
- Ferramenta MCP personalizável: Defina o nome e a descrição da ferramenta de busca exposta aos assistentes de IA.
- Integração com IA: Integra-se perfeitamente a assistentes de IA que suportam o Model Context Protocol (MCP).
Instalação
Início Rápido com Claude Desktop
Adicione ao seu arquivo de configuração do Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json no 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"
]
}
}
}
Integração com Cliente MCP
Você pode configurar seu cliente MCP para iniciar este servidor usando npx. Aqui estão exemplos de como você pode configurar um cliente (a sintaxe pode variar dependendo do cliente específico):
Exemplo 1: Pesquisando Dinamicamente um Repositório Git (Tyk Docs)
Esta configuração instrui o cliente a executar o pacote @probelabs/docs-mcp mais recente usando npx, apontando-o dinamicamente para o repositório de documentação do Tyk. O argumento -y confirma automaticamente o prompt de instalação do npx. Os argumentos --toolName e --toolDescription personalizam como a ferramenta de busca aparece para o assistente 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, alguns clientes podem permitir especificar o comando completo diretamente. Você pode obter o mesmo resultado do Exemplo 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"
Exemplo 2: Usando um Servidor MCP Pré-construído e Personalizado (ex.: Pacote Tyk)
Se uma equipe publica um pacote pré-construído contendo documentação específica (como @tyk-technologies/docs-mcp), a configuração se torna mais simples, pois a fonte de conteúdo e os detalhes da ferramenta já estão embutidos nesse pacote. O argumento -y ainda é recomendado para npx.
{
"mcpServers": {
"tyk-official-docs": {
"command": "npx",
"args": [
"-y",
"@tyk-technologies/docs-mcp@latest"
],
"enabled": true
}
}
}
Essa abordagem é ideal para distribuir experiências de busca padronizadas para documentações oficiais ou bases de código. Consulte a seção "Criando Seu Próprio Servidor MCP Pré-construído" abaixo.
Aqui está um exemplo de como a equipe do Tyk construiu seu próprio servidor MCP de documentação https://github.com/TykTechnologies/docs-mcp.
Configuração
Crie um arquivo docs-mcp.config.json no diretório raiz para definir a fonte de conteúdo padrão e os detalhes da ferramenta MCP usados durante a construção e em tempo de execução (a menos que sejam substituídos por argumentos de CLI ou variáveis de ambiente).
Exemplo 1: Usando um Diretório 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"
]
}
Exemplo 2: Usando um Repositório 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__"
]
}
Opções de Configuração
includeDir: (Build/Runtime) Caminho absoluto para um diretório local cujo conteúdo será copiado para o diretóriodatadurante a construção, ou usado diretamente em tempo de execução sedataDirnão for especificado. Use este OUgitUrl.gitUrl: (Build/Runtime) URL do repositório Git. Use este OUincludeDir.- Se
autoUpdateIntervalfor 0 (padrão), o servidor tenta baixar um arquivo.tar.gzdiretamente (atualmente assume a estrutura de URL do GitHub:https://github.com/{owner}/{repo}/archive/{ref}.tar.gz). Isso é mais rápido, mas não suporta atualizações. - Se
autoUpdateInterval> 0, o servidor realiza umgit clonee habilita atualizações periódicas.
- Se
gitRef: (Build/Runtime) O branch, tag ou hash de commit a ser usado dogitUrl(padrão:main). Usado tanto para download do tarball quanto para clone/pull do Git.autoUpdateInterval: (Runtime) Intervalo em minutos para verificar automaticamente atualizações do Git (padrão: 0, ou seja, desabilitado). Definir um valor > 0 habilita a clonagem do Git e operações periódicas degit pull. Requer que o comandogitesteja disponível no caminho do sistema.dataDir: (Runtime) Caminho para o diretório que contém o conteúdo a ser pesquisado em tempo de execução. Substitui o conteúdo originado deincludeDirougitUrldefinidos no arquivo de configuração ou embutidos no pacote. Útil para apontar o servidor para dados ao vivo sem reconstruir.toolName: (Build/Runtime) O nome da ferramenta MCP exposta pelo servidor (padrão:search_docs). Escolha um nome descritivo relevante para o conteúdo.toolDescription: (Build/Runtime) A descrição da ferramenta MCP mostrada aos assistentes de IA (padrão: "Search documentation using the probe search engine.").ignorePatterns: (Build/Runtime) Uma matriz de padrões glob.enableBuildCleanup: (Build) Setrue(padrão), remove arquivos binários/de mídia comuns (imagens, vídeos, arquivos compactados, etc.) e arquivos maiores que 100KB do diretóriodataapós a etapa de construção. Defina comofalsepara desabilitar essa limpeza.- Se usar
includeDirdurante a construção: Arquivos que correspondem a esses padrões são excluídos ao copiar paradata. As regras de.gitignoretambém são respeitadas. - Se usar
gitUrloudataDirem tempo de execução: Arquivos que correspondem a esses padrões dentro do diretóriodatasão ignorados pelo indexador de busca.
- Se usar
Precedência:
- Configuração em Tempo de Execução (Mais Alta): Argumentos de CLI (
--dataDir,--gitUrl, etc.) e Variáveis de Ambiente (DATA_DIR,GIT_URL, etc.) substituem todas as outras configurações. Argumentos de CLI têm precedência sobre Variáveis de Ambiente. - Configuração em Tempo de Construção: Configurações em
docs-mcp.config.json(includeDir,gitUrl,toolName, etc.) definem padrões usados durantenpm run builde também servem como padrões de tempo de execução se não forem substituídos. - Valores Padrão (Mais Baixa): Padrões internos são usados se nenhuma configuração for fornecida (ex.:
toolName: 'search_docs',autoUpdateInterval: 5).
Nota: Se ambos includeDir e gitUrl forem fornecidos na mesma fonte de configuração (ex.: ambos no arquivo de configuração, ou ambos como argumentos de CLI), gitUrl tem precedência.
Criando Seu Próprio Servidor MCP Pré-construído
Você pode usar este projeto como modelo para criar e publicar seu próprio pacote npm com documentação ou código pré-construído. Isso proporciona uma experiência de configuração zero para os usuários (como no Exemplo 2 acima).
- Fork/Clone deste Repositório: Comece com o código deste projeto.
- Configure
docs-mcp.config.json: Defina oincludeDirougitUrlapontando para sua fonte de conteúdo. Defina otoolNameetoolDescriptionpadrão. - Atualize
package.json: Altere oname(ex.:@my-org/my-docs-mcp),version,description, etc. - Construa: Execute
npm run build. Isso clona/copia seu conteúdo para o diretóriodatae prepara o pacote. - Publique: Execute
npm publish(você precisará da autenticação npm configurada).
Agora, os usuários podem executar facilmente seu servidor de documentação específico: npx @my-org/my-docs-mcp@latest.
(As seções anteriores "Running", "Dynamic Configuration at Runtime" e "Environment Variables" foram removidas, pois o uso de npx com argumentos nas configurações do cliente agora é o método principal documentado.)
Usando com Assistentes de IA
Este servidor MCP expõe uma ferramenta de busca aos assistentes de IA conectados via Model Context Protocol. O nome e a descrição da ferramenta são configuráveis (consulte a seção Configuração). Ela pesquisa o conteúdo dentro do diretório data atualmente ativo (determinado pelas configurações de construção, arquivo de configuração, argumentos de CLI ou variáveis de ambiente).
Parâmetros da Ferramenta:
query: Uma consulta em linguagem natural ou palavras-chave descrevendo o que pesquisar (ex.: "how to configure the gateway", "database connection example", "user authentication"). O servidor usa os recursos de busca do Probe para encontrar conteúdo relevante. (Obrigatório)page: O número da página para resultados ao lidar com muitas correspondências. O padrão é 1 se omitido. (Opcional)
Exemplo de Chamada de Ferramenta (usando search_tyk_docs do Exemplo de Uso 1):
{
"tool_name": "search_tyk_docs",
"arguments": {
"query": "gateway rate limiting",
"page": 1 // Requesting the first page
}
}
Exemplo de Chamada de Ferramenta (usando a ferramenta do pacote @tyk/docs-mcp):
Supondo que o pacote pré-construído @tyk/docs-mcp definiu o nome de sua ferramenta como search_tyk_official_docs:
{
"tool_name": "search_tyk_official_docs",
"arguments": {
"query": "dashboard api access",
"page": 2 // Requesting the second page
}
}
(A seção anterior "Publishing as an npm Package" foi substituída pela seção "Criando Seu Próprio Servidor MCP Pré-construído" acima.)
Integrações de Terceiros
Instalar via Smithery
Para instalar o Docs MCP Server para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install @probelabs/docs-mcp --client claude
Listagens da Comunidade
Lançamentos Automatizados no NPM com GitHub Actions
Este projeto inclui um workflow reutilizável do GitHub Actions que torna incrivelmente simples o lançamento de servidores MCP no NPM. Você pode usar este workflow em qualquer projeto para construir e publicar automaticamente seu servidor MCP ao enviar uma tag git.
Usando o Workflow de Lançamento Reutilizável
Para usar este sistema de lançamento automatizado em seu próprio projeto, crie um único arquivo .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 }}
Em seguida, basta criar uma tag git para acionar um lançamento:
git tag v1.0.0
git push origin v1.0.0
Parâmetros de Entrada do Workflow
| Parâmetro | Obrigatório | Padrão | Descrição |
|---|---|---|---|
package-name | Sim | - | Nome do pacote npm (ex.: @org/my-mcp) |
package-description | Não | MCP Server | Descrição do pacote |
entry-point | Não | src/index.js | Caminho do arquivo de entrada principal |
include-folders | Não | src,data,bin | Lista separada por vírgulas de pastas a incluir |
include-files | Não | *.json,*.md,LICENSE | Lista separada por vírgulas de padrões de arquivo |
dependencies | Não | {} | Dependências adicionais como string JSON |
build-command | Não | - | Comando de construção a executar antes de publicar |
node-version | Não | 18 | Versão do Node.js a usar |
Exemplos de Configuração
Configuração 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 }}
Com Dependências 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 }}
Com Etapa de Construção
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 }}
Pré-requisitos
- Adicione o segredo
NPM_TOKENao seu repositório do GitHub (Settings → Secrets → Actions) - Garanta que você tenha acesso de publicação npm para sua organização/escopo
O workflow automaticamente:
- Extrai a versão das tags git (ex.:
v1.0.0→1.0.0) - Gera um
package.jsoncompleto com dependências MCP - Executa comandos de construção opcionais
- Publica no NPM com acesso público
Licença
MIT
