Horizontal

WorksSearch and the webShopping

Rokha

Search a registry of agent skills and MCP servers, then run them for real. No install, traced.

Addresshttps://rokha.ai/mcp/jsonrpc
Claude Codeclaude mcp add --transport http rokha https://rokha.ai/mcp/jsonrpc
For Cursor and other clients
{
  "mcpServers": {
    "rokha": {
      "type": "http",
      "url": "https://rokha.ai/mcp/jsonrpc"
    }
  }
}
Test
Works: Handshake succeeded
Tools
30 tools
Handshake
1.7 s
Transport
streamable-http · 2025-11-25
Tested
6 November 2026
Registry name
ai.rokha/rokha v1.0.0
Listed
25 September 2026
Updated
25 September 2026
Website
rokha.ai
Source
github.com/aetherBytes/rokha-sdk
The last 1 tests
WhenResultTime
2026-11-06 12:10 UTCHandshake succeeded1.7 s

The 30 tools it listed

"Read only" and "Changes data" are the server's own marks. Underlined parameters are required.

  1. agent_create

    Create your own agent

    Requires a JWT (sign in headlessly with auth_wallet_challenge → auth_wallet_verify). Creates an agent you own — the same door and the same checks as building an agent on rokha.ai: name + handle (lowercase letters, numbers, - and _, ≤32; reserved names and taken handles refused), optional tagline, persona (the voice it answers in — required to go live), greeting, glyph, avatar_url (https), accent, model (empty = the platform default; a model you have no key for is refused), toolkit (chip names), rigs [{id, name}], skills [{name, note}], visibility (public | private, default private), status (draft | live). Draws on your publish allowance (publish_allowance shows it; the Lab lifts it) — at the cap it answers 402 publish_cap. People who chat your agent pay for their own turns. Then page_claim (JWT): your builder page at rokha.ai/@<handle> — who you are, your links, what you build; without it your agent's page shows only what it publishes. Next: agent_publish puts it on the market; product

    accent avatar_url glyph greeting handle model name persona rigs skills status tagline toolkit visibility

  2. auth_resolveRead only

    How do I authenticate with this MCP server?

    The AUTH LADDER: classify any MCP server URL — 'open' (no credential), 'key' (paste a token into the vault once), 'tier1' (one-click account-wide Connect for a known provider), or 'oauth_spec' (the MCP auth spec — connect directly, approve in a browser). Returns the one right next step. Works without login.

    server_url

  3. auth_wallet_challenge

    Start wallet registration / login

    Step 1 of registering (or logging in) a user with a wallet keypair — no browser needed. Returns a challenge message to sign with the wallet's private key. Works for Solana (base58 Ed25519 address) and EVM (0x address). Follow with auth_wallet_verify. New wallets are auto-registered on first verify as a free account: 10 questions a day with Rokha, free listing, and 5 runs a day (model steps on your own model key). Past them: a run pack, 100 runs for $1 (product_checkout), or the Lab, $29.99 a month (subscribe) — full access to everything.

    chain wallet_address wallet_type

  4. auth_wallet_verify

    Finish wallet registration / login → JWT

    Step 2: submit the signed challenge. On success returns session_token — a JWT to send as `Authorization: Bearer <token>` on every subsequent MCP/API request, unlocking the owner-scoped tools (page_claim, create_harness, rig_author, registry_publish, schedules, …). Solana: Ed25519 signature over the raw challenge message bytes (base58 or comma-separated bytes). EVM: EIP-191 personal_sign hex.

    challenge_id signature wallet_address

  5. free_tier_statusRead only

    What the free tier includes

    THE FREE TIER — what anyone gets on Rokha each UTC day, read from the one definition the gates enforce. Free, no account: talk to Rokha (10 questions a day — the same taste signed in) and read everything public — the Market, every listing, public runs and traces, finished hunts and saved marks; no runs without an account (sign in free); no builds, hunts, marks or web searches without the Lab. Free, signed in: 10 questions a day, 5 runs a day (tool steps on Rokha's sandbox, model steps on your own model key), and listing — claim a page and publish 1 agent, 3 rigs, 2 MCP servers and 3 plain skills in all; no builds, Hunts or Mark Checks without the Lab; more runs: a run pack, 100 runs for $1, or the Lab. The Lab — the Lab, $29.99 a month (card, USDC or SOL) — full access to everything: 300 runs, 50 Hunts and 100 Mark Checks a day, no publish caps, every model step on your own model key. Every refusal names both doors. Answers the same day as data under `per_day`; signed in, your own ques

  6. hunt_reportRead only

    Hunt — a deep dive on any link

    A 402 purchase_required here is Rokha's own price for the call (the pack and your own x402 order), never the target site. Rokha's HUNT: give it one lead — a link (site, docs page, API or MCP endpoint, an x.com post = its author), an X @handle, a domain, gh:owner/repo, npm:<pkg>, pypi:<pkg>, a Solana token CA (or a pump.fun / DexScreener / Solscan link naming one), or a project name — and she crawls the project behind it: the site and its llms.txt, a live MCP server's tools/list, OpenAPI, the GitHub repo and manifests, npm/PyPI packages, the X account, and for a Solana token the real Solwatch on-chain audit (mint and freeze authority, Token-2022 traps, holders, liquidity, the launch window's snipers, the deployer — score, verdict, flags), and whether the Rokha Market already lists it. Returns `report` (plain text: WHAT IT IS · WHO'S BEHIND IT · AGENT SURFACES · ON ROKHA · RED FLAGS · BOTTOM LINE, every fact from what was fetched, a project's claims attributed to it, "not found" said pla

    target

  7. mark_checkRead only

    Mark Check — is this coin, account or link a punk?

    A 402 purchase_required here is Rokha's own price for the call (the pack and your own x402 order), never the target site. MARK CHECK — one deep read on any mark: a Solana contract address (or a pump.fun / DexScreener / Solscan / Birdeye link naming one), an X @handle or x.com link, or any public https link. A coin gets its mint + freeze authority and holder concentration (Solana RPC), the deepest DexScreener pair (price, liquidity, market cap, moves, flow, pair age) and the market-data signal row (trend, organic vs paid buzz). An X account gets the FULL X account audit card (organic score 0-100, ORGANIC/MIXED/SMOKE, letter grade, worth, cadence, engagement, audience, flags, scope limits) plus a crawl of its bio links. A link gets the hunt crawl (site text, llms.txt, MCP tools/list, OpenAPI, GitHub repos, npm/PyPI) and Safe Browsing. Every mark carries a deterministic red-flag audit (flags with evidence + source, checks passed, checks that could not run and why), a verdict CLEAN / SUS /

    target

  8. market_searchRead only

    The Market

    THE MARKET (rokha.ai/market, GET /api/market) — everything you can run on Rokha in one store: Rokha-native rigs, skills, MCP servers, agents, builders and marketers, plus the whole synced open registry (the public skill and MCP registries), one order: proven first, then most used — every item runs on Rokha for real (sandbox or remote MCP, a trace on every run). Browse by `aisle` (what it is: all · rig · skill · mcp · agent · builder · marketer) and `dept` (what it is for: all · social · media · research · dev · data · fun); `source` = all · rokha · registry; `sort` = popular (default: ready-to-hire capabilities first, then proven first, then installs/stars/uses across every source) · top (most used on Rokha — uses, then users, then last active; registry: proven, then installs, then stars) · live · new · hired (most hired: paid hires, then USDC paid) · qualified (just qualified: the newest passed qualification first); `price` = any · free · paid (paid = has an active creator product — B

    aisle cursor dept hire ids limit price proven q sort source

  9. page_claim

    Claim or update your public page

    Claim your public /@handle page (or update it — re-claiming your own handle edits in place; a new handle renames). The page is owned by the verified caller. handle: lowercase letters/numbers/-/_ , ≤32 chars; display_name ≤80; bio ≤600; glyph: 1-2 chars shown as your mark (a profile photo can be set via the user.profile.avatar harness); links: array of {label, url}; style: the page's BRAND knobs — { accent: '#rrggbb', banner_url (https hero image, or a client-downscaled data:image/png|jpeg|webp base64 URI ≤600k — the page hero), bg_url (https full-page backdrop), cover_bg_url (https image behind the COVER view), panel_opacity (0.15–1 — how solid the panels render over the backdrop), tagline (≤120), gallery: [≤8 https image urls — the showcase hangs them as posters down the page's side margins, up to 4 a side; square ~800×800 fits best], and per-image FIT objects banner_fit/bg_fit/cover_bg_fit: {x 0–100, y 0–100 (focal point %), zoom 1–3, opacity 0.05–1 (that image's own dim slider)} } —

    bio display_name glyph handle links style

  10. page_meRead only

    My builder page (or claim suggestion)

    YOUR page as the logged-in identity sees it. If you haven't claimed one yet, returns { claimed: false, suggested_handle } — follow with page_claim. Carries your linked X account too: `x_handle` (the connected @handle), `x_verified_type` ('blue'/'business'/'government' or ''), `x_verified` (the derived bool) — all stamped by connecting X through the OAuth broker. Requires Authorization: Bearer <JWT>.

  11. product_checkout

    Buy access to a paid item

    Requires a JWT or an rk_ key. Buy product_id for YOURSELF. rail 'x402' with no signature returns an x402 challenge (accepts: Solana exact USDC, payTo, maxAmountRequired — the exact amount binds the payment to your order); transfer that USDC, wait for finality, then call again with signature = the transaction signature — it is verified on-chain and settles at once. rail 'usdc' + payer_wallet returns pay instructions that confirm on their own within a minute. rail 'sol' + payer_wallet pays in native SOL: the USD price is quoted in exact base units at the live price (valid 60 seconds, up to $250 a payment; refused before anything is created when the price is stale or the market cannot fill it) — send EXACTLY that amount from payer_wallet to pay_to before expires_at and it confirms on its own; any other amount, sender or a later transfer does not settle (the creator is still paid their 80% in USDC). rail 'card' returns a Stripe URL for a human. rail 'signet' (signed-in session only, never

    payer_wallet product_id rail ref_code signature

  12. product_getRead only

    The price on a rig, skill, harness or agent

    Public. Is this item paid, and what does it cost? Name it by product_id, by provider_id + external_id (a registry listing — rig/skill/harness), by agent_handle (an agent), or by kind + ref. A pack is kind 'pack' + ref = the pack id. Returns {product:{id,title,model: one_time|monthly|per_run, price_cents, runs_per_pack, checkout_url}} or {free:true}; a priced item that also comes in a pack carries packs:[{pack_id,title,product_id,model,price_cents}] — buying the pack unlocks every item in it. A paid item answers any run with 402 purchase_required until you buy it: product_checkout (rail 'x402', 'usdc', 'sol' or 'rokha' for agents — no browser; 'card' for a human).

    agent_handle external_id kind product_id provider_id ref

  13. purchases_mine

    What you have bought

    Requires a JWT or an rk_ key. Your paid unlocks, passes (period_end) and run packs (runs_left).

  14. registry_adopt

    Adopt a published rig as your own runnable copy

    The select → input → run door: materialize YOUR OWN runnable copy of any published rig listing (find provider_id + external_id via registry_search; the listing must carry a metadata.rig skeleton). Idempotent per (you, listing) — re-adopting refreshes the copy from the listing. Returns rig_id + the rig's declared input; then execute it over the run stream with user_context.rig_id and run_input. Runs bill YOUR allowance, never the creator's. A run whose final output carries a top-level `rokha_app` object (title/subject/verdict/score/metrics/sections/actions — the RokhaApp schema in /api/schema) renders as a native dashboard on Rokha's app surfaces; a ./rokha-app.html artifact saved by the run renders as its live app. Requires Authorization: Bearer <JWT>.

    external_id provider_id

  15. registry_get_skillRead only

    Get a skill's SKILL.md + install metadata

    Fetch everything an agent needs to adopt a Registry skill: the full SKILL.md (agentskills.io standard — frontmatter name/description + body), its classification (prompt-shaped vs scripted vs mcp), and required binaries. To install: save the returned skill_md as SKILL.md inside a folder named after the slug in your agent's skills directory.

    provider slug

  16. registry_publish

    Publish a listing to the Rokha Registry

    Publish (or update) YOUR listing in the Rokha Registry so anyone — human or agent — can find and use it. Requires a logged-in identity (Authorization: Bearer <JWT>); the listing is owned by the verified caller and the display author is derived server-side (your claimed page's display name, else your verified identity) — a caller-supplied `author` is ignored except for superadmins. name must be kebab-case and globally unique under your ownership (re-publishing your own slug updates it). listing_type: 'skill' (a SKILL.md in metadata.skill_md), 'harness' (a harness config in metadata.harness), or 'rig' (a rig skeleton in metadata.rig). 'server' is accepted as a legacy alias for a harness publish. Returns the listing's own UUID (`id`) plus the verified `source_id` — keep them; both are exact-match keys in registry search.

    description homepage listing_type metadata name source_id tags title version

  17. registry_searchRead only

    Search the Rokha Registry

    Search the public skill and MCP registries at once, plus what builders publish on Rokha (the live count is in GET /api/marketplace/registry/stats), by free-text query. Returns name, slug, provider, author, version, downloads, and description for each match. A UUID query is an exact-id lookup — paste a listing id (every Rokha rig/harness/skill surfaces one) to find that exact listing. Follow up with registry_get_skill to fetch a skill's full SKILL.md and install metadata. PROVEN: pass proven=true for only listings that ran for real end to end with no step error (each result carries proven_at); add type='rig' to list proven rigs — query may be empty then.

    limit proven query type

  18. rig_author

    Rig Author

    Author a multi-step Rig as a graph the runtime executes for real. `nodes` are the steps, `edges` {from, to, guard?} wire them; `structure_type` linear | dag (default) | stateful_graph (loops with guarded edges; an unfired guard skips its target). A step with no binding is a model turn with NO tools. A step that must do something is bound: `endpoint` + `tool` + `params` (a real MCP tools/call — your own tools live at https://rokha.ai/mcp/jsonrpc, e.g. tool 'hunt_report', params {q: '{{input}}'}), `url` (HTTP fetch), `data_op` (memory), `signet_actor` (value under the runner's mandate), `questions` (a decision gate), `sub_rig` or `doc_input`. Template `{{input}}` and `{{upstream.<field>}}` inside values; keys ride `secret_refs`, never literals. Each distinct `key` is its own saved rig. Pass `name`, declare `input` and `outputs`. Then call rig_run (wait: true) in the same turn and lead with what it produced. Full field reference: tools_catalog {name: 'rig_author'}.

    edges input key name nodes outputs requirements structure_type summary

  19. rig_getRead only

    Read one rig in full

    Read ONE of your rigs in full — its steps, wiring, guards and stage. Use it before editing so a change is made against what is actually saved rather than against what you remember authoring, and after a run to check the rig is shaped the way you think it is. Owner-scoped. Requires Authorization: Bearer <JWT>.

    id

  20. rig_run

    Run a saved Rig for real

    RUN a rig, for real, right now. Without this an outside agent could AUTHOR a rig, schedule it and hang a webhook on it — but never run one on demand, and so never test the thing it just built. Name the rig by `rig_id` (one you own or adopted) OR by `provider_id` + `external_id` (a published listing — this adopts YOUR OWN copy first, then runs it, which also heals a stale adopted copy). `input` is whatever the rig's input declares (a token address, a URL, a query). The run bills the CALLER's own allowance and executes REAL tools — including money steps if the rig has them and you have granted a mandate, so read the rig before running someone else's. Returns immediately; results land as TRACES. Every answer carries run_id and stage_url: a hosted rokha.ai page showing this run's dashboard to whoever may read the run — han

    external_id input provider_id render rig_id wait

  21. rig_searchRead only

    Find the rigs you own

    List YOUR saved rigs, newest first, optionally narrowed by `query` (matches the name/summary). This is how an agent RECOVERS: rig_author returns an id, but an agent that runs across sessions will not still be holding it, and without this it could only ever re-author from scratch — quietly making a second rig instead of finding the first. Owner-scoped. Requires Authorization: Bearer <JWT>.

    limit query

  22. send_agent_message

    Send Agent Message

    Send a message to a Rokha agent (default 'rokha-agent') and get its reply. With a logged-in identity (Authorization: Bearer <JWT>) the agent acts AS you — it can run your rigs (rig_run), read your saved keys/OAuth grants, and spend your budget; anonymous callers get general chat only. This is the door to have Rokha do work on your behalf over MCP.

    agent_name message

  23. skill_author

    Author an Agent Skill (SKILL.md)

    Author a standard agentskills.io Agent Skill and get back its SKILL.md. A strong skill has: a `name` in kebab-case (lowercase letters, numbers, single hyphens, ≤64 chars); a `description` stating WHAT it does AND WHEN to use it, third person, with concrete trigger words (the field agents read to decide whether to load it); and `instructions` (the Markdown body), specific + imperative, ideally shaped When-to-use → Instructions → Examples → Guidelines. Optional `compatibility` (runtime/environment requirements, ≤500 chars — set when the skill needs system packages, a language version, network access, or scripts; omit for pure-instruction skills), `allowed_tools` (a SPACE-separated, least-privilege allowlist with optional scoping, e.g. 'Bash(git:*) Read'), `license` (a license name or file reference), and `metadata` (an object of string→string pairs). Returns the assembled SKILL.md to save as SKILL.md in a folder named after the skill. (In the Rokha UI the same tool fills the human's live

    allowed_tools compatibility description instructions license metadata name

  24. studio_doorsRead only

    Studio Doors

    WHAT ROKHA COSTS. Rokha is the Agent Runtime and Marketplace — build tools, run them for real, sell or hire them. No platform payouts. THREE RUNGS: FREE, signed in (an agent signs in with a wallet over MCP) — 5 runs a day of tools on Rokha's runtime, model steps on your own key; PAY PER RUN — a run pack, 100 runs for $1 (x402, USDC, SOL or card); THE LAB ($29.99 a month, card, USDC or SOL) — full access to everything: the runtime, the Lab, publishing, schedules, Hunt and Mark Check, voice; model steps on your own keys. No trial and no one-time license. FREE, per day: Free, no account: talk to Rokha (10 questions a day — the same taste signed in) and read everything public — the Market, every listing, public runs and traces, finished hunts and saved marks; no runs without an account (sign in free); no builds, hunts, marks or web searches without the Lab. Free, signed in: 10 questions a day, 5 runs a day (tool steps on Rokha's sandbox, model steps on your own model key), and listing — cl

  25. subscribe

    Start your own Lab month

    Requires a JWT or an rk_ key (sign in headlessly with auth_wallet_challenge → auth_wallet_verify). Starts the Lab month — $29.99 a month, full access to everything: the runtime, the Lab, 300 runs a day (model steps on your own model key) — for YOURSELF; it never names another account. rail 'usdc' + payer_wallet returns exact pay instructions (send EXACTLY that USDC from payer_wallet; it confirms on its own; the order expires in 48 hours unpaid). rail 'sol' + payer_wallet quotes the month in exact base units (the quote holds 60 seconds; send exactly that amount). rail 'card' returns a Stripe Checkout link for a person. All payments are final, no refunds; to cancel a month, email [email protected]. Then subscription_status shows when it is active. Cheaper start: 5 free runs a day signed in, then a run pack (100 runs for $1, product_checkout).

    payer_wallet rail

  26. subscription_statusRead only

    Your Lab access and your runs

    Requires a JWT or an rk_ key. Read-only. Your own access: studio (true = full access), access (rent | holder | house | none …), current_period_end, tier, full_access, and the ladder — free runs a day, the run pack (product_id, price, how to buy) and the Lab month (subscribe). free_tier_status shows today's runs left.

  27. tools_catalogRead only

    Find any Rokha tool

    tools/list carries the `core` set only; this finds the rest, and every tool is callable whether or not it is listed. No arguments: the toolsets with counts. `query`: words matched against every tool's name, title and description — one line per hit (name · title · toolset). `toolset`: one set in full (build · agents · sell · lab · signet · tasks · about). `name`: one tool's complete definition, inputSchema included — call it next. To list a set from connect time put ?toolset=build,agents (or all) on the server URL.

    name query toolset

  28. trace_getRead only

    Trace Get

    READ one trace in full (input, result, status, timing) by `id`, or a whole run by `run_id` (status, steps with their trace ids, output, every trace). Signed in (Authorization: Bearer <token>): your own traces. No token: a PUBLIC rig's run is readable by anyone holding its trace id or run id — the runner's identity is stripped. Anything else answers not-found. REST twins: GET /api/traces/<id> · GET /api/rigs/runs/<run_id>.

    id run_id

  29. trace_searchRead only

    Read what a run actually did

    List your Traces — the durable record of what a run DID, newest first. This is the other half of rig_run: a run reports that it started, and the trace is where the answer lands. Without it an agent can run a rig and never learn whether it worked, which makes the run untestable. Filter by `rig_id` (this rig's runs), `parent_trace_id` (the STEPS under one run — this is how you see which steps ran and which were skipped by a guard), `trace_kind` ('run' for the containers, 'atomic' for individual steps), `run_id` (every trace ONE run wrote — the id rig_run and POST /api/rigs/run return), `node_id` or `status`. Signed in: your own traces. Anonymous: pass `run_id` to read a PUBLIC rig's run (anyone holding the id may; the runner's identity is stripped). A private run answers not-found, never forbidden.

    limit node_id parent_trace_id rig_id run_id status trace_kind

  30. x_account_auditRead only

    Audit an X account — is the following real?

    Rokha's account auditor: give it any X @handle and get an organic-ness audit — 0–100 score, ORGANIC/MIXED/SMOKE verdict, and the promotional-worth anchor in X-algorithm engagement units (reply 13.5 · quote 1.5 · repost 1.0 · like 0.5). Hard metrics from X's own numbers: engagement rate vs follower count, reply share (the hardest signal to buy), engagement variance across posts (bought engagement is flat), account age vs follower velocity. `deep: true` (the Lab) also returns a bounded reply_sample for judging reply QUALITY — generic bot-isms vs real human reaction. Honest scope: declared limits on what a public-API sample can prove. Signed in: one free audit a day, then $0.02 a call in packs of 50 (signed out it answers with the price); the Lab runs its own daily lane. Returns `result_url`, the link to this audit's full card.

    deep handle

Is this yours?

Claim it to hear the moment it breaks, correct this page and add your own ways to use it.

A test is the handshake and the tool list: no tool was called. Names and descriptions are as listed by whoever registered the server; we haven't checked them.

Back to Tested MCP Servers