Docparser MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Run Docparser parsers: import documents by URL or upload, check status, read parsed results.
9 tools: 1 can delete or cancel things, 2 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http docparser https://docparser.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...Start here: the parser id is needed by every other tool. GET /v1/parsers."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
9 tools
Deletes or cancels 1Claude Code: deny
docparser_reparse_documentsWRITE: run the parser again over already imported documents (for example after changing parsing rules).No findings
Why it is in this group
- The description's first verb is "write": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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}.
Annotations the server declares
- title: Re-parse documents
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 2Claude Code: ask
docparser_fetch_document_from_urlWRITE: ask Docparser to download a document from a publicly reachable URL and parse it with the given parser.No findings
Why it is in this group
- The name "docparser_fetch_document_from_url" says "fetch": a word for reading.
- The description's first verb is "write": a word for a change.
Description, as the server wrote 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}.
Annotations the server declares
- title: Import a document from a URL
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
docparser_upload_documentWRITE: upload one small file as base64 content to a parser and parse it.No findings
Why it is in this group
- The name "docparser_upload_document" says "upload": a word for a change.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Upload a document (base64)
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 6Claude Code: allow
docparser_get_document_resultsThe parsed data of one document (the fields and tables the parser extracted, plus file name, page count and upload/processing times).No findings
Why it is in this group
- The name "docparser_get_document_results" says "get": a word for reading.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Get parsed data of one document
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
docparser_get_document_statusProcessing status of one document: importing/processing flags, page count, timestamps (uploaded, imported, processed), webhook dispatch and failed jobs.No findings
Why it is in this group
- The name "docparser_get_document_status" says "get": a word for reading.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Get document status
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
docparser_list_document_resultsParsed data of several documents of one parser: the last uploaded ones (default), or those uploaded/processed after a date.No findings
Why it is in this group
- The name "docparser_list_document_results" says "list": a word for reading.
Description, as the server wrote it 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}.
Annotations the server declares
- title: List parsed data of many documents
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
docparser_list_parser_modelsList the model layouts of one parser (id and label).No findings
Why it is in this group
- The name "docparser_list_parser_models" says "list": a word for reading.
Description, as the server wrote it List the model layouts of one parser (id and label). GET /v1/parser/models/{parser_id}.
Annotations the server declares
- title: List parser model layouts
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
docparser_list_parsersList all Document Parsers on the account (id and label).1 finding
Why it is in this group
- The name "docparser_list_parsers" says "list": a word for reading.
Findings
- Warn
The description contains "every other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...Start here: the parser id is needed by every other tool. GET /v1/parsers."
Description, as the server wrote it List all Document Parsers on the account (id and label). Start here: the parser id is needed by every other tool. GET /v1/parsers.
Annotations the server declares
- title: List parsers
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
docparser_pingCheck that the connected Docparser API key works.No findings
Why it is in this group
- The name "docparser_ping" says "ping": a word for reading.
Description, as the server wrote it Check that the connected Docparser API key works. Returns {msg: "pong"} when it does. GET /v1/ping.
Annotations the server declares
- title: Check API key
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http docparser https://docparser.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__docparser__docparser_ping",
"mcp__docparser__docparser_list_parsers",
"mcp__docparser__docparser_list_parser_models",
"mcp__docparser__docparser_get_document_status",
"mcp__docparser__docparser_get_document_results",
"mcp__docparser__docparser_list_document_results"
],
"ask": [
"mcp__docparser__docparser_fetch_document_from_url",
"mcp__docparser__docparser_upload_document"
],
"deny": [
"mcp__docparser__docparser_reparse_documents"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as docparser. Review it before you use it.