Skip to main content

MCP server universal untuk CRUD dokumen lintas format (text, JSON, YAML, CSV, XML, DOCX, XLSX, PPTX, PDF) dengan versioning, sandboxed multi-root, search, batch, dan semantic search opsional.

Project description

Dokumen-Pintar

Universal MCP server for cross-format document CRUD

Read, write, search, and manage text, Office, and PDF files from any AI agent that supports the Model Context Protocol.

PyPI Python 3.10+ License: MIT Tests: 730 passed Coverage: 100%


Features

  • Multi-root Sandbox — Define multiple workspace roots with per-root writable control. All paths outside the sandbox are rejected.
  • 10 Formats — Plain text, Markdown, JSON, YAML, CSV/TSV, XML/SVG, DOCX, XLSX, PPTX, PDF.
  • 30 MCP Tools — File & content CRUD, structured access, batch operations, search, versioning — all exposed as callable tools for AI agents.
  • Automatic Versioning — Copy-on-write snapshots on every write operation. Undo, diff, restore, and purge anytime.
  • Structured Access — JSONPath for JSON/YAML, XPath for XML, cell/range/sheet for XLSX, paragraph/table for DOCX, slide for PPTX, page for PDF.
  • Batch Operations — Mass rename, find-and-replace, and delete with dry-run by default.
  • Semantic Search (optional) — Vector search powered by sentence-transformers; enable via config.
  • Audit Trail — Every mutation logged to JSONL with timestamp and operation details.
  • 2 Transports — stdio (Claude Desktop, Cursor, VS Code, Windsurf) and HTTP/SSE.

Supported Formats

Format Read Write Structured Query Search
Plain text / Markdown Y Y Y
JSON Y Y JSONPath $.key Y
YAML Y Y JSONPath $.key Y
CSV / TSV Y Y row:N col:N cell:R,C Y
XML / SVG Y Y XPath //node Y
DOCX Y Y paragraph:N table:N Y
XLSX Y Y cell:Sheet!A1 range: sheet: Y
PPTX Y Y slide:N slide_title:N Y
PDF Y page:N outline metadata Y

Quick Start

1. Install

pip install dokumen-pintar

With semantic search:

pip install dokumen-pintar[semantic]

2. Create a Config

dokumen-pintar-init

Or create one manually:

{
  "roots": [
    { "name": "documents", "path": "~/Documents", "writable": true },
    { "name": "projects",  "path": "~/Projects",  "writable": true }
  ]
}

3. Run

dokumen-pintar --config dokumen-pintar.config.json

4. Connect to an AI Client

Claude Desktop — Add to claude_desktop_config.json:

{
  "mcpServers": {
    "dokumen-pintar": {
      "command": "dokumen-pintar",
      "args": ["--config", "/path/to/dokumen-pintar.config.json"]
    }
  }
}

Cursor / VS Code / Windsurf — Use the same stdio transport. Point your IDE's MCP settings to the dokumen-pintar command and config path.


Tools Overview

30 MCP tools organized by category:

Category Tools
Workspace workspace_list_roots workspace_stat workspace_tree
File CRUD file_create file_delete file_rename file_copy file_move
Content content_read content_write content_append content_insert content_replace content_patch
Structured structured_get structured_set structured_delete structured_meta
Batch batch_rename batch_replace_content batch_delete
Search search_filename search_content search_in_format
Versioning version_list version_diff version_restore version_undo version_purge
Semantic* semantic_index semantic_search

*Only available when semantic_search.enabled = true and [semantic] extras are installed.


Documentation

Full docs on GitHub: github.com/firdausmntp/Dokumen-Pintar

  • USAGE.md — Workspace URIs, tool examples, practical recipes
  • CONFIG.md — All config fields with types, defaults, and notes
  • TOOLS.md — Full reference for all 30 tools
  • ARCHITECTURE.md — Module map, request flow, versioning, safety

License

MIT — 2026 firdausmntp

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dokumen_pintar-1.0.0.tar.gz (89.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dokumen_pintar-1.0.0-py3-none-any.whl (61.1 kB view details)

Uploaded Python 3

File details

Details for the file dokumen_pintar-1.0.0.tar.gz.

File metadata

  • Download URL: dokumen_pintar-1.0.0.tar.gz
  • Upload date:
  • Size: 89.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dokumen_pintar-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9661c1ea0604aeec906833dd6802489ac46e0ec01c642e234d4049644ce8781c
MD5 f9cd577f6453b44e36f0b2abdf6499e6
BLAKE2b-256 ca141c846dbfe9f146dfb6d21782e1d235a3f90022689d07480644c491f1b52c

See more details on using hashes here.

Provenance

The following attestation bundles were made for dokumen_pintar-1.0.0.tar.gz:

Publisher: publish.yml on firdausmntp/Dokumen-Pintar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dokumen_pintar-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dokumen_pintar-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 61.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dokumen_pintar-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 160f34ec1a1f6ed14191ddc1250a6c5da842e4a98159b4b78205cfb08eb7f2bd
MD5 72390f0f0791fd29c2eea160a5690952
BLAKE2b-256 1573d03f6bf1eb0c66aed013048aceb095448b5827c36319a9892f2de2cccf3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dokumen_pintar-1.0.0-py3-none-any.whl:

Publisher: publish.yml on firdausmntp/Dokumen-Pintar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page