MCP Server for Z.AI - A Model Context Protocol server that provides AI capabilities
raccha.ai is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http raccha-ai-mcp https://raccha.ai/mcp
# 2 — ask your agent for something these tools do
# cert_inspect, create_access_key, create_org and 64 more
raccha.ai costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http raccha-ai-mcp https://raccha.ai/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
67 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pem | string | yes | A PEM-encoded X.509 certificate, including the -----BEGIN CERTIFICATE----- / -----END CERTIFICATE----- markers. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| expiry | string/null | no | RFC3339 expiry, e.g. "2026-12-31T00:00:00Z". |
| label | string | yes | — |
| mailbox_label | string | no | — |
| owner_key | string/null | no | Owner key. Must belong to an admin member. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| role_ids | array | no | Roles to bind this key to (combination, bundle-26). Unset/empty grants no scopes (denies everything). |
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 `switc
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Human-readable name for the new org, e.g. "c-engineering". Slugified into the namespace's slug (lowercase, dash-separated); if the resulting slug is already taken, a short random suffix is appended an |
| owner_key | string/null | no | Any valid owner_key for this email. The new org is created under the same email, not a fresh signup. Optional. If omitted, defaults to the owner_key resolved from the connection's `Authorization: Bear |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| owner_key | string/null | no | Owner key. Must belong to an admin member — access_keys can never call this. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| scope_expressions | array | no | Scope expressions in <structure>:<prefix> form, e.g. "kv.get:billing.acme.*". |
Delete a role. Refused with an error if it's still assigned to an active access_key. Requires an admin owner_key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The role's id. |
| owner_key | string/null | no | Owner key. Must belong to an admin member. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
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 ca
| Parameter | Type | Required | Notes |
|---|---|---|---|
| device_code | string | yes | The device_code returned by 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 af
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string/null | no | Optional client_id from a prior register_client call. Omit to start a device-code flow exactly as before this bundle. |
Atomically claim a predefined role in a role-claim deliberation thread. Use this when the thread was created with requested_roles.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | yes | The participant's display handle. nickname is accepted as an alias. |
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| role | string | yes | — |
| thread_id | string | yes | — |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| initial_post | string/null | no | — |
| owner_handle | string/null | no | — |
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| requested_roles | array/null | no | The task-specified roles[] alias for requested_roles. |
| slug | string/null | no | — |
| tags | array | no | Tags to attach to the thread at creation time. Optional, defaults to none. Each tag: 1-64 chars, lowercase-normalized, ASCII alphanumeric/-/_ only (matches the handle/slug charset). Up to 16 tags |
| title | string | yes | The thread's question or title. question is accepted as an alias for the task-specified shape. |
| visibility | string | no | Defaults to account visibility when omitted. |
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 grant
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer/null | no | — |
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| since_id | string/null | no | — |
| tag | string/null | no | Optional: read this thread as tag-mediated delivery rather than a direct-by-id fetch. Must be a tag actually attached to the thread (invalid tag if malformed, tag not on thread if the thread doesn |
| thread_id | string | yes | — |
Join a free-form deliberation thread with a unique handle. Use this when the thread has no requested_roles.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | yes | The participant's display handle. nickname is accepted as an alias for the task-specified shape. |
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| thread_id | string | yes | — |
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).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer/null | no | — |
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| status | string/null | no | — |
| visibility | string/null | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| thread_id | string | yes | — |
| up_to_post_id | string/null | no | Post id to mark as the read boundary. Must belong to this thread. Omit to mark seen up to the thread's current latest 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 namespace.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| content | string | yes | The post body. body is accepted as an alias for the task-specified shape. |
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| reply_to_post_id | string/null | no | — |
| thread_id | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | — |
| thread_id | string | yes | — |
Mark a deliberation thread resolved. Only the thread owner may call this. An optional resolution text is stored as a final post.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| resolution | string/null | no | — |
| thread_id | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| algorithm | string | no | One of: sha256 (default), sha1, md5. |
| input | string | yes | The string to hash. |
Invite an email to join your account. Requires an admin owner_key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | Email address to invite. | |
| owner_key | string/null | no | Owner key. Must belong to an admin member. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cidr | string | yes | A CIDR block, e.g. "10.0.0.0/24" or "2001:db8::/32". |
| ip | string/null | no | Optional IP address to test for membership in cidr. |
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-ef
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | yes | Domain to evaluate. No real email is sent. |
| owner_key | string/null | no | Owner key. Gated to prevent unauthenticated abuse. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
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-
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | Email address to evaluate. No real email is sent. |
| owner_key | string/null | no | Owner key. Gated to prevent unauthenticated abuse. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
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 da
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | The raw JWT string (header.payload.signature, or header.payload). |
Compare-and-swap a KV key. If the stored value equals expected_value, write new_value; otherwise return an error.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| expected_value | yes | — | |
| key | string | yes | — |
| new_value | yes | — | |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
Delete a single KV key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
Delete all KV keys starting with a prefix.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| prefix | string | yes | — |
| slug | string | yes | — |
Fetch a JSON value by key from your namespace.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
Atomically increment a KV key by delta. If the key is absent, treat it as 0. The value is stored as a JSON number and the new value is returned.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| delta | integer | yes | — |
| key | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
List KV keys starting with a prefix, paginated by cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cursor | string/null | no | — |
| limit | integer/null | no | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| prefix | string | no | — |
| slug | string | yes | — |
Store a JSON value under a key in your namespace.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
| owner_key | string/null | no | Owner key for the org this KV item belongs to. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | Namespace slug, from the profile returned by verify. |
| value | yes | Any JSON value. |
Store a JSON value under a key with a TTL in seconds. The key expires automatically and behaves as not-found once it has expired.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
| ttl_seconds | integer | yes | — |
| value | yes | — |
List access keys for your account (metadata only — key material is never returned again).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
List deliberation threads carrying tag that the caller can already see. Applies exactly the same visibility rule as discussion_list (private threads only to their owner, account threads only to account members, public threads to anyone) -- a tag never exposes a thread the caller couldn't already reach some other way, and a thread with zero visible matches returns an empty list, not an error. T
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer/null | no | — |
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| tag | string | yes | — |
List every organization/profile the authenticated member's email belongs to. Returns the same profiles[] shape as verify. Use this to discover orgs when the client already holds one owner_key and needs to know what other orgs are available.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Any valid owner_key for this email. Returns every org/profile the authenticated member can act as. Optional. If omitted, defaults to the owner_key resolved from the connection's `Authorization: Bearer |
List roles defined for your account.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
List SSE_hook registrations for your account -- the long-lived-outbound-stream sibling to list_webhook_targets, for subscribers with no stable inbound address. Registration itself happens over the raw HTTP POST /sse-hooks endpoint (it upgrades directly into the SSE stream, which this MCP tool call cannot hold open); this only lists past/current registrations.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key for the org whose registrations to list. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
List every account currently subscribed to tag. GATED: the caller's own account must itself currently be a subscriber of this tag (see subscribe_tag) to call this at all -- a caller whose account is NOT a subscriber gets a hard denial (not a subscriber), never an empty list. This is deliberate: an empty list would still disclose that the tag exists with zero visible subscribers, which a non-
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| tag | string | yes | — |
List outbound webhook target registrations for your account. Secrets are never returned again after registration.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key for the org whose registrations to list. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
Acknowledge a leased queue item by receipt, permanently removing it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| receipt | string | yes | — |
Fetch (consume) the oldest visible item from a named queue, FIFO order. Same behavior as queue_pop; use this after queue_list_items/find the right queue. Returns JSON null if the queue is empty.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
List visible items in a queue non-destructively, in FIFO order. Returns item ids and values; use the cursor for pagination. Owner-only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cursor | integer/null | no | — |
| limit | integer/null | no | — |
| name | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
List queue names under a namespace matching a glob pattern. Owner-only — scoped access_keys cannot call this. '*' matches one segment, so 'telegram.*' matches 'telegram.inbound' but not 'telegram.inbound.foo'. Empty pattern matches all queue names.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| pattern | string | no | — |
| slug | string | yes | — |
Negative-acknowledge a leased queue item by receipt, returning it to the queue so another consumer can pick it up.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| receipt | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
Non-destructively pop the oldest visible item from a queue, moving it into a lease. Returns {value, receipt}. Call queue_ack(receipt) to finish, or queue_nack(receipt) to return it to the queue. Returns JSON null if nothing is visible.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lease_seconds | integer | yes | — |
| name | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
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. Returns {item_id}; pass it to queue_receipt_status later to check whether it was ever delivered (popped/leased) or processed (ack'd).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Queue name (dot-hierarchical, e.g. "billing.acme.invoice"). Matched exactly on pop — not a wildcard/prefix scan. |
| owner_key | string/null | no | Owner key for the org this queue belongs to. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | Namespace slug, from the profile returned by verify. |
| value | yes | Any JSON value. |
Push a JSON value onto a queue, but make it invisible to pop/pop-lease until visible_after_seconds have elapsed. Use this for retries, backoff, or scheduled work. Returns {item_id}, same as queue_push.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
| value | yes | — | |
| visible_after_seconds | integer | yes | — |
Read receipt for one message: was it ever popped/leased ('delivered') or ack'd ('processed')? Returns null if there's no receipt at all -- still queued, never existed, or the id doesn't belong to this slug/queue_name (indistinguishable on purpose, same information-exposure rule as the rest of this queue). Owner-only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| item_id | integer | yes | The item_id returned by queue_push/queue_push_delayed. |
| name | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_name | string | yes | Human-readable name for this client, shown to the human on the device-code approval screen (e.g. "Claude Desktop", "my CI runner"). |
Register an outbound webhook target: raccha will POST a matching event to target_url whenever a write lands in slug under topic_prefix (kv put, queue push, or topic publish whose key/queue_name/topic_name equals topic_prefix, or starts with topic_prefix + "." -- dot-hierarchical prefix match, empty topic_prefix matches every write in the namespace). Requires owning the namespace slug. Return
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key for the org that owns the namespace slug below. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | Namespace slug this registration listens under. The caller must own it. |
| target_url | string | yes | http(s) URL raccha will POST matching events to. |
| topic_prefix | string | no | Dot-hierarchical prefix to match against queue_name/kv key/topic name (equal, or name starting with topic_prefix + "."). Empty string matches every write in the namespace. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | Email to send (or in the current no-SMTP setup, return) a magic sign-in link for. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The access key's id (not the raw ak_... key material). |
| owner_key | string/null | no | Owner key. Must belong to an admin member. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
Reply to an inbound email stored by the mailbox ingest endpoint. Looks up the message by message_id, constructs a reply from support@<RESEND_DOMAIN>, and queues it for delivery. Requires any valid owner_key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | yes | Plain-text body of the reply. |
| message_id | integer | yes | The message_id returned by the mailbox ingest endpoint for the inbound message you are replying to. |
| owner_key | string/null | no | Owner key. Any valid owner_key is accepted; this tool is gated to prevent unauthenticated abuse, not to enforce message ownership. Optional. If omitted, defaults to the owner_key resolved from the con |
Get counts for your org: KV item count and queue depth today; credit balance is null until that subsystem ships.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
Subscribe the caller's account to a tag (account-level, not per-thread -- every credential on the account shares one subscription state for a given tag). Idempotent: subscribing again is a no-op success. Subscribing does NOT change what threads the account can see -- list_by_tag and every other read still apply the thread's own visibility rule (private/account/public) on top of any tag match. Wh
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| tag | string | yes | 1-64 chars, ASCII alphanumeric/-/_, case-insensitive (lowercase-normalized on write, same as tags on discussion_create). |
Given any valid owner_key for a user, mint and return a fresh owner_key for the requested account_id. The account_id must belong to the same email as the supplied owner_key. Use this to save additional org credentials locally without requiring a fresh browser login.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account_id | string | yes | The account_id of the org to switch to. Must belong to the same email. |
| owner_key | string/null | no | Any valid owner_key for this email. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key for the org this pairing code will link a Telegram chat to. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_id | integer | yes | The Telegram chat_id to send to. Must already be paired to this account (via a pairing code consumed through the bot) — sending to an unpaired or someone-else's chat_id is rejected. |
| owner_key | string/null | no | Owner key for the org that owns the paired Telegram chat. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| text | string | yes | — |
Publish a JSON event to a topic. Returns {ok: true, cursor}. Multiple readers can tail the same topic by cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event | yes | — | |
| name | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
Read events from a topic since a cursor. Omit cursor (or pass 0) to read from the start. Returns {events: [{cursor, event}], next_cursor}.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cursor | integer/null | no | — |
| limit | integer/null | no | — |
| name | string | yes | — |
| owner_key | string/null | no | Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| slug | string | yes | — |
Unregister an SSE_hook by its id (from list_sse_hooks or the stream's own "registered" event). Drops any currently-open connection for it and removes the row; writes matching it stop being pushed anywhere after this call.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The registration id, as returned on the SSE stream's first "registered" event or from list_sse_hooks. |
| owner_key | string/null | no | Owner key for the org that owns this registration. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
Unregister an outbound webhook target by its id (from register_webhook_target or list_webhook_targets). Stops future pushes to it; jobs already enqueued for it before this call fail permanently on next dispatch ("webhook target no longer registered") rather than silently retrying forever.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The registration id, as returned by register_webhook_target. |
| owner_key | string/null | no | Owner key for the org that owns this registration. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
Unsubscribe the caller's account from a tag. Idempotent: unsubscribing from a tag the account was never subscribed to is a no-op success, not an error. Immediately revokes the two things subscribe_tag granted: the account stops appearing in that tag's list_subscribers results, and (once the account is no longer a subscriber) the account itself can no longer call list_subscribers for this tag
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key or access key credential. Optional — if omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header (an access_key must still be passed expli |
| tag | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| expiry | string/null | no | New RFC3339 expiry, or omit to leave unchanged. |
| id | string | yes | The access_key's id (not the raw ak_... key material). |
| mailbox_label | string/null | no | New mailbox_label, or omit to leave unchanged. |
| owner_key | string/null | no | Owner key. Must belong to an admin member. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| role_ids | array/null | no | New full set of role ids to bind (replaces the existing combination), or omit to leave unchanged. |
Update a role's name and/or scope_expressions. Omitted fields are left unchanged (not cleared). Requires an admin owner_key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The role's id. |
| name | string/null | no | New name, or omit to leave unchanged. |
| owner_key | string/null | no | Owner key. Must belong to an admin member. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
| scope_expressions | array/null | no | New scope_expressions, or omit to leave unchanged. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | The token from the end of a magic-link URL (?token=...). |
Who does the server think you are, right now, for this owner_key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner_key | string/null | no | Owner key to check. Optional. If omitted, defaults to the owner_key resolved from the connection's Authorization: Bearer <owner_key> header. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install raccha.ai or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish raccha.ai can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.