{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_3bgd2knhe27k","handle":"image-ocr","url":"https://wellknown.network/agents/image-ocr","links":{"self":"https://wellknown.network/agents/image-ocr/record.json","html":"https://wellknown.network/agents/image-ocr","markdown":"https://wellknown.network/agents/image-ocr/record.md","api":"https://wellknown.network/api/v1/agents/image-ocr","status":"https://wellknown.network/api/v1/agents/image-ocr/status","claim":"https://wellknown.network/agents/image-ocr/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/image-ocr/claim.json","badge":"https://wellknown.network/agents/image-ocr/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/image-ocr/history","tools":"https://wellknown.network/api/v1/agents/image-ocr/tools"},"ard":{"identifier":"urn:air:ocr.kymac.co:server:image-ocr","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"image-ocr","summary":"Image URL → plain text OCR for bots. Free try then prepaid TEST. https://ocr.kymac.co","description":"Image URL → plain text OCR for bots. Free try then prepaid TEST. https://ocr.kymac.co","publisher":{"name":"co.kymac.ocr","url":null},"homepage":"https://ocr.kymac.co/llms.txt","repository":null,"version":"0.4.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://ocr.kymac.co/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-18T00:06:16.658638Z","publishedAt":"2026-09-18T00:06:16.658638Z","registryName":"co.kymac.ocr/image-ocr"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.ocr","name":"OCR","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.583,"provenance":"derived"}],"categories":["commerce","documents","security"],"language":"en"},"observed":{"status":"unavailable","statusReason":"6 consecutive checks failed; last success 16d ago.","lastOkAt":"2026-09-23T22:22:44.579Z","lastProbedAt":"2026-10-08T18:27:12.578Z","statusComputedAt":"2026-10-08T18:28:59.565Z","reliability30d":{"probes":28,"successRate":0.7857,"p50Ms":90,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":28,"ok":22,"authBoundaryOk":0,"serviceOk":22,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-08T18:27:12.578Z","kind":"mcp_initialize","ok":false,"httpStatus":null,"latencyMs":null,"error":"unsafe: DNS resolution failed","detail":null},{"at":"2026-10-01T21:24:34.811Z","kind":"mcp_initialize","ok":false,"httpStatus":null,"latencyMs":null,"error":"unsafe: DNS resolution failed","detail":null},{"at":"2026-09-27T17:23:58.030Z","kind":"mcp_initialize","ok":false,"httpStatus":null,"latencyMs":null,"error":"unsafe: DNS resolution failed","detail":null},{"at":"2026-09-25T16:31:03.300Z","kind":"mcp_initialize","ok":false,"httpStatus":null,"latencyMs":null,"error":"unsafe: DNS resolution failed","detail":null},{"at":"2026-09-24T17:25:19.925Z","kind":"mcp_initialize","ok":false,"httpStatus":null,"latencyMs":null,"error":"unsafe: DNS resolution failed","detail":null},{"at":"2026-09-24T04:25:33.134Z","kind":"mcp_initialize","ok":false,"httpStatus":null,"latencyMs":null,"error":"unsafe: DNS resolution failed","detail":null},{"at":"2026-09-23T22:22:44.579Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":90,"error":null,"detail":{"tools":[{"name":"issue_key","description":"Mint a caller key (POST /keys). Bot install starts at GET https://ocr.kymac.co/llms.txt (sole advertised entry). Secret ocr_… is returned once. Prefer Authoriza"},{"name":"verify_key","description":"Confirm IMAGE_OCR_API_KEY or Authorization: Bearer (GET /keys/verify). X-API-Key is an alias only. Does not echo the secret."},{"name":"rotate_key","description":"Replace the presented secret (POST /keys/rotate). Same id/caller_id and credits. New ocr_… is returned once. Old secret then fails 401 invalid_api_key. Prefer A"},{"name":"revoke_key","description":"Invalidate the presented secret (POST /keys/revoke). Same id is revoked; old secret then fails 401 invalid_api_key. Prefer Authorization: Bearer; X-API-Key is a"},{"name":"list_credit_packs","description":"Prepaid TEST packs (GET /credits/packs). checkout_credits is intent only; credits grant after confirm_credits."},{"name":"checkout_credits","description":"Stripe TEST PaymentIntent for a pack (POST /credits/checkout). Intent only — returns credits_pending; credits are not granted or spendable until confirm_credits"},{"name":"confirm_credits","description":"Confirm a TEST PaymentIntent with Stripe test card pm_card_visa (POST /credits/confirm). This is when credits become granted/spendable (appends credit.purchase "},{"name":"quote_credits","description":"Dry-run cost for an op without debit (GET /credits/quote?op=ocr). Returns cost, balance, and would_succeed."},{"name":"credit_balance","description":"Derived prepaid balance for this caller_id (GET /credits/balance)."},{"name":"credit_events","description":"Append-only Ledger events for this caller_id (GET /credits/events): credit.grant (first_key), credit.purchase, credit.debit, optional credit.balance_snapshot."},{"name":"ocr_extract","description":"Image OCR (POST /ocr). Install via GET https://ocr.kymac.co/llms.txt only. Prefer Authorization: Bearer; X-API-Key is an alias. Golden URL https://placehold.co/"},{"name":"health","description":"Public readiness (GET /health): billing (test|gated) and runner_ready. No key."}],"toolCount":12,"toolsHash":"b8cf7886f3ba563d8964f6f08888d929cc276228ca4c6a612d77903bba5b42dd","serverName":"co.kymac.ocr/image-ocr","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-23T15:35:27.556Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":93,"error":null,"detail":{"tools":[{"name":"issue_key","description":"Mint a caller key (POST /keys). Bot install starts at GET https://ocr.kymac.co/llms.txt (sole advertised entry). Secret ocr_… is returned once. Prefer Authoriza"},{"name":"verify_key","description":"Confirm IMAGE_OCR_API_KEY or Authorization: Bearer (GET /keys/verify). X-API-Key is an alias only. Does not echo the secret."},{"name":"rotate_key","description":"Replace the presented secret (POST /keys/rotate). Same id/caller_id and credits. New ocr_… is returned once. Old secret then fails 401 invalid_api_key. Prefer A"},{"name":"revoke_key","description":"Invalidate the presented secret (POST /keys/revoke). Same id is revoked; old secret then fails 401 invalid_api_key. Prefer Authorization: Bearer; X-API-Key is a"},{"name":"list_credit_packs","description":"Prepaid TEST packs (GET /credits/packs). checkout_credits is intent only; credits grant after confirm_credits."},{"name":"checkout_credits","description":"Stripe TEST PaymentIntent for a pack (POST /credits/checkout). Intent only — returns credits_pending; credits are not granted or spendable until confirm_credits"},{"name":"confirm_credits","description":"Confirm a TEST PaymentIntent with Stripe test card pm_card_visa (POST /credits/confirm). This is when credits become granted/spendable (appends credit.purchase "},{"name":"quote_credits","description":"Dry-run cost for an op without debit (GET /credits/quote?op=ocr). Returns cost, balance, and would_succeed."},{"name":"credit_balance","description":"Derived prepaid balance for this caller_id (GET /credits/balance)."},{"name":"credit_events","description":"Append-only Ledger events for this caller_id (GET /credits/events): credit.grant (first_key), credit.purchase, credit.debit, optional credit.balance_snapshot."},{"name":"ocr_extract","description":"Image OCR (POST /ocr). Install via GET https://ocr.kymac.co/llms.txt only. Prefer Authorization: Bearer; X-API-Key is an alias. Golden URL https://placehold.co/"},{"name":"health","description":"Public readiness (GET /health): billing (test|gated) and runner_ready. No key."}],"toolCount":12,"toolsHash":"b8cf7886f3ba563d8964f6f08888d929cc276228ca4c6a612d77903bba5b42dd","serverName":"co.kymac.ocr/image-ocr","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-23T08:26:14.263Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":130,"error":null,"detail":{"tools":[{"name":"issue_key","description":"Mint a caller key (POST /keys). Bot install starts at GET https://ocr.kymac.co/llms.txt (sole advertised entry). Secret ocr_… is returned once. Prefer Authoriza"},{"name":"verify_key","description":"Confirm IMAGE_OCR_API_KEY or Authorization: Bearer (GET /keys/verify). X-API-Key is an alias only. Does not echo the secret."},{"name":"rotate_key","description":"Replace the presented secret (POST /keys/rotate). Same id/caller_id and credits. New ocr_… is returned once. Old secret then fails 401 invalid_api_key. Prefer A"},{"name":"revoke_key","description":"Invalidate the presented secret (POST /keys/revoke). Same id is revoked; old secret then fails 401 invalid_api_key. Prefer Authorization: Bearer; X-API-Key is a"},{"name":"list_credit_packs","description":"Prepaid TEST packs (GET /credits/packs). checkout_credits is intent only; credits grant after confirm_credits."},{"name":"checkout_credits","description":"Stripe TEST PaymentIntent for a pack (POST /credits/checkout). Intent only — returns credits_pending; credits are not granted or spendable until confirm_credits"},{"name":"confirm_credits","description":"Confirm a TEST PaymentIntent with Stripe test card pm_card_visa (POST /credits/confirm). This is when credits become granted/spendable (appends credit.purchase "},{"name":"quote_credits","description":"Dry-run cost for an op without debit (GET /credits/quote?op=ocr). Returns cost, balance, and would_succeed."},{"name":"credit_balance","description":"Derived prepaid balance for this caller_id (GET /credits/balance)."},{"name":"credit_events","description":"Append-only Ledger events for this caller_id (GET /credits/events): credit.grant (first_key), credit.purchase, credit.debit, optional credit.balance_snapshot."},{"name":"ocr_extract","description":"Image OCR (POST /ocr). Install via GET https://ocr.kymac.co/llms.txt only. Prefer Authorization: Bearer; X-API-Key is an alias. Golden URL https://placehold.co/"},{"name":"health","description":"Public readiness (GET /health): billing (test|gated) and runner_ready. No key."}],"toolCount":12,"toolsHash":"b8cf7886f3ba563d8964f6f08888d929cc276228ca4c6a612d77903bba5b42dd","serverName":"co.kymac.ocr/image-ocr","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-23T02:28:10.305Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":86,"error":null,"detail":{"tools":[{"name":"issue_key","description":"Mint a caller key (POST /keys). Bot install starts at GET https://ocr.kymac.co/llms.txt (sole advertised entry). Secret ocr_… is returned once. Prefer Authoriza"},{"name":"verify_key","description":"Confirm IMAGE_OCR_API_KEY or Authorization: Bearer (GET /keys/verify). X-API-Key is an alias only. Does not echo the secret."},{"name":"rotate_key","description":"Replace the presented secret (POST /keys/rotate). Same id/caller_id and credits. New ocr_… is returned once. Old secret then fails 401 invalid_api_key. Prefer A"},{"name":"revoke_key","description":"Invalidate the presented secret (POST /keys/revoke). Same id is revoked; old secret then fails 401 invalid_api_key. Prefer Authorization: Bearer; X-API-Key is a"},{"name":"list_credit_packs","description":"Prepaid TEST packs (GET /credits/packs). checkout_credits is intent only; credits grant after confirm_credits."},{"name":"checkout_credits","description":"Stripe TEST PaymentIntent for a pack (POST /credits/checkout). Intent only — returns credits_pending; credits are not granted or spendable until confirm_credits"},{"name":"confirm_credits","description":"Confirm a TEST PaymentIntent with Stripe test card pm_card_visa (POST /credits/confirm). This is when credits become granted/spendable (appends credit.purchase "},{"name":"quote_credits","description":"Dry-run cost for an op without debit (GET /credits/quote?op=ocr). Returns cost, balance, and would_succeed."},{"name":"credit_balance","description":"Derived prepaid balance for this caller_id (GET /credits/balance)."},{"name":"credit_events","description":"Append-only Ledger events for this caller_id (GET /credits/events): credit.grant (first_key), credit.purchase, credit.debit, optional credit.balance_snapshot."},{"name":"ocr_extract","description":"Image OCR (POST /ocr). Install via GET https://ocr.kymac.co/llms.txt only. Prefer Authorization: Bearer; X-API-Key is an alias. Golden URL https://placehold.co/"},{"name":"health","description":"Public readiness (GET /health): billing (test|gated) and runner_ready. No key."}],"toolCount":12,"toolsHash":"b8cf7886f3ba563d8964f6f08888d929cc276228ca4c6a612d77903bba5b42dd","serverName":"co.kymac.ocr/image-ocr","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"issue_key","description":"Mint a caller key (POST /keys). Bot install starts at GET https://ocr.kymac.co/llms.txt (sole advertised entry). Secret ocr_… is returned once. Prefer Authoriza"},{"name":"verify_key","description":"Confirm IMAGE_OCR_API_KEY or Authorization: Bearer (GET /keys/verify). X-API-Key is an alias only. Does not echo the secret."},{"name":"rotate_key","description":"Replace the presented secret (POST /keys/rotate). Same id/caller_id and credits. New ocr_… is returned once. Old secret then fails 401 invalid_api_key. Prefer A"},{"name":"revoke_key","description":"Invalidate the presented secret (POST /keys/revoke). Same id is revoked; old secret then fails 401 invalid_api_key. Prefer Authorization: Bearer; X-API-Key is a"},{"name":"list_credit_packs","description":"Prepaid TEST packs (GET /credits/packs). checkout_credits is intent only; credits grant after confirm_credits."},{"name":"checkout_credits","description":"Stripe TEST PaymentIntent for a pack (POST /credits/checkout). Intent only — returns credits_pending; credits are not granted or spendable until confirm_credits"},{"name":"confirm_credits","description":"Confirm a TEST PaymentIntent with Stripe test card pm_card_visa (POST /credits/confirm). This is when credits become granted/spendable (appends credit.purchase "},{"name":"quote_credits","description":"Dry-run cost for an op without debit (GET /credits/quote?op=ocr). Returns cost, balance, and would_succeed."},{"name":"credit_balance","description":"Derived prepaid balance for this caller_id (GET /credits/balance)."},{"name":"credit_events","description":"Append-only Ledger events for this caller_id (GET /credits/events): credit.grant (first_key), credit.purchase, credit.debit, optional credit.balance_snapshot."},{"name":"ocr_extract","description":"Image OCR (POST /ocr). Install via GET https://ocr.kymac.co/llms.txt only. Prefer Authorization: Bearer; X-API-Key is an alias. Golden URL https://placehold.co/"},{"name":"health","description":"Public readiness (GET /health): billing (test|gated) and runner_ready. No key."}],"package":null,"toolSurface":{"id":"ts_3cwx5tynrmvb","endpointId":"ep_8evfn564dvev","hash":"b8cf7886f3ba563d8964f6f08888d929cc276228ca4c6a612d77903bba5b42dd","toolCount":12,"serverName":"co.kymac.ocr/image-ocr","serverVersion":"0.4.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-18T03:23:48.122Z","lastSeenAt":"2026-09-23T22:22:44.592Z","observations":22,"toolNames":["issue_key","verify_key","rotate_key","revoke_key","list_credit_packs","checkout_credits","confirm_credits","quote_credits","credit_balance","credit_events","ocr_extract","health"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_8evfn564dvev","url":"https://ocr.kymac.co/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-09-27T17:23:58.049Z","auth":{"observedAt":"2026-09-20T21:22:52.624Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-09-20T21:22:52.798Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"ocr.kymac.co","issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validFrom":"2026-09-17T00:00:00.000Z","validTo":"2027-04-02T23:59:59.000Z","daysToExpiry":174,"sanCount":1,"fingerprint256":"3B:11:66:BE:9C:29:FD:DB:73:3F:58:24:3A:D5:73:90:3D:84:C6:6C:07:4F:04:6E:EC:BA:50:4D:A5:E8:07:DD"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"co.kymac.ocr/image-ocr","url":"https://registry.modelcontextprotocol.io/v0/servers/co.kymac.ocr%2Fimage-ocr","firstSeenAt":"2026-09-18T03:20:24.196Z","fetchedAt":"2026-10-09T02:22:59.266Z","normalizedAt":"2026-10-09T02:22:59.266Z"}]},"firstSeenAt":"2026-09-18T03:20:24.196Z","updatedAt":"2026-09-23T22:24:59.706Z"}