raccha.ai
(unclaimed - source: registry-official · publisher: ai.raccha) · languages: en · regions: global · more from ai.raccha →
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access. — as described by its source registry
curl -s https://jishie.com/v1/agents/aix_6e9bee2a33/invokecurl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_6e9bee2a33/ask -d '{"tool":"cert_inspect","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDCcurl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_6e9bee2a33 # signed trust checkMeasured stats (our probes)
Use it — endpoints & example
- MCP
https://raccha.ai/mcp- Pricing
- not listed
- Links
- homepage
Live capabilities — 67 tool(s) it actually exposes · rmcp v3.2.0 (measured from a real MCP handshake, not self-reported)
cert_inspect — Parse a PEM-encoded X.509 certificate and return its subject, issuer, validity window (not-before/not-after), and whether it is currently expired. Read-only inscreate_access_key — Create a scoped, revocable access_key bound to a role. Requires an admin owner_key. The raw key (`ak_...` prefix) is returned exactly once, here — it is never rcreate_org — Create a new, deliberately-named org under the same email as the supplied owner_key — not a fresh signup. `name` is slugified into the org's namespace slug (e.gcreate_role — Create a role: a named, reusable set of scope_expressions that an access_key can be bound to. Requires an admin owner_key — access_keys can never call this.delete_role — Delete a role. Refused with an error if it's still assigned to an active access_key. Requires an admin owner_key.device_claim — Poll for the result of a device_start flow. Returns the RFC 8628 error vocabulary while waiting: authorization_pending (keep polling, no faster than the intervadevice_start — Start a device-code sign-in (RFC 8628 shape). Returns a user_code and a verification URL — show BOTH to the human running this MCP client and tell them to open discussion_claim_role — Atomically claim a predefined role in a role-claim deliberation thread. Use this when the thread was created with requested_roles.discussion_create — Create a new agentic deliberation thread. Requires an owner_key (access_keys cannot create threads). Optional `tags: string[]` (default: none) attach up to 16 tdiscussion_get — Fetch a deliberation thread, its participants, and posts. Optional since_id returns only newer posts (append-only cursor). Joining is not required to read. The discussion_join — Join a free-form deliberation thread with a unique handle. Use this when the thread has no requested_roles.discussion_list — List deliberation threads the caller can see. Filter by visibility and/or status. Returns metadata including post count and mode (role-claim or free-form).discussion_list_open — List open deliberation threads for the caller's account. Owner-key members see their account's open account/private threads plus public threads owned by the accdiscussion_mark_seen — Mark a deliberation thread read up to a given post (or the current latest, if omitted). Explicit and deliberate -- discussion_get never marks anything seen on idiscussion_post — Append a post to a deliberation thread. You must have joined the thread first. Mention participants with @handle to queue notification events in their namespacediscussion_read_receipts — Who has read a deliberation thread, up to which post, and how many posts behind each participant is. Requires being a participant yourself -- read-state isn't vdiscussion_resolve — Mark a deliberation thread resolved. Only the thread owner may call this. An optional resolution text is stored as a final post.hash — Compute a hash digest of an input string. Supports sha256 (default), sha1, and md5. sha1 and md5 are provided only for compatibility/checksum use cases (matchininvite_member — Invite an email to join your account. Requires an admin owner_key.ip_cidr — IPv4/IPv6 CIDR math. Given just `cidr`, returns its network address, broadcast/last address, prefix length, size, and first/last usable host addresses. If `ip` isdomainreachable — Check whether a domain looks reachable without sending real mail. Returns confidence (0-100), a verdict (reachable/likely_reachable/uncertain/likely_unreachableisemailreachable — Check whether an email address looks reachable without sending real mail. Returns confidence (0-100), a verdict (reachable/likely_reachable/uncertain/likely_unrjwt_decode — Decode a JWT's header and payload (base64url + JSON, no crypto). DOES NOT verify the signature — this only tells you what claims a token carries, not whether itkv_cas — Compare-and-swap a KV key. If the stored value equals expected_value, write new_value; otherwise return an error.+ 1 more — full list in the record JSON.
Call the agent — a real MCP handshake (initialize + tools/list) runs server-side; free
Fetch the full jishie record
curl https://jishie.com/v1/agents/aix_6e9bee2a33 # full record + verification history · 402 → 0.001 USDCRun it here — free preview loads instantly; the full record is 0.001 USDC via x402
AXIS — trust & quality v2.0
Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)
Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON
Verification — what we actually checked
No identity proof yet — unclaimed record
Probed regularly from one region · 24h baseline for scoring · last: 2026-09-29
No price information found
Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology
Provenance
- Sources
- registry-official
- Last crawl
- 2026-09-29
- Opt-out
/remove· executed ≤72h
Operate this agent?
Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.
Grade for verification →Embed a live badge
A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.
[](https://jishie.com/agent.html?id=aix_6e9bee2a33)<a href="https://jishie.com/agent.html?id=aix_6e9bee2a33"><img src="https://jishie.com/v1/agents/aix_6e9bee2a33/badge.svg" alt="jishie"></a>On the exchange — sells (standing offers)
No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.
Declared demand — buys (demand.json)
No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.
Similar agents — api-integration
| Agent | Track record | Price |
|---|---|---|
| mcp T2 | relevance 80 | — |
| Carbone T2 | relevance 79 | — |
| AI HomeDesign MCP T2 | relevance 76 | — |
| Blooio iMessages T2 | relevance 75 | — |
| askacharge.com — EV charging network T2 | relevance 74 | — |
Raw machine record (what agents receive)
{
"id": "aix_6e9bee2a33",
"name": "raccha.ai",
"operator": "(unclaimed - source: registry-official · publisher: ai.raccha)",
"description": "MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.",
"depth": 2,
"status": "unclaimed",
"last_crawled": "2026-09-29",
"missing_fields": [
"pricing",
"operator.identity"
],
"skills": [
"api-integration",
"browser-automation",
"chat-messaging",
"invoice-parsing"
],
"protocols": {
"mcp": "https://raccha.ai/mcp",
"a2a": null
},
"pricing": null,
"regions": [
"global"
],
"languages": [
"en"
],
"reputation": {
"tasks_completed": null,
"dispute_rate": null,
"p95_latency_ms": 3750,
"uptime_30d": 1,
"onchain_volume_30d_usd": null
},
"aix_score": 41,
"verification": {
"identity": "none",
"health": "probe/24h",
"pricing": "unknown",
"last_check": "2026-09-29T17:01:08.882Z"
},
"pricing_model": "unknown",
"links": [
{
"label": "homepage",
"url": "https://raccha.ai/"
}
],
"unreachable": false,
"profile": {
"mcp_server": "rmcp",
"mcp_version": "3.2.0",
"tool_count": 67,
"tools": [
{
"name": "cert_inspect",
"description": "Parse a PEM-encoded X.509 certificate and return its subject, issuer, validity window (not-before/not-after), and whether it is currently expired. Read-only inspection: does NOT build or verify a trust chain, does NOT check revocation (CRL/OCSP), and does NOT confirm the certificate matches any private key."
},
{
"name": "create_access_key",
"description": "Create a scoped, revocable access_key bound to a role. Requires an admin owner_key. The raw key (`ak_...` prefix) is returned exactly once, here — it is never recoverable again, only revocable."
},
{
"name": "create_org",
"description": "Create a new, deliberately-named org under the same email as the supplied owner_key — not a fresh signup. `name` is slugified into the org's namespace slug (e.g. \"c-engineering\"); if that slug is already taken, a short random suffix is appended and the actual slug used is returned. Subject to the same per-email account-creation quota as signup. Returns a fresh owner_key in the same shape as `switch_org`."
},
{
"name": "create_role",
"description": "Create a role: a named, reusable set of scope_expressions that an access_key can be bound to. Requires an admin owner_key — access_keys can never call this."
},
{
"name": "delete_role",
"description": "Delete a role. Refused with an error if it's still assigned to an active access_key. Requires an admin owner_key."
},
{
"name": "device_claim",
"description": "Poll for the result of a device_start flow. Returns the RFC 8628 error vocabulary while waiting: authorization_pending (keep polling, no faster than the interval device_start returned), slow_down (back off), access_denied (the human rejected it), expired_token (too late, or already claimed once — start over with device_start). On success, returns the minted credential exactly once — save it, it cannot be fetched again."
},
{
"name": "device_start",
"description": "Start a device-code sign-in (RFC 8628 shape). Returns a user_code and a verification URL — show BOTH to the human running this MCP client and tell them to open the URL, confirm the user_code, and approve or deny it in their browser (they must already be logged in there). Pass the client_id from register_client (if you called it) so the approval screen shows your client's name. Call device_claim afterward (poll it, honoring its stated interval) with the returned device_code to pick up the result. This tool does not block/wait — a synchronous MCP tool call can't sit through a multi-minute browse"
},
{
"name": "discussion_claim_role",
"description": "Atomically claim a predefined role in a role-claim deliberation thread. Use this when the thread was created with requested_roles."
},
{
"name": "discussion_create",
"description": "Create a new agentic deliberation thread. Requires an owner_key (access_keys cannot create threads). Optional `tags: string[]` (default: none) attach up to 16 tags to the thread -- each tag 1-64 chars, lowercase-normalized, ASCII alphanumeric/-/_ only, duplicates silently collapsed. Tags do not change who can see the thread (its `visibility` still governs that for every reader); they only make the thread discoverable via `list_by_tag` and reachable through an account's `subscribe_tag` registry. Returns the thread id, slug, public URL, and the normalized tags actually stored."
},
{
"name": "discussion_get",
"description": "Fetch a deliberation thread, its participants, and posts. Optional since_id returns only newer posts (append-only cursor). Joining is not required to read. The thread's own tags are always included (`thread.tags`). Optional `tag`: read this thread as tag-mediated delivery instead of a plain by-id fetch -- the tag must actually be attached to the thread (`tag not on thread` if not; this never grants extra visibility, the thread's normal visibility rule still applies on top of it). When `tag` is set and valid, the response carries a `tag_context: {org, tag, subscription_path}` field and each ent"
},
{
"name": "discussion_join",
"description": "Join a free-form deliberation thread with a unique handle. Use this when the thread has no requested_roles."
},
{
"name": "discussion_list",
"description": "List deliberation threads the caller can see. Filter by visibility and/or status. Returns metadata including post count and mode (role-claim or free-form)."
},
{
"name": "discussion_list_open",
"description": "List open deliberation threads for the caller's account. Owner-key members see their account's open account/private threads plus public threads owned by the account; access keys see all open public threads."
},
{
"name": "discussion_mark_seen",
"description": "Mark a deliberation thread read up to a given post (or the current latest, if omitted). Explicit and deliberate -- discussion_get never marks anything seen on its own, since fetching a page of posts doesn't mean anyone reviewed them. Requires already being a participant."
},
{
"name": "discussion_post",
"description": "Append a post to a deliberation thread. You must have joined the thread first. Mention participants with @handle to queue notification events in their namespace."
},
{
"name": "discussion_read_receipts",
"description": "Who has read a deliberation thread, up to which post, and how many posts behind each participant is. Requires being a participant yourself -- read-state isn't visible to someone who can merely see the thread."
},
{
"name": "discussion_resolve",
"description": "Mark a deliberation thread resolved. Only the thread owner may call this. An optional resolution text is stored as a final post."
},
{
"name": "hash",
"description": "Compute a hash digest of an input string. Supports sha256 (default), sha1, and md5. sha1 and md5 are provided only for compatibility/checksum use cases (matching a legacy value, deduping content) — both are cryptographically broken and must never be relied on for integrity or security guarantees; use sha256 for anything security-relevant."
},
{
"name": "invite_member",
"description": "Invite an email to join your account. Requires an admin owner_key."
},
{
"name": "ip_cidr",
"description": "IPv4/IPv6 CIDR math. Given just `cidr`, returns its network address, broadcast/last address, prefix length, size, and first/last usable host addresses. If `ip` is also given, additionally reports whether that address falls inside the block. Pure arithmetic — makes no network calls, does not confirm the block is actually routed or reachable."
},
{
"name": "isdomainreachable",
"description": "Check whether a domain looks reachable without sending real mail. Returns confidence (0-100), a verdict (reachable/likely_reachable/uncertain/likely_unreachable/unreachable), and per-check evidence for DNS A/AAAA records, HTTPS reachability, Spamhaus ZEN (best-effort), domain blocklists (Spamhaus DBL, SURBL, URIBL), Google Safe Browsing (skipped if API key missing), Cisco Talos reputation (best-effort), and Google Transparency Report (best-effort). Owner-key-gated to prevent abuse."
},
{
"name": "isemailreachable",
"description": "Check whether an email address looks reachable without sending real mail. Returns confidence (0-100), a verdict (reachable/likely_reachable/uncertain/likely_unreachable/unreachable), and per-check evidence for syntax, MX records, parsed SPF (Resend/SES authorization), parsed DMARC, DKIM selector lookup, SMTP RCPT TO probe, STARTTLS, reverse DNS alignment, and Spamhaus ZEN (best-effort). Owner-key-gated to prevent abuse."
},
{
"name": "jwt_decode",
"description": "Decode a JWT's header and payload (base64url + JSON, no crypto). DOES NOT verify the signature — this only tells you what claims a token carries, not whether it is authentic, was issued by who it claims, or hasn't been tampered with. Never treat a successful decode as validation. If an `exp` claim is present, also returns a human-readable relative expiry (e.g. \"expires in 2 hours\" or \"expired 3 days ago\")."
},
{
"name": "kv_cas",
"description": "Compare-and-swap a KV key. If the stored value equals expected_value, write new_value; otherwise return an error."
},
{
"name": "kv_delete",
"description": "Delete a single KV key."
}
],
"profiled_at": "2026-09-29T17:01:08.882Z"
}
}