Suparse MCP Server
OfficialAllows exporting document extraction results directly to Google Sheets via the download_results tool.
Click 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., "@Suparse MCP Serverextract data from invoice.pdf"
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.
Suparse MCP Server
MCP stdio server for the Suparse Document Processing API. Use it from local MCP clients such as Claude Code and Codex to extract structured data from documents into JSON, CSV, XLSX, or Google Sheets; process single files or folders; let Suparse auto-detect extraction schemas or apply your team templates; split mixed multi-page documents; and download or clean up results by document ID.
Security Boundary
This is a local stdio MCP server. Connected MCP clients can ask it to read local document paths and write export files wherever the server process has permission. Only connect it to MCP clients and workspaces you trust.
Related MCP server: Mineru MCP Server
Requirements
A Suparse API key
Node.js 20+
Authentication
The MCP server reads credentials from:
SUPARSE_API_KEY~/.config/suparse/config.json
You can optionally override the API base URL with SUPARSE_API_URL, or pass api_url to individual MCP tools.
Claude Code
claude mcp add suparse -e SUPARSE_API_KEY=your_api_key -- npx -y @suparse/mcpClaude Desktop
Open your config file at ~/Library/Application Support/Claude/claude_desktop_config.json
on Mac or %APPDATA%\Claude\claude_desktop_config.json on Windows. Add Suparse to
the mcpServers section:
{
"mcpServers": {
"suparse": {
"command": "npx",
"args": ["-y", "@suparse/mcp"],
"env": {
"SUPARSE_API_KEY": "your_api_key"
}
}
}
}Codex
Add this to ~/.codex/config.toml or a project-scoped .codex/config.toml:
[mcp_servers.suparse]
command = "npx"
args = ["-y", "@suparse/mcp"]
[mcp_servers.suparse.env]
SUPARSE_API_KEY = "your_api_key"Tools
extract_file: Process one local document. Defaults toresult_mode: "defer", returning compacttask_id/document_idsmetadata for laterdownload_results. Useresult_mode: "return_json"only when the full JSON extraction is needed in the MCP response.extract_folder: Process supported files in one local folder. Defaults toresult_mode: "defer", returning compacttask_id/document_idsmetadata for laterdownload_results. Useresult_mode: "return_json"only when full JSON extractions are needed in the MCP response.list_templates: List summary metadata for templates, grouped into directly usableteam_templatesand discovery-onlysystem_templates.fetch_json_results: Fetch JSON extraction results by document ID directly in the MCP response. Use only when full JSON is needed in context.download_results: Fetch an export by document ID and write it directly to local disk. Use this forjson,csv,xlsx, andgoogle_sheets.delete_documents: Delete documents by ID.
Export Formats
fetch_json_results accepts:
Input | Values | Default |
|
|
|
JSON exports are returned as structured results.
download_results accepts json, csv, xlsx, and google_sheets, plus an optional output_path local file path or existing directory. It writes the export directly to disk and returns the saved output_path. MCP clients should use download_results for CSV, XLSX, Google Sheets, and saved JSON files; they should not fetch base64 data and decode it with shell or Python.
result_mode controls whether extraction results in JSON format are returned directly. Use return_json only when you need the full JSON extraction in the MCP response. In all other cases you can retrieve the results in the format of your choice using download_results.
Important: cleanup on extract_file and extract_folder is only valid with result_mode: "return_json". It fetches JSON and then deletes the processed Suparse documents, so later exports cannot be fetched from those document IDs. For CSV/XLSX/Google Sheets or saved JSON files, run extract_file or extract_folder with result_mode: "defer", call download_results, then call delete_documents.
Template Selection for MCP Agents
MCP agents should use only team_templates when passing template_id to extract_file or extract_folder.
When a user asks to process a document type such as a receipt:
Check
team_templatesfirst and use the matching team template if present.If no matching team template exists, call
list_templateswithinclude_system: trueand checksystem_templates.If a matching system template exists, ask the user to add that system template to their templates in the Suparse UI before processing. Do not pass the system template ID directly to extraction.
If no matching team or system template exists, ask the user to create a custom extraction schema for that document type in the Suparse UI.
Development
Build the package:
pnpm buildTest with MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.mjsThe MCP server uses stdout for JSON-RPC protocol messages. Do not add console.log output to the server path; use stderr or MCP tool responses.
Available Tools
6 toolsdelete_documentsDelete DocumentsB
Delete one or more documents from Suparse by document ID.
| Name | Required | Description | Default |
|---|---|---|---|
| api_url | No | Optional API base URL. Defaults to SUPARSE_API_URL or Suparse production API. | |
| document_ids | Yes | Suparse document IDs to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | Yes | |
| document_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only says 'delete' which implies a destructive action but lacks details on whether it is hard/soft delete, impact on related resources, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence with no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete tool with two parameters, the description is minimal but functional. It does not mention the optional api_url parameter or the irreversible nature of deletion, but given the output schema exists, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds only the phrase 'by document ID', which adds minimal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'one or more documents from Suparse', specifying the method 'by document ID'. This distinguishes the tool from siblings like extract_file or list_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no note about irreversibility of deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_resultsDownload ResultsA
Fetch an export for one or more Suparse document IDs and write it directly to local disk. Use this for CSV, XLSX, Google Sheets, and saved JSON files. Do not call fetch_json_results unless you intentionally need full JSON in the MCP response. If output_path is a directory, the API-provided filename is used inside that directory. If cleanup is needed, call delete_documents after this tool succeeds.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | Export format to write to local disk. Use this tool for csv and xlsx. | |
| api_url | No | Optional API base URL. Defaults to SUPARSE_API_URL or Suparse production API. | |
| export_type | No | Export mode for csv, xlsx, and google_sheets. Defaults to unified. | |
| output_path | No | Optional local output file path or existing directory. When omitted, writes to the current working directory using the API-provided or generated filename. | |
| document_ids | Yes | Suparse document IDs to export. |
Output Schema
| Name | Required | Description |
|---|---|---|
| format | Yes | |
| export_type | Yes | |
| output_path | Yes | |
| document_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses disk writing, directory behavior for output_path, and cleanup. Lacks details on overwrite behavior, permissions, or error handling, but adequate for typical export tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then usage and behavioral notes. No redundancy, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given schema coverage and presence of output schema, the description covers main purpose, usage guidance, and key behavioral aspects. Slight gap in optional parameters like api_url and export_type, but schema handles them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is documented. The description adds value by explaining output_path directory behavior and format use cases, but does not provide deep additional semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches an export and writes to local disk, specifies formats (CSV, XLSX, Google Sheets, saved JSON), and distinguishes from sibling fetch_json_results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use this tool versus fetch_json_results, mentions cleanup with delete_documents, and provides guidance on output_path behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_fileExtract FileA
Process one local document through Suparse. Defaults to result_mode defer, which uploads and polls only, then returns compact task_id/document_ids for later download_results. Use result_mode return_json only when you need the full JSON extraction in the MCP response. cleanup is only valid with return_json.
| Name | Required | Description | Default |
|---|---|---|---|
| split | No | Enable auto-splitting of multi-page documents with mixed document types. | |
| api_url | No | Optional API base URL. Defaults to SUPARSE_API_URL or Suparse production API. | |
| cleanup | No | Only valid with result_mode return_json. Deletes processed Suparse documents after JSON results are returned, so later exports cannot be fetched from those document IDs. | |
| file_path | Yes | Local path to a supported document file. | |
| result_mode | No | Controls whether extraction results in json format are returned directly. Use return_json only when you need the full JSON extraction in the MCP response. In all other cases you can retrieve the results in format of choice using download_results | defer |
| template_id | No | Optional extraction template ID. Use only a non-system team template ID from list_templates. Do not pass system template IDs directly; ask the user to add the matching system template to their templates first. Omit to let Suparse auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| failed | Yes | |
| succeeded | Yes | |
| result_mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses default mode (defer), behavior (uploads, polls, returns task_id/document_ids), and cleanup side effect (deletes documents). It does not mention rate limits, error handling, or idempotency, but covers the main behavioral traits adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with the primary purpose, then conditional details. Efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and an output schema, the description covers the key behaviors and parameter interactions. It could mention the output schema briefly, but the context is sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by explaining defaults, mode conditions, cleanup validity, and template_id usage guidance (avoiding system template IDs). This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it processes one local document through Suparse, with default behavior and mode options. Distinguishes from siblings like extract_folder and list_templates by specifying 'one local document' and mentioning related tools for retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use defer vs return_json, and that cleanup is only valid with return_json. Also references download_results for other formats. However, it does not explicitly exclude use cases or mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_folderExtract FolderA
Process all supported files in an immediate local folder through Suparse. Defaults to result_mode defer, which uploads and polls only, then returns compact task_id/document_ids for later download_results. Use result_mode return_json only when you need full JSON extractions in the MCP response. cleanup is only valid with return_json.
| Name | Required | Description | Default |
|---|---|---|---|
| split | No | Enable auto-splitting of multi-page documents with mixed document types. | |
| api_url | No | Optional API base URL. Defaults to SUPARSE_API_URL or Suparse production API. | |
| cleanup | No | Only valid with result_mode return_json. Deletes processed Suparse documents after JSON results are returned, so later exports cannot be fetched from those document IDs. | |
| folder_path | Yes | Local folder containing supported document files. | |
| result_mode | No | Controls whether extraction results in json format are returned directly. Use return_json only when you need the full JSON extraction in the MCP response. In all other cases you can retrieve the results in format of choice using download_results | defer |
| template_id | No | Optional extraction template ID. Use only a non-system team template ID from list_templates. Do not pass system template IDs directly; ask the user to add the matching system template to their templates first. Omit to let Suparse auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| failed | Yes | |
| succeeded | Yes | |
| result_mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses default result_mode and cleanup constraints, but lacks details on side effects like file deletion or non-idempotency. No annotations provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with main action, no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema present; description covers return values (task_id/document_ids vs JSON) and main complexity, though some parameters (split) lack behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters 100%; description adds value for result_mode (defer vs return_json) and template_id (system template warning).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it processes all supported files in a folder via Suparse, distinct from extract_file and other siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains when to use defer vs return_json and cleanup validity, but doesn't explicitly exclude alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_json_resultsFetch JSON ResultsA
Fetch JSON extraction results for one or more Suparse document IDs directly in the MCP response. This can be large; use only when you need the full JSON in context. For CSV, XLSX, Google Sheets, or saved JSON files, use download_results. If you need cleanup after fetching, call delete_documents after this tool succeeds.
| Name | Required | Description | Default |
|---|---|---|---|
| api_url | No | Optional API base URL. Defaults to SUPARSE_API_URL or Suparse production API. | |
| export_type | No | Export mode for JSON results. Defaults to unified. | |
| document_ids | Yes | Suparse document IDs to export. |
Output Schema
| Name | Required | Description |
|---|---|---|
| format | Yes | |
| results | Yes | |
| export_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses potential large response and that it returns results directly in MCP response. Lacks specifics on error handling or authentication, but adequately covers key behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with verb, no wasted words. Each sentence adds distinct value: purpose, usage caveat, alternatives, and post-step.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (3 params, output schema), description fully covers what the tool does, when to use it, alternatives, and follow-up actions. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. Description adds no additional meaning beyond schema. Baseline score of 3 is appropriate as schema already documents parameter purposes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it fetches JSON results for Suparse document IDs directly in MCP response. It specifies the resource (Suparse documents), action (fetch JSON), and distinguishes from siblings like download_results for other formats and delete_documents for cleanup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use ('only when you need the full JSON in context'), provides alternatives ('use download_results for CSV, XLSX, etc.'), and suggests post-step ('call delete_documents after this tool succeeds'). Complete usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesList TemplatesA
List extraction templates for choosing an extraction template. Agents must use team_templates for processing. System templates are discovery-only in MCP: if a matching system template exists but no matching team template exists, ask the user to add that system template to their templates in the Suparse UI before processing. If no matching team or system template exists, ask the user to create a custom extraction schema for that document type in the Suparse UI.
| Name | Required | Description | Default |
|---|---|---|---|
| api_url | No | Optional API base URL. Defaults to SUPARSE_API_URL or Suparse production API. | |
| include_system | No | Include discovery-only system templates in addition to team templates. System templates returned here are not directly usable for extraction through MCP until the user adds them to their templates in the Suparse UI. |
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | Yes | |
| agent_guidance | Yes | |
| team_templates | Yes | |
| system_templates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It thoroughly explains the behavioral distinction between team templates (usable) and system templates (discovery-only), and what to do when no template matches. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: first states purpose, second gives primary usage rule, third covers edge cases. Concise and front-loaded without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two optional parameters and an output schema (not shown but present), the description covers all relevant scenarios: listing templates, using team vs system, and handling missing templates. No gaps for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value for 'include_system' by clarifying that system templates are not directly usable, which the schema's description ('Include discovery-only system templates...') also hints at, but the tool description provides richer context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List extraction templates for choosing an extraction template,' specifying the verb 'list' and resource 'extraction templates.' It distinguishes from sibling tools like 'extract_file' and 'extract_folder,' which are extraction operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs agents to use 'team_templates' for processing and explains when to use system templates (discovery-only). It also provides clear guidance for cases with no matching template: ask the user to add a system template or create a custom schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v1.3.0- First observed
delete_documents - First observed
download_results - First observed
extract_file - First observed
extract_folder - First observed
fetch_json_results - First observed
list_templates
TDQS
Each tool targets a distinct operation: single-file extraction, folder extraction, template listing, JSON results fetching, disk download, and deletion. No overlap.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., extract_file, list_templates, delete_documents).
6 tools cover the core document extraction workflow without bloat. The count is well-scoped for the server's purpose.
The tool set covers extraction, results retrieval, download, and deletion. A minor gap is the lack of a tool to create or manage templates, but the core workflow is functional.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Turn documents into structured data: parse, extract, classify, split, and fill PDF forms.
1Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.
DocForge turns documents into structured data. Upload a PDF, image, or Office file and get fielded JSON back with per-field confidence scores. 95 templates (invoices, receipts, bank statements, ID docs), custom JSON Schema mode, auto-detect, natural-language instructions. Keyless demo tool included. Free 7-day trial.
Composable APIs for document extraction, image transformation, and document & sheet generation.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables extraction of text, tables, and structured data from PDFs, images, and office documents using LandingAI's Agentic Document Extraction API. Supports both direct parsing and background job processing for large files with privacy-focused processing.-
- FlicenseNot gradedqualityDmaintenanceEnables document parsing through the Mineru API with support for multiple formats (PDF, DOC, DOCX, PPT, images), OCR, formula recognition, and table extraction in multiple languages.1-
- AlicenseAqualityBmaintenanceEnables document parsing and extraction from PDFs and other formats using the MinerU API. Supports batch processing, page range selection, OCR in 109 languages, and VLM/pipeline models for high-accuracy content extraction.41669MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to extract structured JSON from invoices and receipts in PDF and image formats using Claude Vision. Supports full document parsing, line item extraction, validation, and batch CSV export with API key or cryptocurrency payment options.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/suparse/suparse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server