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.1.tar.gz (99.4 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.1-py3-none-any.whl (66.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dokumen_pintar-1.0.1.tar.gz
  • Upload date:
  • Size: 99.4 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.1.tar.gz
Algorithm Hash digest
SHA256 a1523a65fe5a71b46e0b6769962806f5926718ef995b3fca4ec81ad6c32a1515
MD5 47a73a5ad536e4ff189f379e343de841
BLAKE2b-256 5c3da3e3001f5159991a8f80d81003ad4a17ddcc73559c188fc417d40d5ad995

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: dokumen_pintar-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 66.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 344440a30dd5db9d4fd4c6c705b31f2b370e2219dfb78cca91c35294b9d68648
MD5 f5fb9504d3829cecd59e34473397c064
BLAKE2b-256 09a85af18549c117a1944d3d0993585cf4583611572949fecd9d91c2b49a4575

See more details on using hashes here.

Provenance

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