Dokumen-Pintar
62 ferramentas conscientes de formato para IA ler e editar arquivos Word, Excel e PDF com precisão — além de verificação de documentos acadêmicos para padrões indonésios.
Documentação
Dokumen-Pintar
Servidor MCP universal para CRUD de documentos em múltiplos formatos
Leia, escreva, pesquise e gerencie arquivos de texto, Office e PDF
a partir de qualquer agente de IA que suporte o Model Context Protocol.
Recursos · Formatos · Início Rápido · Ferramentas · Documentação · Benchmark · Contribuição
Por que Dokumen-Pintar
A maioria dos servidores MCP de sistema de arquivos se limita a "leia este arquivo, escreva aquele arquivo." O Dokumen-Pintar trata documentos como dados estruturados que a IA pode navegar. Diga a um agente para atualizar um parágrafo por índice, definir uma célula por Sheet1!B2, percorrer uma árvore JSON com JSONPath, gerar um DOCX a partir de Markdown — tudo funciona da mesma forma em todos os formatos suportados.
Toda ferramenta de mutação tira um snapshot do arquivo primeiro. Toda ação é registrada em um log de auditoria. Todo caminho é isolado em raízes que você opta por incluir. A configuração padrão é sensata; os perfis cobrem o restante.
Recursos
|
Sandbox Multi-raiz — Defina múltiplas raízes de workspace com controle de 10 Formatos — Texto simples, Markdown, LaTeX, JSON / YAML, CSV / TSV, XML / SVG, DOCX, XLSX, PPTX, PDF. 62 Ferramentas MCP — CRUD de arquivos e conteúdo, acesso estruturado, operações em lote, busca, versionamento, metadados, autoria, extração de imagens, seções, modelos, sumário, bibliografia, comparação de documentos, lint — tudo exposto como ferramentas chamáveis. Autoria — Gere DOCX ou PDF a partir de uma especificação JSON ou fonte Markdown via |
Acesso Estruturado — JSONPath para JSON / YAML, XPath para XML, célula / intervalo / planilha para XLSX, parágrafo / tabela para DOCX, slide para PPTX, página para PDF. Versionamento Automático — Snapshots copy-on-write em toda escrita. Desfaça, diferencie, restaure e limpe a qualquer momento. Camada de Metadados — Leia, escreva, exclua ou remova EXIF, propriedades principais OOXML e docinfo de PDF através de uma API consistente. Trilha de Auditoria — Toda mutação é registrada em JSONL com timestamp e detalhes da operação. 2 Transportes — stdio (Claude Desktop, Cursor, VS Code, Windsurf) e HTTP / SSE. |
Formatos Suportados
| Formato | Leitura | Escrita | Consulta Estruturada | Busca |
|---|---|---|---|---|
| Texto simples / Markdown | ✅ | ✅ | — | ✅ |
| JSON | ✅ | ✅ | JSONPath $.key | ✅ |
| YAML | ✅ | ✅ | JSONPath $.key | ✅ |
| CSV / TSV | ✅ | ✅ | row:N · col:NAME · cell:row:N,col:NAME | ✅ |
| XML / SVG | ✅ | ✅ | XPath //node | ✅ |
| DOCX | ✅ | ✅ | paragraph:N · table:N | ✅ |
| XLSX | ✅ | ✅ | cell:Sheet!A1 · range: · sheet: | ✅ |
| PPTX | ✅ | ✅ | slide:N · slide_title:N | ✅ |
| ✅ | — | page:N · outline · metadata | ✅ |
Início Rápido
1. Instalação
pip install dokumen-pintar
A partir do código-fonte (desenvolvimento)
git clone https://github.com/firdausmntp/Dokumen-Pintar.git
cd Dokumen-Pintar
pip install -e ".[dev]"
Com busca semântica
pip install dokumen-pintar[semantic]
2. Crie uma Configuração
dokumen-pintar-init
Ou crie uma manualmente:
{
"roots": [
{ "name": "documents", "path": "~/Documents", "writable": true },
{ "name": "projects", "path": "~/Projects", "writable": true }
]
}
Todos os outros campos são opcionais com padrões sensatos. Veja docs/CONFIG.md.
3. Execute
dokumen-pintar --config dokumen-pintar.config.json
Raízes ad-hoc sem arquivo de configuração
Substitua ou substitua as raízes de configuração pela linha de comando — útil para sessões pontuais ou scripts:
# Single writable root, no config file required
dokumen-pintar --root docs:/path/to/folder
# Multiple roots, mix read-only and writable, choose stdio transport
dokumen-pintar \
--root project:/repo:rw \
--root refs:/library:ro \
--transport stdio
# Force every root to read-only (overrides config + --root)
dokumen-pintar --config myconfig.json --read-only
# Path-only shorthand (root name derived from basename)
dokumen-pintar --root /home/me/Documents
Verificação de integridade
dokumen-pintar-doctor --config dokumen-pintar.config.json
Verifica a validade da configuração, existência das raízes, capacidade de escrita de snapshots .mcpdocs,
handlers registrados e dependências opcionais de busca semântica.
4. Conecte a um Cliente de IA
Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"dokumen-pintar": {
"command": "dokumen-pintar",
"args": ["--config", "/path/to/dokumen-pintar.config.json"]
}
}
}
Cursor / VS Code / Windsurf
Use o mesmo transporte stdio. Aponte as configurações MCP do seu IDE para o comando dokumen-pintar e o caminho do arquivo de configuração.
HTTP/SSE (remoto ou multi-cliente)
{
"transport": {
"stdio": false,
"http": { "enabled": true, "port": 7878 }
}
}
Inicie o servidor e conecte seu cliente a http://127.0.0.1:7878.
Exemplos de Uso
# List available workspace roots
workspace_list_roots()
# Read a Word document
content_read(path="documents:/reports/q1.docx")
# Create a new file
file_create(path="documents:/notes/todo.txt", content="Hello World")
# Find & replace inside a file
content_replace(path="documents:/notes/todo.txt", old="World", new="Everyone")
# Full-text search across all PDFs
search_content(query="budget 2024", format="pdf")
# Read an Excel cell
structured_get(path="documents:/data.xlsx", expr="cell:Sheet1!B2")
# Update a JSON key
structured_set(path="documents:/config.json", expr="$.database.port", value=5432)
# Delete an XML node
structured_delete(path="documents:/data.xml", expr="//item[@id='old']")
# Batch rename (dry-run first)
batch_rename(glob="*.txt", pattern="draft_", replacement="final_", dry_run=true)
# Undo last change
version_undo(path="documents:/reports/q1.docx")
Guia completo com receitas: docs/USAGE.md
Visão Geral das Ferramentas
62 ferramentas MCP organizadas por categoria:
| Categoria | Ferramentas |
|---|---|
| Workspace | workspace_list_roots · workspace_stat · workspace_tree · workspace_diagnose |
| CRUD de Arquivos | file_create · file_delete · file_rename · file_copy · file_move |
| Conteúdo | content_read · content_write · content_append · content_insert · content_replace · content_delete_range · content_patch · content_diff |
| Estruturado | struct_get · struct_set · struct_delete · struct_meta |
| Metadados | metadata_read · metadata_write · metadata_delete · metadata_strip · metadata_read_batch |
| Autoria | validate_spec · compose_docx · compose_pdf · compose_from_markdown · compose_to_markdown |
| Seções | section_extract · section_merge |
| Imagens | image_list · image_extract · image_extract_all · image_replace |
| Modelos | template_list · template_install · template_render · template_render_named |
| Sumário e Bibliografia | toc_generate · bibliography_check · bibliography_format |
| Comparação e Lint | document_compare · document_lint · document_lint_fix |
| Lote | batch_rename · batch_replace_content · batch_replace_structured · batch_delete |
| Busca | search_filename · search_content · search_in_format |
| Versionamento | version_list · version_diff · version_restore · version_undo · version_purge |
| Semântico * | search_semantic · semantic_index_path · semantic_stats |
* Somente registrado quando semantic_search.enabled = true e o extra [semantic] está instalado.
Referência completa de parâmetros: docs/TOOLS.md
Arquitetura
flowchart TD
Client["AI Client\n(Claude, Cursor, VS Code, ...)"]
Client -->|"MCP protocol\n(stdio or HTTP/SSE)"| Server
subgraph Server["dokumen-pintar server"]
PG["PathGuard\nsandboxed multi-root"]
H["Handlers\n9 format parsers"]
V["Versions\ncopy-on-write snapshots"]
A["AuditLog\nJSONL mutation log"]
S["Search\nfilename + content"]
SE["Semantic\nvector index (optional)"]
end
Server --> FS["Filesystem\n(sandboxed workspace roots)"]
Detalhes completos: docs/ARCHITECTURE.md
Testes
pip install -e ".[dev]"
pytest
1403Testes aprovados |
100%Cobertura de linhas + ramos |
100%Limite mínimo |
-n autoParalelo via xdist |
Relatório de cobertura HTML: htmlcov/index.html
Números de desempenho e metodologia: docs/BENCHMARK.md
Documentação
| Documento | Conteúdo |
|---|---|
| USAGE.md | URIs de workspace, exemplos de ferramentas, receitas práticas |
| CONFIG.md | Todos os campos de configuração com tipos, padrões e notas |
| TOOLS.md | Referência completa para todas as 62 ferramentas |
| ARCHITECTURE.md | Mapa de módulos, fluxo de requisições, versionamento, segurança |
| BENCHMARK.md | Linhas de base de desempenho e metodologia |
| profiles/ | Seis perfis de configuração pré-ajustados (pessoal, desenvolvedor, pesquisa, ...) |
| AGENTS.md | Guia do contribuidor: convenções, fluxo de desenvolvimento, processo de PR |
Contribuição
git clone https://github.com/firdausmntp/Dokumen-Pintar.git
cd Dokumen-Pintar
pip install -e ".[dev]"
ruff check src/ # lint
mypy src/dokumen_pintar/ # type check
pytest # test + coverage
PRs são bem-vindos. Todos os testes devem passar e a cobertura deve permanecer em 100%. Leia AGENTS.md antes de enviar — cobre convenções, o protocolo de handlers e como adicionar um novo formato ou ferramenta.
Licença
MIT — 2026 firdausmntp
Construído por firdausmntp