localparse-mcp
An MCP server that gives your coding agent (Cursor, Claude Desktop, etc.) accurate document parsing and schema-driven JSON extraction via LocalParse — table-detection recovery + arithmetic identity checks on the parse side, and a server-validated JSON Schema contract on the extract side — instead of letting it write throwaway OCR scripts.
Tools
Parse
| Tool | What it does |
|---|---|
parse_document(path, result_type) |
Parse a local file (PDF/image/PPTX/…). |
parse_url(url, result_type) |
Download a remote doc and parse it. |
parse_folder(path, case_id, resume) |
Ingest a whole folder into a named case; re-runs only parse changed files. |
get_structured(job_id) |
Fetch the structured ingestion contract for a job. |
case_manifest(case_id) |
List a case's ingested docs (path + hash + status). |
case_failures(case_id) |
List a case's failed docs for reingest. |
result_type ∈ markdown (default), text, json, structured.
Extract (Beta)
| Tool | What it does |
|---|---|
extract_document(path, data_schema, system_prompt?) |
Parse a file and extract structured JSON in one call. Most useful tool for agents. |
extract(markdown, data_schema, system_prompt?) |
Run the extract step on already-parsed markdown. |
The server validates the model's output against your data_schema before
returning, so the JSON you get back is guaranteed to match the shape you asked
for. Example natural-language prompts an agent can use:
"Use
extract_documenton./invoices/q3.pdfwith this schema:{type:'object', properties:{vendor:{type:'string'}, total:{type:'number'}}, required:['vendor','total']}"
Configure your client
You need a LocalParse API key (LOCALPARSE_API_KEY).
Cursor — ~/.cursor/mcp.json (or project .cursor/mcp.json)
{
"mcpServers": {
"localparse": {
"command": "uvx",
"args": ["localparse-mcp"],
"env": { "LOCALPARSE_API_KEY": "lp-your-key" }
}
}
}
Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"localparse": {
"command": "uvx",
"args": ["localparse-mcp"],
"env": { "LOCALPARSE_API_KEY": "lp-your-key" }
}
}
}
Then ask the agent things like "parse the PDFs in ./data-room into case acme and tell me which tables don't reconcile."
Local development (before it's on PyPI)
Run the server straight from the repo and point the client at it:
{
"mcpServers": {
"localparse": {
"command": "uv",
"args": ["run", "--directory", "/abs/path/to/Agent-ingestor", "localparse-mcp"],
"env": { "LOCALPARSE_API_KEY": "lp-your-key" }
}
}
}
Point at a self-hosted parser by also setting LOCALPARSE_BASE_URL.
Metadata
Release files for localparse-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| localparse_mcp-0.2.0.tar.gz | 7.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| localparse_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.4 kB
Release files / localparse_mcp-0.2.0.tar.gz
| Download URL | localparse_mcp-0.2.0.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a2e17dfc8600fd592f5b87e8802ce11c266526cac3179d2a2c55fd475eefbc0
|
|
BLAKE2b-256 checksum How to use checksums |
6e41139d688cbeb175ab59f066be231a3f051988226fdb8c2ac8a0d4d9dba10f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / localparse_mcp-0.2.0-py3-none-any.whl
| Download URL | localparse_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 6.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a7ac3aa7b33cbe43c283bd3a9d4f8808223c48df893dbfe8507db94a68fb5d98
|
|
BLAKE2b-256 checksum How to use checksums |
78c947680c8977969f758f4180e154d4076d64421c8285f9aa7757704d0ca98d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|