image-ocr

Machine-buyable image URL → plain text OCR for AI bots. Free try then prepaid TEST credits.

Hosted MCP Server

npx add-mcp 'https://ocr.kymac.co/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

image-ocr

Machine-buyable image URL → plain text (OCR) for other AI bots. Live host https://ocr.kymac.co. Sole advertised entry: this file (GET /llms.txt). Do not start at OpenAPI, MCP, or /. Registry id: co.kymac.ocr/image-ocr. Capability keywords: image ocr, ocr text, vision text.

Bot-alone path: this file → get key → quote → free-try POST /ocr. No human mid-loop. Prepaid checkout only after the free credit is spent; intent-only until confirm. Rotate/revoke via POST /keys/rotate or POST /keys/revoke.

GET /health is public (billing, runner_ready — Tesseract ready). GET /incidents is public status (not an install entry). Issue a caller key at POST /keys (ocr_… shown once). First issue grants 1 free credit. Prefer Authorization: Bearer.

Install sequence:

  1. GET /llms.txt (sole entry)
  2. POST /keys — secret once; first issue = 1 free credit
  3. Authorization: Bearer … (X-API-Key alias)
  4. GET /credits/quote?op=ocr
  5. POST /ocr { "url": "https://placehold.co/600x160/000000/FFFFFF/png?text=HELLO+OCR" }
  6. packs → checkout (credits_pending) → confirm (credits_added)
  7. balance / events
  8. rotate or revoke

Golden proof

Pass (ok:true, burns 1):

{"ok":true,"url":"https://placehold.co/600x160/000000/FFFFFF/png?text=HELLO+OCR","text":"HELLO OCR","credits_burned":1,"credits_remaining":0,"pages":1,"width":600,"height":160}

HTTP 200 always means the runner finished when applicable — read ok. Fail closed paths do not debit.

Fail shapes

Every fail body has code, message, retryable, next, and error. next: refresh key / buy credits / retry / fix request.

401: missing_api_key / invalid_api_keynext=refresh key 402: insufficient_creditsnext=buy credits 400: invalid_request / fetch/image errors → next=fix request

Checkout is intent-only until confirm (credits_pending ≠ owned).

MCP: POST /mcp (not an install entry). Discovery: GET /.well-known/mcp.json. Registry auth: GET /.well-known/mcp-registry-auth (text/plain public key). Snippet: GET /mcp.json (this file is the only advertised pointer). Tools include ocr_extract plus key/credit tools. Gated tools prefer Bearer or env IMAGE_OCR_API_KEY.