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ório data durante a construção, ou usado diretamente em tempo de execução se dataDir não for especificado. Use este OU gitUrl.
  • gitUrl: (Build/Runtime) URL do repositório Git. Use este OU includeDir.
    • Se autoUpdateInterval for 0 (padrão), o servidor tenta baixar um arquivo .tar.gz diretamente (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 um git clone e habilita atualizações periódicas.
  • gitRef: (Build/Runtime) O branch, tag ou hash de commit a ser usado do gitUrl (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 de git pull. Requer que o comando git esteja 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 de includeDir ou gitUrl definidos 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) Se true (padrão), remove arquivos binários/de mídia comuns (imagens, vídeos, arquivos compactados, etc.) e arquivos maiores que 100KB do diretório data após a etapa de construção. Defina como false para desabilitar essa limpeza.
    • Se usar includeDir durante a construção: Arquivos que correspondem a esses padrões são excluídos ao copiar para data. As regras de .gitignore também são respeitadas.
    • Se usar gitUrl ou dataDir em tempo de execução: Arquivos que correspondem a esses padrões dentro do diretório data são ignorados pelo indexador de busca.

Precedência:

  1. 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.
  2. Configuração em Tempo de Construção: Configurações em docs-mcp.config.json (includeDir, gitUrl, toolName, etc.) definem padrões usados durante npm run build e também servem como padrões de tempo de execução se não forem substituídos.
  3. 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).

  1. Fork/Clone deste Repositório: Comece com o código deste projeto.
  2. Configure docs-mcp.config.json: Defina o includeDir ou gitUrl apontando para sua fonte de conteúdo. Defina o toolName e toolDescription padrão.
  3. Atualize package.json: Altere o name (ex.: @my-org/my-docs-mcp), version, description, etc.
  4. Construa: Execute npm run build. Isso clona/copia seu conteúdo para o diretório data e prepara o pacote.
  5. 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

smithery badge

Listagens da Comunidade

Docs Server MCP server

MseeP.ai Security Assessment Badge

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âmetroObrigatórioPadrãoDescrição
package-nameSim-Nome do pacote npm (ex.: @org/my-mcp)
package-descriptionNãoMCP ServerDescrição do pacote
entry-pointNãosrc/index.jsCaminho do arquivo de entrada principal
include-foldersNãosrc,data,binLista separada por vírgulas de pastas a incluir
include-filesNão*.json,*.md,LICENSELista separada por vírgulas de padrões de arquivo
dependenciesNão{}Dependências adicionais como string JSON
build-commandNão-Comando de construção a executar antes de publicar
node-versionNão18Versã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

  1. Adicione o segredo NPM_TOKEN ao seu repositório do GitHub (Settings → Secrets → Actions)
  2. 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.json completo com dependências MCP
  • Executa comandos de construção opcionais
  • Publica no NPM com acesso público

Licença

MIT