mcpbeat Sign in

Doc MCP Server

answering

Doc is answering right now. Last checked 6 min ago. 368 installs a week from npm. It exposes 6 tools.

Passport, ID and MRZ recognition via doc.cheap – Free: 100 documents every month, then $0.01 each

The linked repository no longer exists on GitHub — it was deleted or made private.

Installs per day peak 228 · avg 31 · +57% w/w
a month agotoday
Uptime history 46 days of history · worst day 91%
46 days agonow
100.0%
Uptime 24h
91 of 91 checks
6
Tools
read from the server
295 ms
Response time
average over 24h
368
Installs / week
npm and PyPI

What changed 21

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 24 September 2026. No other catalogue keeps this.

4 Nov 4 tool descriptions were rewritten delete_scan, get_scan, list_scans and 1 more
4 Nov a tool changed version
11 Oct a tool description was rewritten scan_document
11 Oct a tool changed version
29 Sep 3 tools appeared delete_scan, get_scan, list_scans
29 Sep a tool changed version2 times that day
26 Sep a tool changed version
25 Sep 2 tool descriptions were rewritten check_balance, scan_document
25 Sep a tool changed version
24 Sep 3 tool descriptions were rewritten check_balance, scan_document, search_docs
and 3 more, back to 24 September 2026

This one has been quiet for a while

Quiet is not dead — but it is worth knowing when it wakes up, or when someone else takes it over. We watch the repository and tell you either way.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 6 min ago.

run in your terminal
claude mcp add mcp --transport http https://mcp.doc.cheap/mcp
Settings → Connectors → Add custom connector, then paste this address
https://mcp.doc.cheap/mcp
~/.codex/config.toml
[mcp_servers.mcp]
url = "https://mcp.doc.cheap/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.doc.cheap/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp": {
      "type": "http",
      "url": "https://mcp.doc.cheap/mcp"
    }
  }
}

Available tools 6

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

scan
delete_scan
Permanently delete one stored scan now, before its retention window would end. This cannot be undone: the stored result, its history row and its thumbnail are removed, and the scan can no longer be listed, fetched or replayed through its idempotency_key. The credit it drew is not refunded, and this period's usage counters still count it. Input: scan_id – meta.id of a scan_document result, or id of a list_scans row. Output: { id, deleted: true }. Calls DELETE /v1/scans/{id}. Only scans made with a live key under a non-zero retention window are stored for the account, and only until that window ends (retain_hours on the scan, or the account's history-retention setting, one year by default); a scan made with retain_hours 0 was never stored. A key reaches its own account's scans and no other account's. Under a sandbox key nothing can be read back: an account's own sk_sandbox_ key stores nothing, and the public key keeps every scan for one year, with a reduced thumbnail and the address it came from, where that key cannot read, list or delete it. Errors: an id that is unknown, belongs to another account, has passed its window or was already deleted is refused as not_found, and nothing is deleted. Use it when someone asks for a document's data to be removed; confirm the id with list_scans or get_scan first, because the deletion is final.
get_scan
Fetch the full result of one stored scan by its id, as it was returned when the document was recognised. Input: scan_id – meta.id of a scan_document result, or id of a list_scans row. Output: the same Scan object scan_document returns (meta, document, holder, fields, mrz and the rest) plus a one-line summary, with two differences: the image crops are never stored, so every images slot is null, and quality reads not_checked. Calls GET /v1/scans/{id}; it never re-runs recognition and never charges a credit. Only scans made with a live key under a non-zero retention window are stored for the account, and only until that window ends (retain_hours on the scan, or the account's history-retention setting, one year by default); a scan made with retain_hours 0 was never stored. A key reaches its own account's scans and no other account's. Under a sandbox key nothing can be read back: an account's own sk_sandbox_ key stores nothing, and the public key keeps every scan for one year, with a reduced thumbnail and the address it came from, where that key cannot read, list or delete it. Errors: an id that is unknown, belongs to another account, was made with retain_hours 0 or has passed its window is refused as not_found – the cases are not told apart. Use it to read back a document recognised earlier instead of scanning the image again.
scan_document
Recognise a passport, national ID card or driver's licence from a photo or scan and return what is printed on it as structured JSON. Inputs: the image as image_base64 or image_url (https, on a public address); plus the optional expect_country, return_portrait, retain_hours, reference and idempotency_key. Output: a Scan object – meta (id, status, billed, confidence, timing), document (kind, issuing country, number, series, date of issue, date of expiry, whether it has expired and how many days are left), holder (given names, surname, date of birth, sex, nationality) – country codes are the document's own three-letter ICAO codes, each with a *_detail object giving the code as written, its ISO 3166-1 alpha-3 and alpha-2 and its category, fields (every field read off the printed page, each with its own confidence), mrz (whether the machine-readable zone checks out, why not when it does not, and its lines exactly as read), images, quality and authenticity – plus a one-line summary of the same result. Calls POST /v1/scans. Cost: it bills one credit ($0.01) only when a document is recognised; an unreadable image, an empty frame or an unsupported type costs nothing, and meta.billed says which happened. Without a key, the public sandbox key is used. It gives 10 free recognised documents per address in all, and at most 10 requests per address an hour, whatever their answer. Registering gives 100 free documents every month. Use test images only, never a real document. Use it whenever someone hands over an identity document and wants it read, transcribed, or checked against what they claim – a name, a document number, a date of birth or an expiry date.
balance
check_balance
Return how many credits are left on the account and what the current period has used: the balance, split into this month's free credits (100 every month, drawn first) and the paid credits, the credits spent, and the scan counters broken down by status (recognized, unreadable, no document found, unsupported document, rejected). Takes no arguments and calls GET /v1/usage; under the public sandbox key it answers without calling anything. One recognised document draws one credit, at $0.01; scans that recognised nothing are counted and never charged. Needs a real API key – under the public sandbox key there is no account behind the call, and the answer says so instead of reporting zeros that read like a balance. Use it before working through a batch of documents, or when a scan is refused for lack of credit.
docs
search_docs
Full-text search over the doc.cheap API documentation – endpoints, request options, every response field, the error codes and what to do about each, MRZ rules, retention and pricing. Takes a query and an optional limit (1 to 20, default 5), and answers with the matching sections: title, a snippet, and a link to the page. It reads a copy of the documentation shipped beside this server, so it makes no network call and works offline. Use it before guessing at a field name, an error code or a scan option – what it returns is the published contract rather than a recollection of it.
scans
list_scans
List the account's stored scans, most recent first, one page at a time. Inputs: the optional limit (1 to 100 rows, default 20) and cursor (the next_cursor of the previous page; omit it for the first page). Output: scans – one row per scan with id, status (recognized, unreadable, no_document_found, unsupported_document or rejected), billed, duration_ms, reference (your own string from the scan) and created_at – and next_cursor, which is null on the last page. A row holds no extracted data; call get_scan with its id for the full result. Calls GET /v1/scans; it never charges a credit. Only scans made with a live key under a non-zero retention window are stored for the account, and only until that window ends (retain_hours on the scan, or the account's history-retention setting, one year by default); a scan made with retain_hours 0 was never stored. A key reaches its own account's scans and no other account's. Under a sandbox key nothing can be read back: an account's own sk_sandbox_ key stores nothing, and the public key keeps every scan for one year, with a reduced thumbnail and the address it came from, where that key cannot read, list or delete it. Under the public sandbox key the answer is an empty list, given without calling the API. Errors: a cursor this API did not issue is refused (validation_failed); a key the API does not know is refused (unauthorized). Use it to find a scan made earlier – by its reference or its time – before reading or deleting it.

Endpoints

URLTransportStateLatencyChecked
https://mcp.doc.cheap/mcp streamable-http answering 167 ms 6 min ago

Alternatives to Doc

same job, measured the same way
Visa Info
by rajat79suri

Visa requirements, documents, and FAQs for Indian passport holders. 35 countries.

62 installs/wk local only
Lochless
by lochless

Every match, not the top 10. Searches your documents and returns each relevant one, with quotes.

answering
legivel
by legivel

Markdown to PDF: real formulas, repeated table headers, a contents page. 100 free documents a month.

10 tools answering
PortMem
by portmem

Check AI-written drafts against your source documents, with the passage behind every verdict.

answering
Indox
by indox

Convert documents, images, video, 3D models and fonts with the Indox API.

817 installs/wk answering
D
Docu-Scan MCP
by spocont

PDF and document extraction via Google Document AI. Free trial available.

answering
E
Extract Insurance
by extractinsurance

Insurance documents into JSON, with the quote and page behind every value.

732 installs/wk local only
Coda
by nkpar

Interact with Coda.io documents, tables, and rows via the Coda API

local only

Doc — questions

Answers built from our own checks of this server.

What can Doc do?
It exposes 6 tools, read directly from the server on our last check. Among them: check_balance, delete_scan, get_scan, list_scans, scan_document, search_docs. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Doc working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 295 ms. The bar chart above shows every period we have measured.
Is Doc still maintained?
The linked repository no longer exists on GitHub — it was deleted or made private. We show this because it changes what you can expect: an unmaintained server may keep answering for months and then stop without warning.
How do I connect Doc?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Doc need an API key?
No. Doc completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 6 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Doc?
It answers our handshake in 295 ms on average, which is faster than 47% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Doc?
The npm package @doc-cheap/mcp was installed 368 times in the last week. Week over week that is +57%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.