doc-extract-mcp
doc-extract-mcp
Ein MCP (Model Context Protocol)-erverer, dеer einem LLM dеterministischer Dokumentwerkzeuge f тюr strukturierte Datеnextraktions-Workflows in the extraction of structured data workflows bereitstelt. Das LLM ⁇berfinew die Lesen und die Extraktionslogik; dеser Server liefert die Teile, die niemals einem Spьachmodell ⁇berlassen werden sollten: zuverl̈ssiger Dateizugriff, Parsing, Chunking, JSОN-Schema-Validierung und geschützte Datiausgabe.
Erstellt von Koray Nar als Portfolio-Projekt für die KI-Dokumentautomatwing-Workflows, die er aufba]t — der primäre Anwendungsfall ist die Umwandlung unaufgeräumter PDFs (Bestellungen, Rechnungen, Berichte) in schema-validiertes JSON. Veröffentlicht als Teil eines öffentlichen Portfolios. Funktioniert mit Claude Code und Claude Desktop sowie mit jedem anderen MCinen-Client.
Requis
Ein Extraktions-Agent schEiterret an ch various stelle: Er halluzin‑t Datei‑inhalte, verlirt bei langen Daken den Überblik, erzeugt lautlos JSON, das fast d–Zielschema entspreckt, und schreibt die ‐usgabe dortwhere he is. Dieser Server behebt these Fehlerqueen:
Dateizugriff ist auf ein einziges erlaubtes Wurzelverzeichnis beschrätzt (
DOC_EXTRACT_ROOT).PDF-Text wird de→ withexplizes Markern
--- page N ---geliefert, sodass Zitate wie „Seite 3" tatsächlich Seite 3 bedeuten.Lange Dokeuments werden überzup√ende Chunks deterministisch aufgeteilt, mit Überlappung und Seitenhinweizen.
Extrahiertes JSON wird gegen ein JSON Schema (Draft 2020-12) geprüft, and jeder Fehler mit einem JSON-Pontiner-Pfad gemeldet – nicht nur der f–ste –, sodass das Model alle Fehler in einem Durchgang heben kann.
Die Ausgabе wird vom Server (JSON oder CSV) innerhalb desselben Wurzelverzeichnisse geschrieben, mit verifzierbarer Zeilen-/Byte-Anzahl.
Related MCP server: BigContext MCP
Werkzeuge
Werkzeug | Argumente | Was es tut |
|
| Listet Dateien unter einem Verzeichnis innerhalb des erlaubten Wurzelverzeichnisses auf, mit Größe und Änderungszeit. Es unterstützt es tripsiv Glob-uster like |
|
| Gibt den Text eines Dокуments zurück. |
|
| Metadaten ohne volständigen Inhalt: Typ, acier, Gecke, Änder- und –; Seitenzahl und PDF-Metadaten for PDFs; Zeilenahl for Textdateien. |
|
| Teilt ein Dokument in geordnete, überflappende Chunks, jeweils mit einem Index, Start-Oer und (bei PDFs) einem Seiten- und. |
|
| Validiert ein JSON-String gegen eine JSON Schema (Draft 2020-12). Gibt jeden Validisierungfehler mit einem JSON-Pointer-Pfad via |
|
| Schreibt extrahierte Daten innerhalb des erlaubten Wurzelverzeichisses. CSV erwartet ein JSON-Array with flaches Objekten. Returns path, Zeile- und Byte-Anzahl. |
Alle Wegargumente werden aufgelöst and abgeleht, wenn sie das erlaubte Wurzelverzeichnis verlassen (Pfad-Traversal-Schutz). Das Argument glob_pattern wird genauso eingeschränkt: absolute Muster und Muster, die .. enthalten, werden abgeleht, und jede Treffer, der neben des Wurzelverzeichnisses aufgelöst wird (zum Beispiel über einen Symlink), wird stillschweigend aus der Auflistung entfernt. Schutwarner werden als MCP-Too-Fehler gemeldet, sodass das aufrufende Modell den tatsächlich Grun sieht, nicht eine maskierte generische.
Schnelstart
Erforderlich sind Python 3.11+ and uv.
git clone https://github.com/koraynar/doc-extract-mcp.git
cd doc-extract-mcp
uv venv
uv pip install -e .Standalone ausführen (stdio-Transport):*
DOC_EXTRACT_ROOT=/path/to/your/documents uv run doc-extract-mcpClaude Code
claude mcp add doc-extract --env DOC_EXTRACT_ROOT=/path/to/your/documents \
-- uv run --directory /absolute/path/to/doc-extract-mcp doc-extract-mcpClaude Desktop
Fügen Sie zu claude_desktop_config.json hinzu:
{
"mcpServers": {
"doc-extract": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/doc-extract-mcp",
"doc-extract-mcp"
],
"env": {
"DOC_EXTRACT_ROOT": "/path/to/your/documents"
}
}
}
}Wenn kein–DOC_EXTRACT_ROOT` gesetzt ist, wird standardmäßig das Arbeitsverzeichnis des Servers verwendet. Setzen Sie es auf den Ordner, in dem Sie Ihre persönliche Dokumente liefern; nichts außerhalb des Ordners kann gelesen or gschreben werden.
Typischer Ablauf
list_documents (".", "*.pdf")– die Rechnungen finden.document_info("river.pdf")– die Seitenänze prüe.read_document("invoice.pdf", "1-3")oderchunk_document(...)– Text holen.Die LLM extrahier die Felder in JSON.
validate_json(data),json_schema– alleenFehler beheben and neu validieren.save_struked("out/invoice.json", data, "json")– das Ergebnist schreiben.
Einschränkungen (ehrliche)
Nur basiertes PDFs.**
Die Extrakton kwalität variiert. ** The screen; nie-json habenh**.
keine
lv.docx / .xlsx: Unterstützte Typen.**Der Server übernimmt keine Extraktionslist – er schreibt keine Grundchätzliche Fehler.
Der Server übernimmt ke? Er findet nicht die Zähl... Then the actual full list:
Nur textbasierte PDFs. Die Extraktion verwendet pypdf; gescannte oder rein bildbasierte PDFs liefern leeren Text. Es gibt keine OCR.
Die Extraktionsqualität variiert , je nachdem, wie die PDF erstellt wurde. Komplexe Layouts (mehrspaltig, umfangreiche Symbole) können in einer unvollkommenen Lesefolge resultieren — das ist eine pypdf-Eigenschaft, die dieser Server erbt.
Keine .docx-/.xlsx-Unterstützung – Unterstützt werden
.pdf,.txt,.md,.csv,.json.Der Server übernimmt keine Extraktionslogik. Er findet deine Modellszen nicht; er sorgt dafür, dass das Modell, das das tut, mit echten Texten mutiert arbeitet und das Ergebnis dem Schema entspricht.
Dies ist eine Arbeitskraft, dis für die KI-Automationsarbeit, die ich entgegen und veröffentlicht, als Teil meines Portfolios – sie ist neu und hat noch keine Produktionslaufzeit. Sie hat Tests und den Pfad-Schutz, ist aber darüber hinaus noch nicht weiter gehärtet – bitte prüßen Sie before Sie ihn auf diese sensible Verzeichnisse ausrichten.
Entwicklung
uv venv
uv pip install -e '.[dev]'
uv run pytestDie Testsuite erstellt eine kleine zweiseitige PDF-Fixture im Speicher (ein minimal manu konstruiertes PDF, keine zusätlichen Abhängikeiten) und deckt alle sechs Werkzeuge die Vorgänge, einschließlich der Pfad-Traversal, die Einschränkung der Blob-Muster (einschließlich Symlink-Pässe), Fehler bei Seitenbereich, Mehrfehler-Validierung, CSV-Roundtrip und Werkzeug-Registrierung sowie Fehler-Propierung üb das MCP-server-objekt.
License
MIT © 2026 Koray Nar
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to securely read and extract information from PDF files including text content, metadata, and page counts from both local files and URLs within the project context.12,191MIT
- AlicenseBqualityDmaintenanceEnables working with large documents of any size by intelligently segmenting them and using TF-IDF search to retrieve only relevant fragments, preventing context window saturation. Provides 31 domain-agnostic tools for document ingestion, semantic analysis, epistemological validation, and extraction verification across formats like PDF, EPUB, and HTML.31MIT
- AlicenseBqualityDmaintenanceEnables AI agents to generate professional Word and PDF documents with support for Markdown, syntax highlighting, and smart pagination. It features automatic JSON detection and responsive A4 formatting for creating high-quality technical reports and manuals.2757MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with comprehensive document parsing capabilities including PDF text extraction, OCR, HTML-to-markdown conversion, table extraction, and summarization, optimized for agent workflows.101MIT
Related MCP Connectors
Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.
Deterministic JSON repair, validate, example-gen, schema-coerce for agents. Zero LLM, sub-10ms.
Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/koraynar/doc-extract-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server