Skip to content

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.

Deletes · 1Changes · 2

9 tools: 1 can delete or cancel things, 2 change things and 6 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn

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.

      Matched text

      description: "...Start here: the parser id is needed by every other tool. GET /v1/parsers."

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.