PARSER GUIDES
MCP Server
Connect AI agents to PARSER using the remote MCP server
PARSER provides a remote Model Context Protocol (MCP) server so AI agents can work with your parsers, document classifiers, documents, folders, fields, reviews, exports, and webhooks using natural language.
Use MCP when you want an AI assistant to help with actions like:
- Find parsers and inspect parser settings
- Find document classifiers and inspect routing settings
- Upload or process documents through a parser or classifier
- Search documents by name, status, folder, external ID, or extracted values
- Read and update extracted data
- Manage folders and move documents
- Configure fields and table fields
- Configure automatic document names from extracted field values
- Configure review stages and approve or reject documents
- Export selected data as JSON, XML, CSV, or XLSX
- Manage webhook endpoint settings
The MCP server is built on the same PARSER permissions and public API behavior. It is meant for AI-agent workflows, while the REST API remains the best option for backend-to-backend integrations.
MCP server URL
Add this remote MCP server URL in your MCP client:
https://mcp.PARSER.com/mcp
Authentication
PARSER MCP uses OAuth. Do not create or paste an API key into your MCP client.
When you connect:
1. Your MCP client opens PARSER authentication.
2. Log in to PARSER if needed.
3. Choose the team the AI agent should access.
4. Review the requested access.
5. Approve access.
The connection is scoped to the selected team. MCP tools do not accept a teamId; PARSER uses the team chosen during OAuth consent.
MCP must be included for the selected team. PARSER checks eligibility during connection and again whenever the client uses MCP. If the team no longer qualifies, the saved connection remains visible as Plan required, but the client cannot access team data until eligibility returns.
Setup
Open your MCP client settings
Use a client that supports remote MCP servers with OAuth. The setup usually lives under an area named MCP, Connectors, Tools, or Integrations.
Add the PARSER server
Create a new remote MCP connection with:
Name: PARSER
URL: https://mcp.PARSER.com/mcp
Authenticate
Click Connect, Authenticate, or the equivalent action in your MCP client. PARSER will ask you to log in, choose a team, and approve access.
Test the connection
Ask your AI assistant:
List my PARSER parsers.
If the connection is working, the assistant should call the list_parsers tool and return parsers from the team you selected during OAuth.
Client compatibility
PARSER uses remote Streamable HTTP with JSON responses and OAuth. It supports MCP protocol versions:
2025-11-25(preferred)2025-06-18(compatibility)
Use a current MCP client that supports remote OAuth servers. PARSER is stateless and does not use server-sent event (SSE) sessions.
Available tools
Parsers
list_parsers- List available parsers for the connected team.get_parser- Get parser details and settings.create_parser- Create a new parser.update_parser- Update safe parser settings.duplicate_parser- Duplicate parser setup without documents or secrets.configure_parser_fields- Read or replace parser fields and table fields.get_document_naming- Get automatic naming settings and the exact variables available to filename templates.configure_document_naming- Enable, disable, or replace automatic naming rules.
Document classifiers
list_classifiers- List available document classifiers for the connected team.get_classifier- Get classifier details and routing settings.create_classifier- Create a classifier with routing rules.update_classifier- Update classifier settings and routing rules.delete_classifier- Delete a classifier. Requiresconfirm: true.list_classifier_documents- List classifier documents by routing status, search, date, or page.get_classifier_document- Get one classifier document and its latest routing result.reprocess_classifier_document- Re-run classification and routing for a skipped or failed classifier document.
Documents
upload_document_url- Process one or more documents from downloadable URLs through a parser or classifier.prepare_document_upload- Create short-lived direct upload URLs for attached or local files.complete_document_upload- Verify a prepared upload and queue the complete batch for processing.upload_document_file- Upload small files as complete base64 content when direct upload is unavailable.search_documents- Search documents by metadata and extracted data.get_document- Get document status, metadata, extracted data, and review summary.get_document_data- Get the latest extracted data for a document.update_document- Update document name, external ID, custom data, assignee, or folder.update_document_data- Patch extracted field and table values.reprocess_document- Re-run extraction for a document.delete_document- Delete one or more documents. Requiresconfirm: true.
Folders
list_folders- List folders in a parser.create_folder- Create a folder.update_folder- Update a folder.delete_folder- Delete a folder. Requiresconfirm: true.move_documents_to_folder- Move documents into a folder or remove them from folders.
Reviews & Approvals
list_reviewers- List eligible reviewers for a parser.list_review_stages- List review stages for a parser.configure_review_stages- Read or replace review stages.approve_document- Approve the current review stage.reject_document- Reject the current review stage.reset_document_review- Reset an approved or rejected document back to review.
Exports and webhooks
export_documents- Export selected or filtered documents as JSON, XML, CSV, or XLSX.list_webhooks- List parser webhook endpoint settings.create_webhook- Create a webhook endpoint.update_webhook- Update a webhook endpoint.delete_webhook- Delete a webhook endpoint. Requiresconfirm: true.
Available resources
MCP resources are read-only JSON snapshots that agents can fetch without inventing a tool call.
Concrete resource roots:
PARSER://parsersPARSER://classifiers
Parameterized resource templates:
PARSER://parsers/{parserId}PARSER://classifiers/{classifierId}PARSER://classifiers/{classifierId}/documents/{documentId}PARSER://parsers/{parserId}/fieldsPARSER://parsers/{parserId}/foldersPARSER://parsers/{parserId}/review-stagesPARSER://parsers/{parserId}/document-namingPARSER://parsers/{parserId}/documents/{documentId}
Common workflows
Process a document from a URL
Ask:
Process this invoice in my Invoices parser: https://example.com/invoice.pdf
The agent should:
1. Find the parser, if needed.
2. Call upload_document_url.
3. Return the new document ID and initial processing status.
4. Poll with get_document or get_document_data until processing completes.
Route a mixed batch
Ask:
Upload this file to my Claims intake classifier: https://example.com/mixed-claim.pdf
The agent should:
1. Find the classifier, if needed.
2. Call upload_document_url with the classifier.
3. Return the initial classifier document status.
4. Poll with get_classifier_document until routing finishes.
5. Use parser document tools after the routed document is processed by the target parser.
Inspect and retry classifier routing
Ask:
Show failed or skipped documents in my Claims intake classifier and reprocess the latest failed one.
The agent can use list_classifier_documents, inspect the routing category, destination parser, reasoning, and safe failure details with get_classifier_document, then call reprocess_classifier_document.
Upload a local file
For an attached or local file, prefer direct upload. The file bytes go straight to PARSER storage and do not pass through a base64 MCP argument.
The agent should:
1. Read each filename and byte size from the local file.
2. Call prepare_document_upload with one parser or classifier and up to 20 files. Each file can be up to 100 MB.
3. Upload each file's raw bytes with the returned PUT URL and headers. The signed URLs expire after 15 minutes.
4. After every upload returns a successful HTTP status, call complete_document_upload with the returned document IDs.
5. Poll with get_document, get_document_data, or get_classifier_document until processing completes.
Do not base64-encode files for this workflow. Treat each signed upload URL as a temporary credential and do not share or log it.
If a file is already available through a downloadable public URL, upload_document_url is also suitable. If the MCP client cannot make the signed PUT request, upload_document_file remains a small-file fallback. Its canonical file shape is { filename, contentType, contentBase64 }, and one request is limited to 2 MiB of decoded data in total.
PARSER validates the complete batch metadata before preparing documents and verifies every direct-uploaded object against its expected size before queueing it. Inline PDFs are also checked for truncated or corrupted base64 content before they reach the Document Inbox.
Search and update extracted data
Ask:
Find invoices from Acme in June and update the PO Number on the latest one to PO-1024.
The agent can use search_documents, get_document_data, and update_document_data.
Automatically name invoices after extraction
Ask:
Rename every document in my Invoices parser to Invoice- followed by the extracted Invoice Number.
The agent should:
1. Find the parser with list_parsers.
2. Call get_document_naming to read the current configuration and available variables.
3. Confirm that the parser contains the exact field name Invoice Number.
4. Call configure_document_naming with:
{
"parserId": "parser-id",
"enabled": true,
"defaultTemplate": "Invoice-{{Invoice Number}}"
}
PARSER evaluates the template after extraction and preserves the original file extension. For example, an extracted invoice number of INV-1042 produces Invoice-INV-1042.jpg for an original JPG. Do not add .jpg or another extension to the template.
Template variables are case-sensitive and must exactly match the parser field name, including spaces and punctuation. Conditional naming rules can use extracted fields, document name, created date, folder ID, or folder name. Existing manual document names are not overwritten.
Review a document
Ask:
Show documents waiting for my review, then approve the one from Acme if the total is under 500.
The agent can list reviewers and stages, search documents by review filters, inspect extracted data, and call approve_document with the assigned reviewer ID.
Export data
JSON exports are returned as structured data in the tool result. XML, CSV, and XLSX exports return a temporary download with its filename, content type, size, download URL, and expiry time.
The download URL expires after 15 minutes. Ask the client to save the file before it expires, or run the export again to create a new URL.
File upload reliability
AI clients vary in how they pass local files to MCP tools. For reliable uploads:
- Provide exactly one destination:
parserIdorclassifierId. A folder can be used only with a parser upload. - For attached or local files, use
prepare_document_upload, upload the raw bytes to each returned signed URL, then callcomplete_document_upload. - Direct uploads accept up to 20 files and 100 MB per file. The signed upload URLs expire after 15 minutes.
upload_document_urlaccepts up to 20 public HTTP or HTTPS file URLs. Each file can be up to 100 MB.- URL downloads can follow up to five safe redirects. Local, private-network, credential-bearing, and non-HTTP URLs are rejected.
upload_document_fileaccepts up to 20 inline files and 2 MiB of decoded file data across the complete request.- Do not paste partial base64 or text extracted from a file.
- For inline base64 PDFs, PARSER checks that the uploaded bytes look like a complete PDF before creating the document.
The whole batch is queued only after every file has been stored. If PARSER storage is interrupted before queueing, PARSER cleans or recovers the partial upload and returns one retriable batch error. Retry the complete batch instead of assuming earlier files were accepted.
Documents process asynchronously. A successful parser upload means the complete batch was accepted and queued; use get_document or get_document_data to check processing status and retrieve extracted data. A successful classifier upload may return routing details first; extracted data is available from the target parser after routing and extraction finish.
Tool results and errors
Successful tools return both readable text and structured PARSER data.
Normal tool failures return isError: true with structured error details:
{
"code": "validation_error",
"message": "A safe explanation of what needs to change",
"retryable": false,
"requestId": "request-id"
}
Use retryable to decide whether to retry. Keep requestId when contacting support. Authentication failures use HTTP 401; missing scope, permission, or team eligibility uses 403.
Security behavior
- MCP uses OAuth, not API keys.
- The MCP access token is scoped to one selected PARSER team.
- PARSER checks the saved consent, team membership, team eligibility, granted scope, role, and parser or classifier access on every request.
- Destructive tools require
confirm: true. - PARSER does not expose billing data, integration credentials, webhook secrets, raw OCR, or deleted records through MCP.
- Classifiers route documents to parsers. Extracted-data, export, fields, folders, reviews, and webhook tools remain parser tools.
- Disconnecting an application under Profile settings -> Connections invalidates its existing access on the next request.
Troubleshooting
The browser shows JSON at the MCP URL
If your MCP client opens https://mcp.PARSER.com/mcp in a browser and only shows JSON, the server is returning MCP OAuth discovery metadata. A compatible client should continue the OAuth flow automatically.
If the client stays stuck waiting for a callback, try another MCP client or update the client. The PARSER server supports remote MCP OAuth discovery, but client support can vary.
No parsers are listed
Make sure you chose the correct team during OAuth consent. The MCP connection can only access the team selected during setup.
The team is not available or shows Plan required
MCP must be included for the team. Check the team plan or lifetime license, then reconnect if the team was not available during consent. A saved connection marked Plan required remains blocked until the team becomes eligible again.
Upload succeeded but processing is still running
This is normal. Document processing is asynchronous. Ask the agent to check the document again with get_document or get_document_data.
File upload is rejected as incomplete or corrupted
The MCP client may have sent incomplete base64 file content. Use prepare_document_upload so the client sends the original raw file bytes, or use upload_document_url when the file already has a downloadable URL.
Inline file is too large
Inline base64 uploads are limited to 2 MiB of decoded file data for the complete request. Use prepare_document_upload for an attached or local file, or upload_document_url for an existing downloadable URL.
Direct upload URL expired
Call prepare_document_upload again to create a new signed URL. Do not call complete_document_upload until every replacement upload succeeds.
URL upload is rejected
Confirm that the URL uses HTTP or HTTPS, is publicly reachable without cookies or login credentials, returns the file itself, and does not redirect to a local or private-network address.
Export download expired
XML, CSV, and XLSX download URLs expire after 15 minutes. Run export_documents again to create a fresh URL.
Related docs
- API Reference - REST API endpoints and API-key authentication
- Authentication - API keys for REST APIs and OAuth for MCP
- Connected Applications - Review or revoke MCP clients
- Document Classifiers - Route mixed document batches
- Processing from URLs - Process documents from URLs
- API Access - Connect PARSER to your own systems