servers / raccha-ai
raccha.ai MCP server
communitystreamable_httpremotedestructive capablehealthy
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
01Tools · 26
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| 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 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. | read | false | unknown |
| create_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 recoverable again, only revocable. | write | true | unknown |
| create_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. | write | true | unknown |
| delete_role Delete a role. Refused with an error if it's still assigned to an active access_key. Requires an admin owner_key. | destructive | true | true |
| 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 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. | read | false | unknown |
| device_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 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 browser approval. | read | false | unknown |
| 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 (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. | unknown | unknown | unknown |
| invite_member Invite an email to join your account. Requires an admin owner_key. | write | true | unknown |
| 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` 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. | read | false | unknown |
| jwt_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 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"). | read | false | unknown |
| kv_get Fetch a JSON value by key from your namespace. | read | false | unknown |
| kv_put Store a JSON value under a key in your namespace. | write | true | unknown |
| list_access_keys List access keys for your account (metadata only — key material is never returned again). | read | false | unknown |
| list_roles List roles defined for your account. | read | false | unknown |
| queue_pop Pop (remove and return) the oldest item from a named queue in your namespace, FIFO order. Returns JSON null, not an error, if the queue is empty. | read | false | unknown |
| queue_push Push a JSON value onto the tail of a named queue in your namespace. Push is cheap/open by design — the sensitive operation is pop, not push. | write | true | unknown |
| register_client Register this MCP client (RFC 7591 Dynamic Client Registration) so its name shows up on the human-approval screen during device_start, instead of a blank/unlabeled request. Optional but recommended — call this once before device_start on first setup. Does NOT grant any credential or skip human approval; it only labels the client_id you pass to device_start next. | unknown | unknown | unknown |
| request_link Request a magic sign-in link for an email. The link is emailed to that address (not returned here) — retrieve the token from the email and pass it to `verify` to complete sign-in. | unknown | unknown | unknown |
| revoke_access_key Revoke an access_key by its id (not the raw ak_... key material). Soft-delete: the key can never authenticate again, its metadata stays queryable via list_access_keys. Requires an admin owner_key. | destructive | true | true |
| stats Get counts for your org: KV item count and queue depth today; credit balance is null until that subsystem ships. | read | false | unknown |
| telegram_pair_code Mint a short-lived one-time pairing code. DM it (or /start <code>) to the raccha.ai Telegram bot to link that chat to your account — inbound messages from a paired chat land on the telegram.inbound queue in your namespace. | unknown | unknown | unknown |
| telegram_send Send a text message to a Telegram chat_id that has already been paired to your account (via telegram_pair_code). Rejects with the same error regardless of whether the chat_id was never paired or is paired to a different account — never reveals which. | write | true | unknown |
| update_access_key Reassign an access_key's role_ids (whole-combination replace, bundle-26), mailbox_label, and/or expiry. Omitted fields are left unchanged. Requires an admin owner_key. | write | true | unknown |
| update_role Update a role's name and/or scope_expressions. Omitted fields are left unchanged (not cleared). Requires an admin owner_key. | write | true | unknown |
| verify Verify a magic-link token and receive one owner_key per organization this email belongs to. Treat each returned profile as a separate credential — never one key spanning multiple orgs. | unknown | unknown | unknown |
| whoami Who does the server think you are, right now, for this owner_key. | unknown | unknown | unknown |
02Install & source
https://raccha.ai/mcp
remote_url- homepagehttps://raccha.ai/mcp
03Access granted
Send chat messages · write
The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.
05Provenance & freshness
sourcesOfficial MCP Registry [p1]
last_checked2026-08-15 14:31Z
next_check2026-08-17 14:29Z
cadenceevery 48h
verifiedtools_list:passed handshake:passed metadata:failed
index_statusindex — 5 unique facts >= 5
06Badge
Add the “as seen on MCPExplorer” badge to your README.
[](https://mcpexplorer.com/servers/raccha-ai)
Next step
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →