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:NAME cell:row:N,col:NAME 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.2.tar.gz (144.8 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.2-py3-none-any.whl (98.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dokumen_pintar-1.0.2.tar.gz
  • Upload date:
  • Size: 144.8 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.2.tar.gz
Algorithm Hash digest
SHA256 c176714f860645d588fb960acd521f51a4bbd1cebc237727101743cbd46f8101
MD5 e41e926c45121b64857f937a0e573f97
BLAKE2b-256 b76c5b0cb6d379690571588397cbe31e741f83646284518cdccfb5acdfff7e8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for dokumen_pintar-1.0.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: dokumen_pintar-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 98.2 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0bdf078aee8b68d4663d75bc796d9127de02299ae187542d10cf53102fe6d1e0
MD5 c5f49a34ecb8bb1323675e714e08aad6
BLAKE2b-256 bcb1b3b3fa8dce6c09add09b0a7268eb8dbe13a904894009cbe1c2ef19092e40

See more details on using hashes here.

Provenance

The following attestation bundles were made for dokumen_pintar-1.0.2-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