Run Docparser parsers: import documents by URL or upload, check status, read parsed results.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: ask Docparser to download a document from a publicly reachable URL and parse it with the given parser. Uses page credits of the account's plan (documents queue when credits run out). Docparser may buy extra credits by itself only if the account owner turned on automatic credit replenishment, or the account is on an annual plan that renews early when credits run out - check the Docparser billing settings first. This server never buys credits or changes the plan. Returns the new document_id: poll docparser_get_document_status, then read docparser_get_document_results. POST /v2/document/fetch/{parser_id}.
Public http(s) URL of the file (PDF, image, Word, Excel, CSV, ...).
Docparser parser id (from docparser_list_parsers).
Your own reference for the document (stored by Docparser; usable as a filter later).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
WRITE: ask Docparser to download a document from a publicly reachable URL and parse it with the given parser. Uses page credits of the account's plan (documents queue when credits run out). Docparser may buy extra credits by itself only if the account owner turned on automatic credit replenishment, or the account is on an annual plan that renews early when credits run out - check the Docparser billing settings first. This server never buys credits or changes the plan. Returns the new document_id: poll docparser_get_document_status, then read docparser_get_document_results. POST /v2/document/fetch/{parser_id}.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL of the file (PDF, image, Word, Excel, CSV, ...). |
| parser_id* | string | Docparser parser id (from docparser_list_parsers). |
| remote_id | string | Your own reference for the document (stored by Docparser; usable as a filter later). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"parser_id",
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2000,
"minLength": 8,
"description": "Public http(s) URL of the file (PDF, image, Word, Excel, CSV, ...)."
},
"parser_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser parser id (from docparser_list_parsers)."
},
"remote_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Your own reference for the document (stored by Docparser; usable as a filter later)."
}
}
}The parsed data of one document (the fields and tables the parser extracted, plus file name, page count and upload/processing times). Docparser allows 60 of these calls per minute. GET /v1/results/{parser_id}/{document_id}.
| Argument | Type | Description |
|---|---|---|
| format | string | `object` (default): nested data. `flat`: simple key/value pairs. |
| parser_id* | string | Docparser parser id (from docparser_list_parsers). |
| document_id* | string | Docparser document id (the `id` / `document_id` of an uploaded document). |
| include_children | boolean | Also return data of child documents created during preprocessing (for example split documents). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"parser_id",
"document_id"
],
"properties": {
"format": {
"enum": [
"object",
"flat"
],
"type": "string",
"description": "`object` (default): nested data. `flat`: simple key/value pairs."
},
"parser_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser parser id (from docparser_list_parsers)."
},
"document_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser document id (the `id` / `document_id` of an uploaded document)."
},
"include_children": {
"type": "boolean",
"description": "Also return data of child documents created during preprocessing (for example split documents)."
}
}
}Processing status of one document: importing/processing flags, page count, timestamps (uploaded, imported, processed), webhook dispatch and failed jobs. Poll this after a fetch/upload: the document is done when importing_in_progress and processing_in_progress are false, processed_at is set and failed_jobs is empty (a non-empty failed_jobs means it failed); then read the results. GET /v2/document/status/{parser_id}/{document_id}.
| Argument | Type | Description |
|---|---|---|
| parser_id* | string | Docparser parser id (from docparser_list_parsers). |
| document_id* | string | Docparser document id (the `id` / `document_id` of an uploaded document). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"parser_id",
"document_id"
],
"properties": {
"parser_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser parser id (from docparser_list_parsers)."
},
"document_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser document id (the `id` / `document_id` of an uploaded document)."
}
}
}Parsed data of several documents of one parser: the last uploaded ones (default), or those uploaded/processed after a date. Returns up to 100 documents per call; page with offset (next_offset is null on the last page). Docparser allows 30 of these calls per minute. GET /v1/results/{parser_id}.
| Argument | Type | Description |
|---|---|---|
| date | string | ISO 8601 date-time (e.g. 2026-10-01T00:00:00Z) or a Unix timestamp. Required with list=uploaded_after or processed_after. |
| list | string | Which documents (default last_uploaded). uploaded_after and processed_after need `date`. |
| limit | integer | Documents per call, 1-100 (default 10). |
| format | string | `object` (default): nested data. `flat`: simple key/value pairs. |
| offset | integer | Skip this many documents (default 0). Pass the previous reply's next_offset. |
| sort_by | string | Sort field (default: upload order). |
| parser_id* | string | Docparser parser id (from docparser_list_parsers). |
| remote_id |
List the model layouts of one parser (id and label). GET /v1/parser/models/{parser_id}.
| Argument | Type | Description |
|---|---|---|
| parser_id* | string | Docparser parser id (from docparser_list_parsers). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"parser_id"
],
"properties": {
"parser_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser parser id (from docparser_list_parsers)."
}
}
}List all Document Parsers on the account (id and label). Start here: the parser id is needed by every other tool. GET /v1/parsers.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Check that the connected Docparser API key works. Returns {msg: "pong"} when it does. GET /v1/ping.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}WRITE: run the parser again over already imported documents (for example after changing parsing rules). Replaces their parsed data. Re-parsing documents already in the account does not use additional credits. 1-50 document ids per call. POST /v1/document/reparse/{parser_id}.
| Argument | Type | Description |
|---|---|---|
| parser_id* | string | Docparser parser id (from docparser_list_parsers). |
| document_ids* | array | Ids of the documents to re-parse. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"parser_id",
"document_ids"
],
"properties": {
"parser_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser parser id (from docparser_list_parsers)."
},
"document_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser document id (the `id` / `document_id` of an uploaded document)."
},
"maxItems": 50,
"minItems": 1,
"description": "Ids of the documents to re-parse."
}
}
}WRITE: upload one small file as base64 content to a parser and parse it. Uses page credits of the account's plan. Docparser may buy extra credits by itself only if the account owner turned on automatic credit replenishment, or the account is on an annual plan that renews early when credits run out - check the Docparser billing settings first. This server never buys credits or changes the plan. Prefer docparser_fetch_document_from_url for large files. Returns the new document id and the remaining quota. POST /v1/document/upload/{parser_id}.
| Argument | Type | Description |
|---|---|---|
| file_name | string | File name with extension (e.g. invoice.pdf); a time-based name is used if omitted. |
| parser_id* | string | Docparser parser id (from docparser_list_parsers). |
| remote_id | string | Your own reference for the document (stored by Docparser; usable as a filter later). |
| file_content* | string | The file, base64 encoded. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"parser_id",
"file_content"
],
"properties": {
"file_name": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "File name with extension (e.g. invoice.pdf); a time-based name is used if omitted."
},
"parser_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser parser id (from docparser_list_parsers)."
},
"remote_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Your own reference for the document (stored by Docparser; usable as a filter later)."
},
"file_content": {
"type": "string",
"pattern": "^[A-Za-z0-9+/=_-]+$",
"maxLength": 8388608,
"minLength": 4,
"description": "The file, base64 encoded."
}
}
}| string |
| Only documents uploaded with this remote_id. |
| sort_order | string | Default DESC. |
| include_processing_queue | boolean | Also include documents that are not fully processed yet. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"parser_id"
],
"properties": {
"date": {
"type": "string",
"maxLength": 40,
"minLength": 8,
"description": "ISO 8601 date-time (e.g. 2026-10-01T00:00:00Z) or a Unix timestamp. Required with list=uploaded_after or processed_after."
},
"list": {
"enum": [
"last_uploaded",
"uploaded_after",
"processed_after"
],
"type": "string",
"description": "Which documents (default last_uploaded). uploaded_after and processed_after need `date`."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Documents per call, 1-100 (default 10)."
},
"format": {
"enum": [
"object",
"flat"
],
"type": "string",
"description": "`object` (default): nested data. `flat`: simple key/value pairs."
},
"offset": {
"type": "integer",
"maximum": 100000,
"minimum": 0,
"description": "Skip this many documents (default 0). Pass the previous reply's next_offset."
},
"sort_by": {
"enum": [
"parsed_at",
"processed_at",
"uploaded_at",
"first_processed_at",
"imported_at",
"integrated_at",
"dispatched_webhook_at",
"preprocessed_at"
],
"type": "string",
"description": "Sort field (default: upload order)."
},
"parser_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Docparser parser id (from docparser_list_parsers)."
},
"remote_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only documents uploaded with this remote_id."
},
"sort_order": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Default DESC."
},
"include_processing_queue": {
"type": "boolean",
"description": "Also include documents that are not fully processed yet."
}
}
}