Unstract
by Zipstack
Unstract's MCP server lets an agent hand a document — a PDF, scan, or image — to your deployed Unstract API and get back structured, LLM-extracted JSON.
Add to Claude Desktop (Docker)
docker run -i --rm -v /tmp:/tmp -e UNSTRACT_API_KEY -e API_BASE_URL unstract/mcp-server unstract
About
Unstract is a no-code platform for building LLM-driven document extraction pipelines: you describe what to pull out of unstructured documents — PDFs, scans, images — using natural-language prompts, then deploy that pipeline as an API or an ETL step. The MCP server sits on top of an already-deployed Unstract API deployment rather than replacing it.
Through a single unstract_tool, an MCP client like Claude Desktop can submit a local file, and the server handles the asynchronous side: it polls the Unstract API until extraction finishes, handles errors and timeouts, and returns the structured result, optionally including extraction metadata and metrics alongside the data itself.
Key features
- Wraps an existing Unstract API deployment so agents can submit files without calling the REST API directly
- Handles async polling until extraction completes instead of leaving that to the client
- Returns structured JSON extraction results, with optional metadata and metrics
- Runs as a Docker container wired into Claude Desktop's config via two environment variables
- Built on Unstract's own LLM-driven extraction pipelines — no separate OCR/parsing stack to configure
Use cases
- Letting an agent turn an incoming PDF, like a bank statement or invoice, into structured JSON on request
- Wiring a document-extraction step into an agentic workflow without hand-rolling OCR or parsing
- Testing an Unstract extraction pipeline interactively from Claude Desktop before wiring it into an ETL job
- Returning extraction confidence/metrics alongside parsed data for downstream validation
Available tools
unstract_tool
Submits a file to a deployed Unstract API, polls for completion, and returns the structured extraction result as JSON.
Async polling loop
Internally checks the deployed Unstract API's job status at intervals until extraction finishes or a timeout is hit.
Frequently asked questions
Does the MCP server do the extraction itself?
No — it's a thin client. The extraction logic lives in an Unstract API deployment you've already built; the MCP server submits files to it, polls until done, and hands back the structured result.
What credentials does it need?
Two environment variables: UNSTRACT_API_KEY for your Unstract account and API_BASE_URL pointing at your deployed extraction API.