Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Doc Extract MCP

by koraynarversion 0.1.0i★ –i–
Registry nameio.github.koraynar/doc-extract-mcp

Install

Overview

Description from the maker (original English)

Document tooling for AI agents: PDF/text reading, chunking, schema-validated JSON output.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: –
  • Transport:
  • Category: Docs, sheets & office work

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

The maker has not listed install details in the registry. See the maker’s README below.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account koraynar, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Docs, sheets & office worki

  • More stars than 0% of the other 2197 servers in this category
  • Published to the registry more recently than 31% of the other 2197 servers in this category
  • Basic checks equal to or better than 100% of the other 2197 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Doc Extract MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 2 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code.

What can I use instead?

In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Agent-Native Google Calendar - manage events, sync, and public booking

Runs in the cloud★ 7,620MITUpdated 2 months ago
Install

Excel MCP Server

by haris-musa

Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.

Runs on your computer★ 4,276MITUpdated 6 days ago
Install

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

Runs on your computer★ 847MITUpdated 4 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

doc-extract-mcp

An MCP (Model Context Protocol) server that gives an LLM deterministic document tooling for structured-data extraction workflows. The LLM does the reading and extraction reasoning; this server provides the parts that should never be left to a language model: reliable file access, parsing, chunking, JSON Schema validation, and guarded file output.

Built by Koray Nar as a portfolio project for the AI document-automation workflows he is building — the target use case is turning messy PDFs (purchase orders, invoices, reports) into schema-validated JSON. Published as part of a public portfolio. Pairs with Claude Code and Claude Desktop, and with any other MCP client.

Why

An extraction agent fails in predictable places: it hallucinates file contents, loses track of long documents, silently produces JSON that almost matches the target schema, and writes output wherever it likes. This server removes those failure modes:

  • File access is confined to one allowed root (DOC_EXTRACT_ROOT).
  • PDF text arrives with explicit --- page N --- markers, so citations of "page 3" mean page 3.
  • Long documents are chunked deterministically with overlap and page hints.
  • Extracted JSON is checked against a JSON Schema (Draft 2020-12) and every error is reported with a JSON Pointer path — not just the first — so the model can fix all mistakes in one pass.
  • Output is written by the server (JSON or CSV), inside the same root, with a verifiable row/byte count.

Tools

ToolArgumentsWhat it does
list_documentsdirectory, glob_pattern='*'List files under a directory inside the allowed root, with size and modified time. Supports recursive globs like **/*.pdf. Patterns must be relative and free of ..; matches resolving outside the root are dropped.
read_documentpath, pages=''Return a document's text. .pdf via pypdf with --- page N --- markers and optional 1-indexed page selection ('3', '1-5', '1-3,7'); .txt/.md/.json read directly; .csv rendered as an aligned text table. Clear error for unsupported types.
document_infopathMetadata without full content: type, size, modified time; page count and PDF metadata for PDFs; line count for text files.
chunk_documentpath, max_chars=4000, overlap=200Split a document into ordered overlapping chunks, each with an index, start offset, and (for PDFs) a page hint.
validate_jsondata, json_schemaValidate a JSON string against a JSON Schema (Draft 2020-12). Returns every validation error with a JSON Pointer path via Draft202012Validator.iter_errors.
save_structuredpath, data, `format='json'\'csv'`Write extracted data inside the allowed root. CSV expects a JSON array of flat objects. Returns written path, row count, and byte count.

All path arguments are resolved and refused if they escape the allowed root (path traversal guard). The glob_pattern argument is confined the same way: absolute patterns and patterns containing .. are rejected, and any match that resolves outside the root (for example through a symlink) is silently dropped from the listing. Guard failures are raised as MCP tool errors, so the calling model sees the actual reason, not a masked generic error.

Quickstart

Requires 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 .

Run standalone (stdio transport):

DOC_EXTRACT_ROOT=/path/to/your/documents uv run doc-extract-mcp
Claude 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-mcp

Claude Desktop

Add to claude_desktop_config.json:

{

"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" } } } }

DOC_EXTRACT_ROOT defaults to the server's working directory if unset. Set it to the folder your documents live in; nothing outside it can be read or written.

Typical workflow
  1. list_documents(".", "*.pdf") — find the invoices.
  2. document_info("invoice.pdf") — check the page count.
  3. read_document("invoice.pdf", "1-3") or chunk_document(...) — get text.
  4. The LLM extracts fields into JSON.
  5. validate_json(data, json_schema) — fix every reported error, revalidate.
  6. save_structured("out/invoice.json", data, "json") — write the result.

Limitations (honest ones)

  • Text-based PDFs only. Extraction uses pypdf; scanned/image-only PDFs yield empty text. There is no OCR.
  • Extraction quality varies with how the PDF was produced. Complex layouts (multi-column, heavy tables) may come out with imperfect reading order — that is a pypdf characteristic this server inherits.
  • No .docx / .xlsx support. Supported types are .pdf, .txt, .md, .csv, .json.
  • The server does no extraction reasoning. It will not find your invoice total; it makes sure the model that does is working from real text and that the result matches your schema.
  • This is a working tool, built for the AI-automation work I'm building up and published as part of my portfolio — it is new and has no production mileage yet. It has tests and a path-confinement guard, but it has not been hardened beyond that — review before pointing it at sensitive directories.

Development

uv venv

uv pip install -e '.[dev]' uv run pytest

The test suite builds a small two-page PDF fixture in-memory (a minimal hand-constructed PDF, no extra dependencies) and covers all six tools, the path-traversal guard, glob-pattern confinement (including symlink escapes), page-range errors, multi-error schema validation, a CSV round-trip, and tool registration plus error propagation through the MCP server object.

License

MIT © 2026 Koray Nar

Ask PopNx