docuprox-mcp
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@docuprox-mcpProcess the invoice at documents/invoice.pdf using template default."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
docuprox-mcp
MCP (Model Context Protocol) server for the DocuProx document-processing API. Exposes DocuProx as tools that any MCP-compatible AI client can call — Claude Desktop, Claude Code, Cursor, Windsurf, and more.
Quickstart (npx — no install required)
DOCUPROX_API_KEY=your_key DOCUPROX_BASE_URL=https://api.docuprox.com/v1 npx docuprox-mcpRequires Node.js ≥ 18.
Related MCP server: MCP Server for CAP
Configuration
Variable | Required | Description |
| yes | Your DocuProx API key |
| yes | Base URL of the DocuProx API (e.g. |
Connect to an MCP Client
Claude Desktop
macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
Windows — %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"docuprox": {
"command": "npx",
"args": ["docuprox-mcp"],
"env": {
"DOCUPROX_API_KEY": "your_api_key_here",
"DOCUPROX_BASE_URL": "https://api.docuprox.com/v1"
}
}
}
}Claude Code (CLI)
claude mcp add docuprox -e DOCUPROX_API_KEY=your_api_key_here -e DOCUPROX_BASE_URL=https://api.docuprox.com/v1 -- npx docuprox-mcpCursor / Windsurf
Add to your MCP settings (.cursor/mcp.json or equivalent):
{
"mcpServers": {
"docuprox": {
"command": "npx",
"args": ["docuprox-mcp"],
"env": {
"DOCUPROX_API_KEY": "your_api_key_here",
"DOCUPROX_BASE_URL": "https://api.docuprox.com/v1"
}
}
}
}Available Tools
process_job
Submit a document for asynchronous processing. Returns a job_id to track with poll_job or job_results.
Argument | Type | Required | Description |
| string | yes | Path to file on disk (jpg, png, pdf, zip) |
| string | no | UUID of a DocuProx template |
| string | no* | Document category — required when no |
| object | no | Custom extraction schema |
| string | no | Free-text guidance for the AI |
| object | no | Key-value overrides for STATIC template placeholders |
Example: "Submit the invoice at
/tmp/invoice.pdfusing template123e4567-e89b-12d3-a456-426614174000"
process_agent
Submit a document for synchronous extraction. Blocks until done and returns results directly — no polling needed. Credits are automatically refunded on failure.
Argument | Type | Required | Description |
| string | yes | Path to file on disk |
| object | yes | Extraction schema |
| string | yes | Document category |
| string | no | Free-text guidance |
| object | no | Key-value STATIC overrides |
Example: "Extract passport data from
/home/user/passport.jpg. Use document_type='passport' and prompt_json{ 'name': 'full name', 'dob': 'date of birth' }"
job_status
Check the status of an async job.
Argument | Type | Required | Description |
| string | yes | UUID from |
Returns: { job_id, status } where status is one of:
NEW → UNZIP FILE → UNZIP FILE SUCCESS / UNZIP FILE FAILED → PROCESS IMAGE → PROCESS IMAGE SUCCESS / PROCESS IMAGE FAILED → SUCCESS / FAILED
poll_job
Block until a job finishes (or times out). Retries job_status internally on a timer.
Argument | Type | Required | Default | Description |
| string | yes | — | UUID from |
| number | no |
| Poll interval in ms |
| number | no |
| Max wait in ms (5 min) |
Example: "Submit
/tmp/batch.zipthen wait for the result" — Claude will callprocess_jobthenpoll_jobautomatically.
job_results
Fetch the extracted results of a completed async job.
Argument | Type | Required | Default | Description |
| string | yes | — | UUID from |
| string | no |
| Output format: |
Example: "Get the results for job
0869d5ec-5cfe-4960-878d-8b4ec1900726in CSV format"
How File Uploads Work
Every tool that accepts a file_path:
Resolves it to an absolute path
Reads the file into a
BufferDetects MIME type from the file extension
Sends it as
multipart/form-datawith field nameactual_image
The AI never sees or handles base64 — just pass a local file path.
Error Handling
Error | Cause |
File not found |
|
API error | HTTP status + response body surfaced in the tool result |
Invalid arguments | Zod validation fires before any API call |
Credit failure | 402/403 from |
Local Development
# Clone and install
git clone <repo>
cd docuprox-mcp
npm install
# Run in dev mode (no build step)
DOCUPROX_API_KEY=test DOCUPROX_BASE_URL=http://localhost:5000/v1 npm run dev
# Build
npm run build
# Inspect with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsProject Structure
docuprox-mcp/
├── index.ts ← MCP server entry point (stdio transport)
├── config.ts ← Env-var config loader
├── client.ts ← Axios API client (multipart/form-data uploads)
├── tools.ts ← Zod schemas + MCP tool definitions
├── handlers.ts ← Maps tool names → client calls
├── package.json
└── tsconfig.jsonLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/docuprox/docuprox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server