PdfParse Docs
MCP server

Connect to the PdfParse MCP server

Connect an AI assistant to PdfParse to upload PDFs, create extraction tables, query saved data, and configure document workflows.

PdfParse exposes document processing actions through a remote Model Context Protocol (MCP) server. Your assistant can discover the available actions and call them on your behalf after you authorize access to your PdfParse account.

Connection settings

SettingValue
Server URLhttps://mcp.pdfparse.net/mcp
TransportStreamable HTTP
AuthenticationOAuth
Read permissionmcp:read
Write permissionmcp:write

Add the URL as a remote MCP server in a client that supports Streamable HTTP and OAuth. Follow the sign-in and consent flow. Project API keys do not authenticate this MCP endpoint.

The documentation lives here on pdfparse.net; the MCP subdomain is the protocol endpoint.

First conversation

Start with:

Show my PdfParse projects and the tables in the project I choose.

The assistant uses connection.info to discover your projects and tables.list to inspect a selected project. Supply project_slug explicitly when working across projects. Actions operate on projects owned by the connected account.

Then try:

Create a purchase-orders table in my selected project, with purchase order number, supplier, order date, and total columns. Upload this PDF into that table and show the extracted rows when processing finishes.

See the usage examples for the exact action sequence and request inputs.

Tables created through MCP include an automatic integer primary key named id, just like tables created in the dashboard. Supply only the fields you want extracted; the database generates id when a row is saved. This also applies to tables provisioned by workflow.setup.

Available capabilities

  • Accounts and projects: identify the connected account, list owned projects, and create a project.
  • Tables and data: list or create extraction tables and query saved rows.
  • Documents and jobs: upload PDFs, start extraction for existing document keys, and inspect job status.
  • Routing: list, create, update, and delete document classification rules.
  • Splitters: create logical or fixed page-range drafts, inspect and update them, publish or archive them, and preview or run fixed page-range splitting.
  • Email workflows: list inboxes and provision an inbox as part of workflow setup.
  • Workflow setup: preview a structured intent, then provision a table, routing rule, optional inbox, and optional logical splitter in an existing project.
  • Analysis: crosscheck extracted data and generate a commercial loan credit memo with citations.

The action reference lists every action, its permission, parameters, and schemas.

Uploading a local document

The remote server cannot read a path on your computer. A client with local file access must read the PDF and pass its bytes as data_base64 to documents.upload. PDFs must be no larger than 8 MiB before base64 encoding.

documents.upload_file accepts a client-provided attachment object containing download_url and file_id. It requires a configured, approved download host. If the server reports that attachment downloads are not configured, use documents.upload with PDF bytes from a client that can read the file. Attaching a PDF in a chat does not guarantee the client can deliver it through MCP.

Uploads return uploadId, fileId, and status. These acknowledge ingestion; they do not prove extraction has finished. Check job status when a job ID is available and query saved rows before reporting success. Do not substitute fileId for a numeric job ID or assume it is an extraction document key.

Workflow setup limits

workflow.setup takes structured fields, rather than a free-text goal alone. The assistant turns your request into a table schema, classification prompt, and optional inbox or splitter configuration.

  • Use an existing project. Call projects.create separately if you need a new one.
  • Preview with dry_run: true, review the configuration, then apply with dry_run: false.
  • Each intent provisions one table. Use separate table actions for additional tables.
  • Identical applied intents reuse saved progress. Inspect in_progress or partial/error results before retrying; saved checkpoints are not a guarantee of atomic setup across services.
  • Publishing a splitter activates configuration for future documents. Review the destination and inbox before publishing.

Troubleshooting

ResultNext step
Authentication requiredReconnect using OAuth and finish sign-in and consent.
Missing mcp:read or mcp:writeReauthorize with the permission needed by the action. Even a workflow preview requires write permission.
Select a project_slugCall connection.info, select an owned project, and pass its slug.
Attachment downloads are not configuredSend PDF bytes through documents.upload from a client with local file access.
Draft revision conflictCall splitters.get, review the current draft, and use its revision in the update or publish request.
No extracted rows yetCheck the extraction job and table configuration. An accepted upload can still be processing or awaiting routing/review.

Errors can be returned as MCP tool results with isError: true; an HTTP 200 alone does not mean the action succeeded. Analysis output is a first pass and should be reviewed against the cited source data.