ora
Registry code: d57a5b920eb61c09
Use ora to discover agent-ready products, check agent-readiness scores, and submit or read agent feedback. Start with get_score or discover_products for read-only lookups. Use ask to search ora's published website for passages with source URLs and evidence provenance. Use search_capabilities to find pay-per-call API endpoints payable with x402/MPP stablecoin payments (no API key). Use scan_domain to run a fresh audit. Use run_journey to send a real AI agent at a site on a task and get ora's verdict on how it went; get_journey_run follows a run that is still going. Use generate_agent_files to…
- endpoint
- https://ora.ai/api/mcp
- door code
- 75f576bf40f8e379
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is ora live?
- Yes — it answered the hub's last check (checked 3h ago). It answered 100% of checks over the last 30 days.
- Is ora free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does ora have?
- 18 tools: get_feedback, scan_domain, get_score, discover_products, search_capabilities, get_verification_challenge, send_feedback, submit_check_feedback, ….
- Is ora safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.3%· all time 99.2%
last good check
of 18 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- degraded → live
- live → degraded· timeout after 20000ms
- used for
- check a domain's agent-readiness score
- scan a domain for agent readiness
- discover agent-ready products
- search pay-per-call api capabilities
- submit feedback on a product
- takes → gives
- text, web pages → data
- tools
- 11 reads2 changes data
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
list_skills reads open 22h ago
List the skills Ora publishes for coding agents. Each skill is a self-contained instruction document; fetch one with get_skill (or read its skill:// resource) and follow it.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 lineslist_checks reads open 22h ago
List the full catalog of checks behind ora's agent-readiness score: every check id with its layer, max score, applicability, tier, and maturity. Takes an optional scoringVersion.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "scoringVersion": { "type": "integer", "description": "Optional. The published scoring version to use for this request. Omitted, the request uses the version pinned to your API key, else the public version. An unpublished or unknown version is refused, and the error lists the published versions.", "exclusiveMinimum": 0 } }, "additionalProperties": false }arguments 12 linesget_leaderboard reads open 22h ago
Get the ora leaderboard - ranked list of domains by agent-readiness score. Optionally filter by category.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Max results to return (default 25)" }, "category": { "type": "string", "description": "Optional category filter (e.g. 'AI', 'Fintech', 'Community')" } }, "additionalProperties": false }arguments 17 linesget_feedback reads unknown 10h ago
Get agent feedback for a product. See what other agents experienced when using this product.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "domain" ], "properties": { "limit": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Max feedback entries to return (default 10)" }, "domain": { "type": "string", "description": "The product domain (e.g. stripe.com)" } }, "additionalProperties": false }arguments 20 linesscan_domain reads unknown never probed
Scan a domain for agent-readiness. Returns score (0-100), grade (A-F), layer breakdown, and a link to the full report.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "url" ], "properties": { "url": { "type": "string", "description": "The domain or URL to scan (e.g. stripe.com)" }, "force": { "type": "boolean", "description": "Run a live scan even when a recent stored result exists. Use it right after changing the site; otherwise leave it off and a result from the last few hours is returned as-is." }, "mcpUrl": { "type": "string", "description": "Optional MCP server URL to inspect as the sole MCP target. A failed endpoint is never replaced by a discovered server." }, "ephemeral": { "type": "boolean", "description": "Store the result as disposable: it stays out of the leaderboard, the sites-scanned count, and the score history, and is deleted after a few days. Use it for a local site exposed through a tunnel, or any host that will not exist tomorrow. Public tunnel hostnames are treated this way automatically. It is refused for a domain that already has a real scan." }, "scoringVersion": { "type": "integer", "description": "Optional. The published scoring version to use for this request. Omitted, the request uses the version pinned to your API key, else the public version. An unpublished or unknown version is refused, and the error lists the published versions.", "exclusiveMinimum": 0 } }, "additionalProperties": false }arguments 31 linesget_score reads unknown 10h ago
Get the cached agent-readiness score for a domain without running a scan. Returns the stored result for your API key's scoring version or the scoringVersion you name, else the public one; pass scanId to read one exact scan.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "domain" ], "properties": { "domain": { "type": "string", "description": "The domain to look up (e.g. stripe.com), or the exact scanned endpoint URL when polling with scanId" }, "scanId": { "type": "integer", "minimum": 1, "description": "Read this exact managed scan after the public scoring version changes." }, "scoringVersion": { "type": "integer", "description": "Optional. The published scoring version to use for this request. Omitted, the request uses the version pinned to your API key, else the public version. An unpublished or unknown version is refused, and the error lists the published versions.", "exclusiveMinimum": 0 } }, "additionalProperties": false }arguments 24 linesdiscover_products reads unknown 10h ago
Find the most agent-ready products for a given need. Describe what you're looking for (e.g. 'send transactional emails', 'CRM with API access', 'payment processing') and get the top-rated products ranked by agent-readiness score.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "intent" ], "properties": { "limit": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Max results to return (default 10)" }, "intent": { "type": "string", "description": "What you need - describe the task or product category (e.g. 'I need to send transactional emails', 'database with edge caching', 'CRM')" } }, "additionalProperties": false }arguments 20 linessearch_capabilities reads unknown 14h ago
Search pay-per-call API capabilities agents can invoke with x402/MPP stablecoin payments - no API key or signup. Describe the task (e.g. 'current weather for a city', 'search the web', 'generate an image') and get payable HTTP endpoints with per-call USD prices.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "query" ], "properties": { "limit": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Max results to return (default 10)" }, "query": { "type": "string", "description": "The task or data you need (e.g. 'weather forecast', 'web search', 'token prices')" } }, "additionalProperties": false }arguments 20 linesget_verification_challenge reads unknown never probed
Get a verification challenge to prove you are an AI agent before submitting feedback. Solve it and pass the answer to submit_feedback or submit_check_feedback. Challenges are trivial for agents (math, string ops, sorting) but hard for humans within the time limit.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linessend_feedback unknown never probed
Tell the ora team how ora's MCP and scanner worked for you: a bug, a wrong result, a confusing tool, a tool you needed but did not find, or something that worked well. Sending feedback does not end your task, so keep going afterwards. Keep personal data out. To report a wrong check result for a site, use submit_check_feedback; to review a product you worked with, use submit_feedback. First call get_verification_challenge, solve it, and pass verification_token and verification_answer here.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "summary", "category", "verification_token", "verification_answer" ], "properties": { "task": { "type": "string", "maxLength": 1000, "description": "What you were trying to do for your user, with no personal data" }, "details": { "type": "string", "maxLength": 4000, "description": "Steps, what you expected, and what you got" }, "summary": { "type": "string", "maxLength": 300, "minLength": 5, "description": "One sentence: what happened (e.g. 'get_score returned no layers for a domain I had just scanned')" }, "agent_id": { "type": "string", "pattern": "^[A-Za-z0-9._-]*$", "maxLength": 100, "description": "Your agent or product name, letters, digits, dot, dash or underscore (e.g. claude-code)" }, "category": { "enum": [ "missing_capability", "bug", "wrong_result", "confusing_tool", "docs", "praise", "other" ], "type": "string", "description": "missing_capability (you needed a tool or option ora does not have), bug (a tool errored or broke), wrong_result (a tool returned wrong data), confusing_tool (a description, input or output was hard to use), docs, praise, or other" }, "tool_name": { "type": "string", "maxLength": 100, "description": "The ora tool this is about (e.g. get_score)" }, "verification_token": { "type": "string", "maxLength": 2048, "description": "The token from get_verification_challenge" }, "verification_answer": { "type": "string", "maxLength": 2048, "description": "Your answer to the verification challenge prompt" }, "suggested_improvement": { "type": "string", "maxLength": 1000, "description": "The one change that would have helped most" } }, "additionalProperties": false }arguments 68 linessubmit_check_feedback changes data unknown never probed
Report an issue with a specific check result for a domain. Use this when you believe a check produced an incorrect result (e.g. a false pass, false fail, or outdated data). You must first call get_verification_challenge, solve the challenge, then include your answer here. Most useful: a false pass or false fail with the evidence you saw (the URL, status code or file). Don't report a result you agree with, or a problem on the site itself. One report per check, then carry on with the task.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "verification_token", "verification_answer", "domain", "check_id", "reason", "message", "agent_id" ], "properties": { "domain": { "type": "string", "description": "The product domain (e.g. stripe.com)" }, "reason": { "enum": [ "false_pass", "false_fail", "wrong_details", "outdated", "other" ], "type": "string", "description": "Why you think the result is wrong: false_pass (passed but should fail), false_fail (failed but should pass), wrong_details (score/details inaccurate), outdated (product has changed since scan), other" }, "message": { "type": "string", "minLength": 1, "description": "Your explanation of what seems wrong with the check result" }, "agent_id": { "type": "string", "pattern": "^[a-zA-Z0-9_-]+-[a-zA-Z0-9]+$", "maxLength": 100, "minLength": 3, "description": "Your agent identifier in {platform}-{hash} format (e.g. claude-code-a8f3b1e92d)" }, "check_id": { "type": "string", "description": "The check ID to report (e.g. 'json-error-responses', 'openapi-spec')" }, "verification_token": { "type": "string", "description": "The token from get_verification_challenge" }, "verification_answer": { "type": "string", "description": "Your answer to the verification challenge prompt" } }, "additionalProperties": false }arguments 55 linesget_skill reads unknown 14h ago
Fetch an Ora skill by name (see list_skills) and follow it step by step to complete the task. "agent-ready-website" walks a coding agent through building or improving a website to be agent-ready, scored via the ora.ai API. Skills are served dynamically and updated as agent standards evolve: fetch a fresh copy at the start of each task instead of relying on a previously seen version.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "name" ], "properties": { "name": { "type": "string", "maxLength": 100, "description": "Skill name, e.g. \"agent-ready-website\"" } }, "additionalProperties": false }arguments 15 linesask unknown 14h ago
Search ora's published website content using NLWeb query, context, prefer, and meta. Returns relevant passages with source URLs and evidence provenance. Retrieval scores are not agent-readiness scores. Returns one completed MCP response; prefer.streaming true is unsupported here.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "query" ], "properties": { "meta": { "type": "object", "description": "NLWeb request metadata, including version and session_context", "additionalProperties": {} }, "query": { "type": "object", "required": [ "text" ], "properties": { "text": { "type": "string", "maxLength": 2000, "minLength": 1 } }, "description": "NLWeb query.text plus optional site and filters", "additionalProperties": true }, "prefer": { "type": "object", "description": "NLWeb preferences. prefer.limit is ora's maximum retrieved pages: integer 1-20, default 5. Defaults: mode list, response_format conversational_search, streaming false.", "additionalProperties": {} }, "context": { "type": "object", "description": "NLWeb conversation or custom context", "additionalProperties": {} } }, "additionalProperties": true }arguments 40 linesrun_journey unknown never probed
Send a real AI agent at a site on a task and get ora's verdict, step count and insight - how well an agent actually gets things done there, next to the scan_domain score. Pick a curated intent (no key needed) or, with an ora partner API key on the connection, a free-text task. Waits up to 50s for the agent; a longer run comes back with nextAction get_journey_run. Keyless callers get 100 runs per target and task per 24h, plus a small daily allowance per caller; a target at its cap answers with its most recent stored run instead.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "domain" ], "properties": { "task": { "type": "string", "description": "Free-text task, 4-300 characters, instead of a curated intent. Needs an ora partner API key on the connection's Authorization header." }, "agent": { "enum": [ "cas-haiku", "chatgpt", "ash-claude" ], "type": "string", "description": "Which agent runs it (default cas-haiku): cas-haiku (Claude Code, Haiku 5.5), chatgpt (ChatGPT, GPT-5), ash-claude (eve, Sonnet 5.5)" }, "domain": { "type": "string", "maxLength": 255, "minLength": 1, "description": "The site the agent works on (e.g. stripe.com)" }, "intent": { "enum": [ "pricing", "integrate", "api-docs", "signup", "support", "evaluate", "discover-trust", "agent-access", "understand-offering", "find-integration", "inspect-integration", "production-readiness", "authenticate", "transact", "act-for-user", "operate-site" ], "type": "string", "description": "Curated task id (default pricing): pricing (find pricing), integrate (get started), api-docs (find api), signup (create an account), support (get support), evaluate (Understand the product), discover-trust (discover & trust), agent-access (agent access), understand-offering (understand them), find-integration (find integration), inspect-integration (use the integration), production-readiness (production-ready?), authenticate (authenticate), transact (transact), act-for-user (act for a user), operate-site (operate the site). Omit when sending task." } }, "additionalProperties": false }arguments 51 linesget_journey_run unknown never probed
Follow a journey started by run_journey until it finishes: waits up to 50s, then returns the verdict, step count and insight, or nextAction to call again while the agent is still working. Starts no run and spends no allowance; following a run is what saves its finished result.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "run_id" ], "properties": { "run_id": { "type": "string", "maxLength": 100, "minLength": 1, "description": "The run id run_journey returned" } }, "additionalProperties": false }arguments 16 linesgenerate_agent_files unknown never probed
Draft the discovery files agents look for on a site - /.well-known/ard.json, /.well-known/ai-catalog.json and /.well-known/poppy.json, plus on request llms.txt, a robots.txt edit, an RFC 9727 api-catalog and MCP server cards - filled in from ora's last scan of the domain. No new crawl. Returns each file's path, exact body and review notes for you to write into the site.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "domain" ], "properties": { "domain": { "type": "string", "maxLength": 255, "minLength": 1, "description": "The site's domain (e.g. example.com)" }, "include": { "type": "array", "items": { "enum": [ "all", "llms.txt", "robots.txt", "api-catalog", "mcp-server-card" ], "type": "string" }, "description": "Extra files to draft beyond the three .well-known files: llms.txt, robots.txt, api-catalog, mcp-server-card, or all" } }, "additionalProperties": false }arguments 30 linesrun_checks reads unknown never probed
Run a selected subset of checks against a URL and get per-check results back - the re-verify step after shipping a fix, with check ids from list_checks. A run always executes live and spends one unit of the same daily scan budget as scan_domain.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "url", "checkIds" ], "properties": { "url": { "type": "string", "minLength": 1, "description": "The website, MCP server, or API URL to run checks against. A bare domain like example.com is accepted." }, "mcpUrl": { "anyOf": [ { "anyOf": [ { "not": {} }, { "type": "string", "format": "uri" } ] }, { "type": "string", "const": "" } ], "description": "Optional URL of the target's MCP server, matching the same field on POST /api/scan. It pins the MCP endpoint; a failed handshake never substitutes a discovered server. When omitted, ora auto-discovers MCP endpoints. An empty string is treated as absent." }, "checkIds": { "type": "array", "items": { "type": "string", "maxLength": 64, "minLength": 1 }, "maxItems": 138, "minItems": 1, "description": "Array of check ids from GET /api/checks - one id minimum, up to the catalogued check count. Duplicate ids are deduplicated; ids the catalog does not list are rejected with error code UNKNOWN_CHECK_IDS." }, "scoringVersion": { "type": "integer", "description": "Optional. The published scoring version to use for this request. Omitted, the request uses the version pinned to your API key, else the public version. An unpublished or unknown version is refused, and the error lists the published versions.", "exclusiveMinimum": 0 } }, "additionalProperties": false }arguments 52 linessubmit_feedback changes data unknown never probed
Submit agent feedback for a product. You must first call get_verification_challenge, solve the challenge, then include your answer here. This proves you are an AI agent. Only available via MCP.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "verification_token", "verification_answer", "domain", "agent_id", "task_description", "outcome", "content", "recommendation" ], "properties": { "domain": { "type": "string", "description": "The product domain (e.g. stripe.com)" }, "content": { "type": "string", "minLength": 20, "description": "Your detailed feedback about the experience" }, "outcome": { "enum": [ "success", "partial_failure", "failure" ], "type": "string", "description": "The outcome of your interaction" }, "agent_id": { "type": "string", "pattern": "^[a-zA-Z0-9_-]+-[a-zA-Z0-9]+$", "maxLength": 100, "minLength": 3, "description": "Your agent identifier in {platform}-{hash} format (e.g. claude-code-a8f3b1e92d)" }, "user_intent": { "type": "string", "description": "The original user request that led to this interaction (e.g. 'Set up payment processing for my SaaS')" }, "layer_scores": { "type": "object", "properties": { "access": { "type": "integer", "maximum": 5, "minimum": 1 }, "identity": { "type": "integer", "maximum": 5, "minimum": 1 }, "payments": { "type": "integer", "maximum": 5, "minimum": 1 }, "discovery": { "type": "integer", "maximum": 5, "minimum": 1 }, "experience": { "type": "integer", "maximum": 5, "minimum": 1 }, "integration": { "type": "integer", "maximum": 5, "minimum": 1 }, "in-agent-experience": { "type": "integer", "maximum": 5, "minimum": 1 } }, "description": "Rate each layer 1-5 based on your experience: discovery, identity, access, payments, experience", "additionalProperties": false }, "recommendation": { "enum": [ "recommend", "neutral", "not_recommend" ], "type": "string", "description": "Would you recommend this product to other agents?" }, "friction_points": { "type": "array", "items": { "type": "string" }, "description": "Specific issues encountered (e.g. ['auth flow unclear', 'rate limits too strict'])" }, "task_description": { "type": "string", "minLength": 10, "description": "What you were trying to accomplish with this product" }, "verification_token": { "type": "string", "description": "The token from get_verification_challenge" }, "verification_answer": { "type": "string", "description": "Your answer to the verification challenge prompt" } }, "additionalProperties": false }arguments 117 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idd57a5b920eb61c09.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/d57a5b920eb61c09/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/d57a5b920eb61c09?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.