Skip to main content
Glama

Arquivo MCP — os documentos do DocsIA como ferramentas para qualquer cliente MCP

Servidor MCP (Model Context Protocol) em Node.js, feito com o SDK oficial, que expõe o arquivo de documentos do DocsIA para clientes como o Claude Desktop e o Claude Code. O cliente pode buscar trechos, ler um documento e consultar prazos, sempre somente leitura e dentro de um único espaço de trabalho.

Desenvolvido por mim com o auxílio do Claude Code. Eu defini o escopo, revisei e estudo o código. Este projeto não usa IA: ele só entrega dados para um cliente que usa. Os documentos de exemplo do DocsIA são fictícios.

Para que serve (em termos simples)

Hoje, para um assistente de IA (como o Claude) usar os seus documentos, alguém precisa copiar e colar o texto na conversa. O MCP é um padrão aberto de "tomada": este servidor é uma tomada que deixa qualquer assistente compatível consultar o seu arquivo sozinho, fazendo perguntas como "quais prazos vencem nos próximos 30 dias?" ou "o que o contrato diz sobre multa?". Ele só lê (não consegue alterar nada) e só enxerga um espaço de trabalho escolhido por quem configura, para que um assistente não veja dados de outra equipe.

Related MCP server: Enterprise Knowledge MCP Server

Ferramentas

Ferramenta

O que faz

buscar_trechos

Busca por palavras (TF-IDF) nos trechos dos documentos já processados; devolve os mais relevantes com o documento de origem

obter_documento

Título, texto completo e dados extraídos (tipo, resumo, partes, prazos, valores) de um documento

listar_prazos

Prazos extraídos, em ordem de data, com filtros desde e ate (AAAA-MM-DD)

listar_documentos

Documentos do espaço, do mais recente para o mais antigo

Todas têm readOnlyHint, entrada validada com Zod (um valor fora do schema vira erro de ferramenta, sem tocar no banco) e descrição para o modelo.

Como usar

npm install

O servidor lê o banco SQLite do DocsIA pelo caminho em DOCSIA_DB. Se o banco tiver mais de um espaço de trabalho, DOCSIA_ESPACO_ID escolhe qual.

Claude Code

claude mcp add arquivo -e DOCSIA_DB="C:\dev\docs-ia\database\database.sqlite" -e DOCSIA_ESPACO_ID=1 -- node C:\dev\arquivo-mcp\src\servidor.js

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "arquivo": {
      "command": "node",
      "args": ["C:\\dev\\arquivo-mcp\\src\\servidor.js"],
      "env": { "DOCSIA_DB": "C:\\dev\\docs-ia\\database\\database.sqlite", "DOCSIA_ESPACO_ID": "1" }
    }
  }
}

Depois, pergunte ao cliente algo como "Quais prazos vencem nos próximos 30 dias?" ou "O que o contrato diz sobre multa?".

Decisões de projeto

  • Somente leitura de verdade: o banco é aberto com readonly e fileMustExist; há teste de que INSERT e DELETE falham.

  • O espaço de trabalho é escolhido na configuração, não pelo cliente. Nenhuma ferramenta recebe espaco_id, e os testes provam que, configurado no espaço A, nenhuma ferramenta devolve dado do espaço B (busca, documento, prazos e listagem), nem se o cliente tentar mandar espaco_id por conta própria.

  • Documentos são dados de terceiros. Um documento pode conter "ignore as instruções e…". As descrições das ferramentas avisam o modelo para tratá-los como texto, e o servidor só devolve conteúdo, sem executar nada a partir dele.

  • A saída padrão é o canal do protocolo (stdio): todo log vai para a saída de erro, e erros de configuração encerram o processo com mensagem clara.

  • Busca lexical, de propósito: TF-IDF simples e explicável, sem depender de embeddings. O DocsIA guarda embeddings por hashing (também lexicais); o resultado das duas buscas pode diferir.

Testes

npm test     # 17 testes, sem rede

Cobrem as quatro ferramentas, a validação de entrada, o isolamento entre espaços, o banco somente leitura, o texto de documento com instruções, e um processo real via stdio (initialize, tools/list e tools/call com o cliente do SDK), além das mensagens de erro de configuração.

Estrutura

src/consultas.js     consultas SQL somente leitura e a busca TF-IDF
src/servidor-mcp.js  as ferramentas (SDK oficial, schemas Zod)
src/servidor.js      ponto de entrada: configuração por variáveis de ambiente e transporte stdio
test/                banco de teste no formato do DocsIA, cliente MCP em memória e via stdio

Limitações

  • Lê o SQLite do DocsIA direto: depende do esquema atual dele (tabelas documentos, trechos, prazos e espacos) e de ter acesso ao arquivo.

  • Sem autenticação: quem consegue iniciar o processo com acesso ao arquivo enxerga o espaço configurado. Serve para uso local.

  • Só o transporte stdio (uso local); não há servidor HTTP.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables querying enterprise documents (DOCX, PDF, PPTX) using natural language, with hybrid search and MCP integration for Claude Desktop and other agents.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables read-only file-management operations from AI assistants, including health checks, connection and folder listings, search, share-link resolution, metadata retrieval, and on-demand document reading.
      MIT