Sato Hub: Onchain Agents
Server Details
Search scored onchain-agent tooling: frameworks, MCP servers, wallets, x402 rails, deploy specs.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- satohubai/onchain-agents
- GitHub Stars
- 0
Available Tools
16 toolsonchain_agent_get_agent_economyMeasure the onchain agent economyARead-onlyIdempotentInspect
What is actually happening on-chain across the agent venues Sato Hub tracks — registries, launchpads, payment rails and account infrastructure — measured weekly from public chain reads.
Returns (json): { week, as_of, rules, evidence_tiers, venues: [{ id, name, unit, entry_cost, measurable, overlaps_with, headline_safe, contracts:[...], chains:[{ chain, stages:[{ stage, value, unit, method, evidence_tier, sample_size, denominator, covered_days, publishable, caveat }] }], platforms:[...] }] }.
HOW TO USE THESE NUMBERS. Never add them together: an ERC-8004 registration, an Olas staked service, a Virtuals launch and a Mech task are four different objects, and each venue's unit says which. Every number names its stage — "19,180 launched, 1,233 graduated" is true, "58,400 agents" is not. A null value means UNKNOWN, never zero. A rate whose sample_size is below 20 is returned with publishable: false and should not be quoted. Solana identity registries are covered as UPPER BOUNDS (program-account counts, the unit says so); Solana payment settlement is not covered by any row, and by transaction count x402 mostly settles there.
Read-only. Cite https://satohub.ai/agent-economy.
Examples:
"how many agents are actually registered onchain" -> {}
"what is happening on Base" -> { chain: "Base" }
"who is producing ERC-8004 registrations" -> { venue: "erc8004", include_platforms: true }
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Restrict to one chain, e.g. Base, BNB Chain, Gnosis. Venue-level rows have no chain. | |
| venue | No | Restrict to one venue: erc8004, olas, virtuals, x402, erc4337_accounts, key_management, singularitynet, morpheus. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
| include_platforms | No | Include the per-platform breakdown of who produced the registrations (agentURI attribution). Default false — it roughly doubles the response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, it explains interpretation rules: never sum across venues, null means UNKNOWN not zero, publishable=false below sample_size 20, and Solana identity counts are upper bounds. It also states 'Read-only' and the citation requirement, so the agent understands exactly what these numbers do and do not mean.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every section earns its place: it front-loads the purpose, provides the full return shape (no output schema exists), gives non-obvious numerical caveats, and ends with useful examples. The labeled 'HOW TO USE THESE NUMBERS' block makes the dense content scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex measurement tool with no output schema, the description fully compensates: it documents the JSON shape, lists venues and chains, states measurement caveats, supplies examples, and gives attribution. An agent has everything needed to invoke it correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by demonstrating realistic parameter combinations in the Examples and explaining the consequence of include_platforms ('roughly doubles the response'), which goes beyond the schema's one-line descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb-resource pair ('Measure the onchain agent economy') and then sharpens it: 'registries, launchpads, payment rails and account infrastructure — measured weekly from public chain reads.' This distinguishes it from sibling read/search/wiki tools by naming the exact measurement scope and cadence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Examples section gives concrete triggering questions and maps them to parameter payloads (e.g. 'what is happening on Base' -> { chain: 'Base' }), which tells an agent when to call the tool. It does not explicitly contrast with sibling tools or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_get_agent_passportLook up one registered agentARead-onlyIdempotentInspect
Get the full Sato Agent Passport manifest (sato.agent.manifest/v1) for one REGISTERED agent by slug: identity (sato_agent_id), agent types, chains, model/framework, the stack of Sato Hub directory resources it runs on, links, payment/x402 endpoint metadata, and verification + liveness status. Use onchain_agent_search_agents to find slugs.
Payment metadata is self-configured by the creator — published for interoperability, not as an endorsement. Returns an error if the slug is unknown or the agent is not listed. Read-only.
Example: { slug: "my-trading-agent" }
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The registered agent's slug, e.g. 'my-trading-agent'. Use onchain_agent_search_agents to find slugs. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint/idempotentHint annotations by disclosing that an error is returned if the slug is unknown or the agent is not listed, and by adding a meaningful caveat that payment metadata is self-configured and published for interoperability rather than as an endorsement. It also explicitly confirms the read-only nature, aligning with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a front-loaded main clause, a usage pointer, a caveat, an error-behavior note, and an example. The first sentence is somewhat long because it enumerates many manifest fields, but this is justified given there is no output schema and those details help an agent anticipate the return content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with two well-documented parameters and no output schema, the description is complete: it names the return contents, identifies how to discover valid slugs, notes failure behavior, clarifies a potential trust concern, and confirms non-destructiveness. No critical context an agent would need to call this tool successfully is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both 'slug' and 'response_format'. The description reinforces the slug semantics and provides an example, but it does not add meaning beyond the schema, such as clarifying response_format behavior or edge cases. A baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the full Sato Agent Passport manifest (sato.agent.manifest/v1) for one REGISTERED agent by slug.' It clearly differentiates this from sibling get_* tools by naming the unique resource type and outcome, and the title 'Look up one registered agent' reinforces this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool — when you need the full passport manifest for one registered agent — and explicitly names onchain_agent_search_agents as the way to find slugs, which is a useful pointer to an alternative tool. It stops short of explicitly stating when not to use this tool or contrasting it with other get_* siblings, but the guidance is sufficient for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_get_changesSync a copy of the directoryARead-onlyIdempotentInspect
What changed in the Onchain Agent directory since a given date — additions, per-resource change events, and retirements. Use this to keep a local copy in sync instead of re-fetching the whole catalog.
Returns (json): { since, until, window_days, counts:{added,changed,removed}, added:[...], changed:[{slug,name,url,events:[...]}], removed:[...], coverage:{...}, full_export }.
COVERAGE (also stated in the response): added is exact. updated is a field-level diff of every catalog field between the snapshot on baseline_date and the live record — complete at daily resolution, so a quiet copy edit IS caught; store baseline_date as your cursor. changed is the richer event log (score moves, releases, verification) and explains WHY. removed is approximate. Mirror from added + updated + removed. Read-only.
Examples:
"what's new this week" -> { since: "2026-08-23" }
"sync my copy" -> { since: }
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Return everything that changed since this ISO date. Defaults to 14 days ago. Clamped to the 90-day supported window. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, openWorldHint, destructiveHint), the description adds substantial behavioral detail: `added` is exact, `updated` is a field-level diff that catches quiet edits, `changed` is the richer event log, `removed` is approximate, and the suggested mirror strategy. It also explicitly says 'Read-only.' No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by a concise return schema, a clarity-enhancing coverage section, and practical examples. Every sentence earns its place by providing non-obvious details such as approximation caveats and cursor advice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description compensates by fully explaining the returned JSON shape and the meaning of each coverage category. It also addresses sync semantics, read-only behavior, and gives usage examples. The only minor gap is not explicitly contrasting with recent_changes, but the description is otherwise complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter `since` is fully documented in the schema (100% coverage), including format, default, and clamping. The description adds practical use-case examples showing how to set `since` for different intents, which enriches the semantic meaning beyond the raw schema. This is above the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns what changed in the Onchain Agent directory since a given date, including additions, change events, and retirements. This clearly communicates the tool's function, though it does not explicitly distinguish itself from the similarly named sibling onchain_agent_recent_changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: 'Use this to keep a local copy in sync instead of re-fetching the whole catalog.' It also provides two concrete examples ('what's new this week' and 'sync my copy'). It does not explicitly state when not to use it or name alternative sibling tools, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_get_deploy_specGet install steps that were actually runARead-onlyIdempotentInspect
USE WHEN you are about to write setup instructions or install something for a user and want steps that were verified rather than copied from a README. Returns the structured deploy manifest for one resource by slug — everything needed to install and instantiate it: runtime, install command(s), entry snippet, required keys/env/wallet/RPC, chains, license, whether it is itself an MCP server, and a deploy_status.
deploy_status is a trust signal, NOT a safety guarantee: "verified" = the install path was reproduced/confirmed from the project's docs; "self_reported" = parsed from the project's README and not independently reproduced. Always verify keys, permissions, and funds before running anything.
Returns (json): { slug, name, github_url, docs_url, deploy_spec: { runtime, install[], entry, requires[], chains[], license, mcp_native, mcp_invocation?, deploy_clarity, deploy_status, source_url, as_of }, note }. Returns an error if the resource has no manifest yet (they are being rolled out resource by resource). Read-only.
Example: { slug: "solana-agent-kit" }
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The resource slug to get a deploy manifest for, e.g. 'solana-agent-kit'. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the readOnly/idempotent annotations: explains deploy_status as a trust signal rather than a safety guarantee, notes that missing manifests return an error, and includes a safety warning about verifying keys and permissions. Also explicitly states 'Read-only.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use trigger and organized into clear sections: use case, return shape, trust semantics, error behavior, and example. Slightly verbose but each sentence adds useful context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description provides a detailed return shape, explains deploy_status semantics, warns about safety, and documents error conditions. This is enough for an agent to know what to expect and how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for both params, so the schema already carries the parameter documentation. The description adds an example for slug but does not meaningfully elaborate on response_format or go beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb+resource: returns the structured deploy manifest for one resource by slug, including install commands and runtime. It clearly differentiates itself from sibling tools by focusing on verified install/deploy information rather than general resource info, metrics, news, or wiki pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Starts with 'USE WHEN you are about to write setup instructions or install something' which gives a clear trigger and context. It does not explicitly name alternatives or exclusion conditions, but the intended use case is strongly implied and distinguishable from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_get_metricsLive ecosystem numbers, read from chainARead-onlyIdempotentInspect
USE WHEN you need a current, citable figure for the onchain agent ecosystem rather than a number from an article of unknown age. The ERC-8004 Identity Registry registered-agent count (read directly from Ethereum mainnet) and the curated Top Project Tokens index (only tokens of directory-listed projects — never the whole agent-token category or its aggregate market cap).
Returns (json): { erc8004: { network, registered_agents, live, checked_at }, top_agent_tokens: [{ symbol, name, current_price, market_cap, price_change_percentage_24h, resource_slug }] }. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| token_limit | No | How many top project tokens to include (1-25, default 12). | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, and the description reinforces this with 'Read-only.' Beyond annotations, it discloses the data source (Ethereum mainnet ERC-8004 registry), the inclusion rule for the token index (only directory-listed projects, never the whole category or aggregate market cap), and the exact return shape. This is substantial behavioral detail that helps an agent trust and interpret the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a front-loaded usage trigger, a compact explanation of what is included and excluded, and an inline return schema. It is slightly long but justified because there is no separate output schema in the definition and the exact semantics of the curated index need clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description compensates by embedding the JSON return structure. It also explains what each number represents, how the agent count is sourced, and what the token index intentionally excludes. Combined with the annotation set, nothing critical is missing for an agent to decide whether and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters (token_limit, response_format) have clear inline descriptions, defaults, bounds, and enums. The description does not need to add parameter syntax, and it does not; it focuses output semantics instead, which is appropriate. Baseline 3 is the right level because the schema already carries the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: retrieving live ecosystem metrics, specifically the ERC-8004 registered-agent count and the curated Top Project Tokens index. It describes the resource and scope in enough detail to distinguish it from sibling tools like news, changes, or resource lookups, even though it does not name an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit 'USE WHEN' condition: a current, citable figure is needed, and it draws a contrast with 'a number from an article of unknown age.' This gives clear context and a when-not-to-use signal, though it does not name an alternative sibling tool as the preferred replacement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_get_newsRecent crypto-agent releases and newsARead-onlyIdempotentInspect
USE WHEN asked what is new or what shipped recently in crypto AI agents, and you want dated, source-attributed items rather than undated blog posts. Official releases (GitHub), project announcements, and reputable RSS — strongly filtered to the agent economy. Filter by kind (release/tweet/news/research) and/or chain; paginate via limit/offset.
Returns (json): { total, count, offset, has_more, next_offset?, news: [{ kind, title, summary, url, source, author_handle, chains, resource_slug, published_at }] }. Read-only.
Example: { kind: "release", limit: 10 }
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Filter by item kind: release, tweet, news, or research. | |
| chain | No | Filter to items tagged with this chain. | |
| limit | No | Max results to return (1-50, default 20). | |
| offset | No | Results to skip, for pagination (default 0). | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive, and the description reinforces 'Read-only' while adding meaningful behavioral detail: results are source-attributed, filtered to the agent economy, and paginated. It also discloses the exact JSON return shape including pagination fields such as total, count, offset, has_more, and next_offset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the trigger condition, followed by source scope, filtering options, pagination, return shape, and a compact example. Every sentence earns its place, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description compensates by providing a full return-shape sketch and pagination semantics, so an agent can predict what the tool returns. Combined with fully documented parameters and safety annotations, nothing essential for selecting or invoking this read-only tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, enums, defaults, and bounds, so the description does not need to add much. The example and the mention of filtering/pagination are convenient, but they add no semantic content beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific trigger ('asked what is new or what shipped recently in crypto AI agents') and names the resource: dated, source-attributed news/releases in the agent economy. It differentiates from siblings like get_changes/recent_changes by emphasizing GitHub releases, project announcements, and RSS rather than edit/change logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool and gives selection criteria ('dated, source-attributed items rather than undated blog posts'). It also explains filtering by kind/chain and pagination, but it does not name sibling alternatives directly, so the when-not guidance is clear but not tool-to-tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_get_resourceCheck one project in detailARead-onlyIdempotentInspect
USE WHEN you need to judge one specific project — is it open source, still maintained, who is behind it, what does it support. Returns the full record by slug, optionally with its recent releases and posts. Find the slug with onchain_agent_search_resources first.
Returns (json): { resource: {...full record incl. marketplace + liveness fields}, recent_activity: [...] }. Returns an error if the slug is unknown or the resource is Deprecated. Read-only.
Example: { slug: "coinbase-agentkit" }
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The resource slug, e.g. 'coinbase-agentkit'. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
| include_activity | No | Include the resource's recent activity feed (releases/posts). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and idempotent; the description adds error behavior for unknown or Deprecated slugs and outlines the return payload (resource + recent_activity). The bare 'Returns (json)' is slightly ambiguous next to response_format's markdown default, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the when-to-use trigger, followed by return shape, error behavior, and an example. It is compact, though 'Read-only' duplicates the annotation and 'Returns (json)' could be phrased more carefully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-record lookup with no output schema, it covers purpose, prerequisite search step, return payload shape, error conditions, and safety behavior. An agent has enough information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so slug, response_format, and include_activity are already documented with defaults and enums. The description adds only a concrete slug example and restates that activity includes releases/posts, which is marginal beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific use case: judging a single project (open source, maintenance, authors, supported features). 'Returns the full record by slug' names the resource and key, and it explicitly points to onchain_agent_search_resources for slug discovery, distinguishing it from the search sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'USE WHEN you need to judge one specific project' gives a clear trigger, and 'Find the slug with onchain_agent_search_resources first' provides the prerequisite and named alternative. It does not enumerate when-not cases for the other get_* siblings, but the single-project scope makes those exclusions reasonably inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_get_wiki_pageExplain a crypto-agent conceptARead-onlyIdempotentInspect
USE WHEN asked to explain a crypto-agent concept — what x402 is, how agents hold wallets, what ERC-8004 does — and you want a sourced explainer you can cite. Returns a full wiki page by slug (summary, why it matters, how it works, key components, examples, risks, related resources/pages). Use onchain_agent_list_wiki_pages to find slugs.
Returns (json): the full page object. Returns an error if the slug is unknown. Read-only.
Example: { slug: "what-are-mcps" }
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The wiki page slug, e.g. 'what-are-mcps'. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent behavior, and the description adds useful behavioral details: it returns a full page object, returns an error for unknown slugs, and documents the content structure. There is minor ambiguity around the response_format default (markdown) versus the description's 'Returns (json)' phrasing, but no direct contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the usage trigger and stays reasonably compact while covering purpose, return structure, slug discovery, error behavior, and an example. Minor redundancy exists ('Read-only' repeats the annotation, and the 'Returns (json)' line could be clearer), but overall every section earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only wiki lookup with two parameters and no output schema, the description is largely complete: it explains what the page contains, how to find slugs, what errors to expect, and the response format option. The small ambiguity about markdown versus JSON output prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters and the default. The description adds an example slug and notes error behavior for unknown slugs, which adds some semantics, but it does not substantially expand on what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('explain') and resource ('crypto-agent concept'), lists concrete examples like x402 and ERC-8004, and enumerates the returned wiki page sections. It also distinguishes itself from sibling tools by directing users to onchain_agent_list_wiki_pages for finding slugs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit 'USE WHEN' triggers and tells users to use onchain_agent_list_wiki_pages to find slugs. It could be stronger in naming sibling alternatives like get_resource or search_agents, but it provides enough context for an agent to select this tool over the list/search siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_list_categoriesSee how the directory is organisedARead-onlyIdempotentInspect
List all resource categories with counts, most populated first. Useful before filtering onchain_agent_search_resources by category. Returns (json): { total, categories: [{ name, count }] }. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable context beyond that: the 'most populated first' ordering and the exact return shape ({ total, categories: [{ name, count }] }), which is especially helpful because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: behavior, use case, return shape, and read-only note. The core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple, read-only listing tool. It covers what the tool does, when it should be used, what it returns, and the fact that it is safe to call. The absence of an output schema is compensated for by the explicit return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional response_format parameter, so the description does not need to add parameter-level detail. The 'Returns (json)' line could be more precise given the default is markdown, but the input schema resolves that ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List all resource categories with counts, most populated first.' This clearly distinguishes it from siblings such as search_resources or list_chains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says it is useful before filtering onchain_agent_search_resources by category, giving an agent a concrete when-to-use signal and the name of the related sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_list_chainsSee which chains are coveredARead-onlyIdempotentInspect
List all blockchains represented in the directory with resource counts, spotlight chains first (Base, Ethereum, Solana, COTI, Injective…). Returns (json): { total, chains: [{ name, count }] }. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the annotations by disclosing the exact return shape ({ total, chains: [{ name, count }] }) and the spotlight-first ordering. It also reaffirms the read-only nature, consistent with the annotations. Minor ambiguity: it says 'Returns (json)' while the response_format parameter defaults to markdown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no filler. The main function is front-loaded, followed by the exact output shape and a short safety note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, this description is complete. It specifies the resource scope, output format, ordering, and read-only nature, giving an agent everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single optional response_format parameter is already fully documented. The description adds no additional parameter meaning, which is acceptable given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List all blockchains represented in the directory with resource counts'. It also clarifies the unique subject ('chains') against sibling list tools like onchain_agent_list_categories and onchain_agent_list_wiki_pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The title 'See which chains are covered' and the description's explicit mention of 'resource counts' and 'spotlight chains first' give clear context for when this is useful. It does not name alternatives or exclusion criteria, but the intended use case is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_list_wiki_pagesSee what concepts are explainedARead-onlyIdempotentInspect
List all Onchain Agent wiki pages (slug, title, keyword, summary, last_updated). Returns (json): { total, pages: [...] }. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
'Read-only' adds nothing beyond the readOnlyHint annotation, and the tool adds the return shape { total, pages: [...] }. However, 'Returns (json)' is contradictory with the response_format default of 'markdown' in the schema, so the description misrepresents the default response format. No pagination/ordering caveats are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence with the action and key fields front-loated, plus a terse read-only note. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter, well-annotated tool, the description supplies the necessary return-shape and field list because there is no output schema. It is slightly incomplere because it omits the markdown/json default caveat and does not route to get_wiki_page for a single page, though the schema mitigates the format issue.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description carries all parameter information (100% coverage): response_format enum, default, and meaning are fully documented in the input schema. The description contributes no additional parameter sematics and its 'Returns (json)' wording is ambiguous against the default, but the schema itself is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('List all Onchain Agent wiki pages') and enumerates the returned fields (slug, title, keyword, summary, last_updated). It clearly distinguishes from sibling get_wiki_page (single-page fetch) and list_categories (different entity) by emphasizing 'all pages'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies use when you need an inventory/overview of wiki pages, but it never explicitly says when to choose this over get_wiki_page or list_categories. No alternates, exclusions, or preconditions are given; the intended usage must be inferred from the name and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_recent_changesWhat changed in the ecosystemARead-onlyIdempotentInspect
Get recorded changes across the directory — the auditable Listing History. Omit slug for the SITE-WIDE feed (what changed across all listings); pass slug for ONE resource's history. Events: status flips, verification grants, Sato Score tier moves, liveness (a project going dormant or active again), new releases, and field enrichment. Derived from the daily snapshot time-series + the change-event log; high-signal only (passive score/liveness drift is suppressed).
Returns (json): { scope, total, changes: [{ date, kind, slug, name, title, detail?, tone }] }. tone is positive | negative | neutral. Read-only.
Example: { days: 7 } · { slug: "coinbase-agentkit" }
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days (1-90, default 14). | |
| slug | No | Limit to one resource's recorded history by slug. Omit for the site-wide feed across all listings. | |
| limit | No | Max changes to return (1-50, default 20). | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, and the description reinforces this with "Read-only." It adds valuable behavioral context beyond annotations by explaining the data provenance (daily snapshot time-series plus change-event log), the high-signal filtering policy, and the specific return shape including tone values. This is exactly the kind of transparency that helps an agent trust and interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: purpose, scope switching, event examples, data provenance, filtering behavior, return contract, and a compact usage example. It is well-organized, front-loads the core purpose, and avoids filler despite covering substantial detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly provides the JSON return shape and tone semantics. It covers scope modes, event categories, filtering behavior, data sources, read-only safety, and example invocations. For a fully optional-parameter read-only query tool, nothing essential is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds compact usage examples like { days: 7 } and { slug: "coinbase-agentkit" }, but the underlying semantics for slug, days, limit, and response_format are already fully documented in the input schema. The description mostly restates rather than meaningfully extends parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: "Get recorded changes across the directory — the auditable Listing History." It also enumerates concrete event types and distinguishes site-wide versus per-resource scope, which makes the tool's purpose obvious. However, it does not explicitly differentiate itself from the sibling onchain_agent_get_changes, leaving some chance of tool-selection confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear in-tool usage guidance: omit slug for the site-wide feed or pass slug for one resource's history. It also explains that passive drift is suppressed and that the tool is read-only. However, it never says when to prefer this tool over alternatives like onchain_agent_get_changes or onchain_agent_get_news, so the cross-tool usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_recommend_stackTurn a goal into a build stackARead-onlyIdempotentInspect
USE WHEN someone describes an agent they want to build and needs concrete components rather than general advice. Give it the goal in plain words; it returns a trust-ranked stack of real directory resources — bucketed into slots (framework, wallet, payments, trading, data, MCP tooling, security), each pick carrying its Sato Score, liveness, and deploy-spec status, plus honest gaps where the directory has no strong match. Ranking reflects openness/activity/verifiability — never a safety, quality, or returns judgment. Read-only.
Example: { goal: "trading agent on Base with x402 payments", chain: "Base" }
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | What the agent should do, in plain words — e.g. 'trading agent on Base with x402 payments' | |
| chain | No | Preferred chain (e.g. Base, Solana) | |
| max_per_slot | No | Max picks per stack slot (default 3) | |
| verified_only | No | True = only picks whose documented install was reproduced in a container by Sato Hub. Slots with no verified pick are reported in `gaps` rather than widened. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description discloses that ranking reflects openness/activity/verifiability and explicitly disclaims any safety, quality, or returns judgment. It also documents the 'honest gaps' behavior when no strong directory match exists, adding real behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the use trigger, then compactly covers output composition, per-pick fields, ranking caveats, and an example. Every sentence contributes information without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description takes on the burden of describing return values and does so concretely: trust-ranked stack, slot buckets, Sato Score, liveness, deploy-spec status, and gaps. The example and annotations complete the picture for an agent deciding whether to call it and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to re-document parameters. The added example with goal and chain illustrates parameter usage, but most parameter meaning is already carried by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: turning a plain-language goal into a trust-ranked stack of directory resources bucketed into slots. This clearly distinguishes it from sibling get/search tools, which fetch or search individual resources rather than assembling a build stack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with an explicit 'USE WHEN' trigger: someone describes an agent they want to build and needs concrete components rather than general advice. It does not name sibling alternatives like onchain_agent_search_resources, but the selection context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_search_agentsFind live registered agentsARead-onlyIdempotentInspect
Search REGISTERED onchain agents in the Sato Agent Registry — running agents whose creators registered them for a Sato Agent Passport (distinct from the resource directory, which lists the things agents are built FROM). Filter by free-text query, chain, agent_type, or x402_only. Only human-review-listed agents are returned.
Trust rule: registration is self-reported by the creator; verification_status distinguishes Self-Reported from evidence-reviewed Verified/Audited. Nothing here implies safety or performance.
Returns (json): { total, agents: [{ sato_agent_id, slug, name, description, agent_type, chains_supported, stack, payment/x402 metadata, verification_status, profile_url, manifest_url }] }. Read-only.
Example: { chain: "Base", x402_only: true }
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Filter to agents supporting this chain. | |
| query | No | Free-text search across agent name, description, creator, stack, and type. | |
| x402_only | No | True = only agents exposing an x402 payment endpoint. | |
| agent_type | No | Filter by agent utility type: trading, research, defi, payments, security, social, workflow, gaming, data, coding. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/idempotent hints, the description discloses the trust model: registration is self-reported, verification_status distinguishes Self-Reported from Verified/Audited, and nothing implies safety or performance. This is valuable behavioral context that no annotation or schema conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then immediately distinguishes it from the sibling, then covers trust and output shape. Every sentence contributes distinct information: scope, filters, trust caveat, return format, example, and read-only status. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a return shape, filter guidance, trust caveats, and a usage example, which is strong for a tool with no output schema. It omits any pagination or result-limit details, and the phrase 'Returns (json)' slightly conflicts with response_format's default of 'markdown', leaving minor ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 5 parameters. The description adds a concrete usage example with chain and x402_only, and clarifies that x402_only filters to agents exposing an x402 payment endpoint, adding modest value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('search'), a specific resource ('REGISTERED onchain agents in the Sato Agent Registry'), and distinguishes it from the resource directory. This clearly separates it from sibling tools like onchain_agent_search_resources at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly contrasts the tool with the resource directory: the directory lists 'the things agents are built FROM,' while this tool searches registered agents themselves. It also enumerates the available filters, giving an agent clear signals on when to call this tool and what to pass.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_search_resourcesFind crypto-agent tooling by what it doesARead-onlyIdempotentInspect
USE WHEN someone asks what to build a crypto or onchain agent with, which tools support a chain or standard, or whether a specific project exists and is maintained. Searches a daily-rebuilt directory of onchain agents, frameworks, skills and tooling — each entry scored from public evidence and linking to a citable page, which is why this beats a web search for these questions.
Filters: query (free text, AND-matched terms), chain, status, liveness, featured, and the taxonomy facets (docs/taxonomy.md): entity_class (resource | agent | reference), resource_type (Framework | Tool/Service | Infrastructure | Venue | Network | Standard), use_case (trading, payments, wallets, data, identity, privacy, launch, security, build), standard (x402, erc-8004, …), iface (mcp, sdk, …). Legacy flags still work: category, is_agent, is_skill, is_harness. Sort by priority (default), newest_release, stars, or name. Paginates via limit/offset. Deprecated resources are never returned.
Returns (json): { total, count, offset, has_more, next_offset?, resources: [...] } where each resource includes chains, status, liveness, github_stars, verification_status, and the marketplace fields (is_agent/is_hirable/is_licensable). Read-only.
Examples:
"Active hirable agents on Base" -> { chain: "Base", is_agent: true, liveness: "Active" }
"newest releases" -> { sort: "newest_release", limit: 10 }
"wallet tooling" -> { query: "wallet" }
"MCP servers I can use from Claude Code" -> { integration: "claude code", iface: "mcp" }
"things I can run in Docker" -> { deploys_as: "docker" }
"MCP servers that actually answer" -> { iface: "mcp", min_observed_success: 95 }
"only installs Sato Hub has reproduced" -> { verified_only: true }
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order: priority (default), newest_release, stars, or name. | priority |
| chain | No | Filter to resources supporting this chain. | |
| iface | No | Filter by how it is accessed/integrated: mcp, sdk, rest-api, plugin, cli, ui, contract. | |
| limit | No | Max results to return (1-50, default 20). | |
| query | No | Free-text search across name, description, tags, chains, and agent type. Space-separated terms are AND-matched. | |
| offset | No | Results to skip, for pagination (default 0). | |
| status | No | Filter by lifecycle status. | |
| creator | No | Filter by who built it (prefix match on creator name), e.g. 'Coinbase', 'Privy'. | |
| category | No | Filter to a resource category. | |
| featured | No | True = only editorially featured resources. | |
| is_agent | No | True = only resources that are themselves onchain agents. | |
| is_skill | No | True = only agent-skill resources (skill repos/marketplaces). | |
| liveness | No | Filter by activity recency: Active (≤30d), Recent (≤90d), Quiet (≤1y), Dormant (>1y). | |
| standard | No | Filter to resources supporting a standard: x402, erc-8004, erc-8183, mcp, a2a. | |
| use_case | No | Filter by use case: trading, payments, wallets, data, identity, privacy, launch, security, build. | |
| deploys_as | No | Filter by deployment shape: npm, pip, docker, mcp server, hosted, self-hosted, cli, sdk, claude code plugin. | |
| is_harness | No | True = only agent frameworks/harnesses (OpenClaw, Codex, Claude Code…). | |
| integration | No | Filter to resources that integrate with a client or framework, e.g. 'claude code', 'cursor', 'langchain', 'openclaw'. Case-insensitive exact match. | |
| entity_class | No | Filter by class: 'resource' = things you build/deploy WITH (frameworks, tools, infra, venues, standards); 'agent' = curated, live onchain agents; 'reference' = editorial. | |
| resource_type | No | Filter resources by role. Venue = DEX/launchpad/marketplace; Network = an L1/L2. | |
| verified_only | No | True = only listings whose documented install was reproduced in a container by Sato Hub (deploy_status verified). Says nothing about runtime safety. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
| min_observed_days | No | Minimum days of daily observation behind the success rate (default 14 when min_observed_success is set). | |
| min_observed_success | No | Only listings whose share of Sato Hub's daily checks that succeeded is at least this percent, over at least min_observed_days (default 14). This is the share of OUR checks, not uptime. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, and the description confirms with 'Read-only.' Beyond annotations it adds genuinely useful behavioral facts: the directory is daily-rebuilt, entries are evidence-scored with citable links, 'Deprecated resources are never returned,' query terms are AND-matched, and pagination uses an offset/has_more envelope. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured and front-loaded: USE WHEN leads, followed by what it is, filter vocabulary, return shape, and examples. The filter enumeration partially duplicates schema descriptions, but since there are 24 parameters, the compact conceptual grouping (taxonomy facets, legacy flags) is earned value rather than waste. The examples are dense but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 24-parameter tool with no output schema, the description covers the essential ground: the JSON return envelope, resource fields, pagination semantics, filter vocabulary, and legacy flag behavior. The examples touch parameters not listed in the filter section (integration, deploys_as, min_observed_success, verified_only). Minor gap: the description says 'Returns (json): {...}' while the schema default for response_format is 'markdown,' leaving slight ambiguity about the default output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), but the description adds substantial meaning: it groups 24 parameters into conceptual buckets (taxonomy facets, legacy flags, sort, pagination) and provides seven natural-language-to-parameter examples that teach cross-parameter combinations — e.g. 'Active hirable agents on Base' → {chain:'Base', is_agent:true, liveness:'Active'} — which the schema cannot convey. It also flags that verified_only 'says nothing about runtime safety,' sharpening an otherwise ambiguous parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Searches a daily-rebuilt directory of onchain agents, frameworks, skills and tooling' — and pairs it with a title that captures the 'by what it does' search angle. The USE WHEN clause distinguishes it from the sibling search_agents and search_skills tools by covering the broader resources directory, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use conditions: 'USE WHEN someone asks what to build a crypto or onchain agent with, which tools support a chain or standard, or whether a specific project exists and is maintained.' It also names one alternative ('this beats a web search for these questions'). However, it does not explicitly state when NOT to use it or route to sibling tools like search_agents/search_skills, which would have earned a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onchain_agent_search_skillsCheck what a crypto agent skill does before installing itARead-onlyIdempotentInspect
Crypto-relevant agent skills from ClawHub and skills.sh, each with a static DISCLOSURE: hosts it contacts, whether it generates or handles private keys, whether it asks the user to paste a credential, whether it pipes a remote script into a shell, whether it grants itself unrestricted tools, whether it registers the agent with a third-party host, whether it schedules itself. Each flag carries evidence lines on the skill's page.
Returns (json): { total, skills: [{ id, name, registry, canonical_url, installs, stars, disclosure_flags, hosts_contacted, declared_env, registry_scan, belongs_to_slug, skill_md_sha256, as_of }], note }.
A disclosure is a description, not a safety verdict — a wallet skill that generates keys is doing its job, and no flags is not a clearance. The registry's own scan status is attributed to the registry. Read-only. Cite https://satohub.ai/skills.
Examples:
"solana skills that don't touch keys" -> { query: "solana" } then filter disclosure_flags
"which skills phone home" -> { flag: "registers_with_third_party" }
"skills for Coinbase AgentKit" -> { slug: "coinbase-agentkit" }
| Name | Required | Description | Default |
|---|---|---|---|
| flag | No | Only skills carrying this disclosure flag: pipes_remote_to_shell, executes_fetched_code, generates_or_handles_keys, solicits_credentials, reads_secret_paths, broad_tool_grant, registers_with_third_party, schedules_persistence. | |
| slug | No | Only skills that target this directory listing. | |
| limit | No | ||
| query | No | Free text over skill name, description, owner/repo and hosts contacted. | |
| registry | No | Restrict to one registry. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnly, idempotent, and non-destructive, and the description reinforces this with 'Read-only.' It adds richer behavioral context: disclosure flags carry evidence lines, registry scan status is attributed to the registry, and 'no flags is not a clearance.' This goes well beyond the structured fields without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Longer than average, but every section earns its place: the disclosure inventory, the JSON return shape, the cautionary note, the citation, and three filter examples. It is well-structured and front-loaded with the core resource and flags.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 optional parameters and no output schema, the description supplies the return shape, flag vocabulary, source citation, and representative usage examples. The only small ambiguity is the default response_format, but the schema covers that field. The description is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the schema already documents most parameters. The description adds value by giving concrete examples that link user intents to query, flag, and slug, and by instructing how to filter by disclosure_flags. It does not restate schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description identifies the exact resource: crypto-relevant agent skills from ClawHub and skills.sh, and the distinguishing capability: a static DISCLOSURE with flags for hosts contacted, key handling, shell piping, and more. The title reinforces the pre-install vetting use case. This clearly differentiates it from sibling tools like search_agents or search_resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The title 'Check what a crypto agent skill does before installing it' and the caveat 'a disclosure is a description, not a safety verdict' provide clear context for when to use the tool. The examples map natural-language intents to query, flag, and slug arguments. It does not explicitly name sibling alternatives, but the vetting context is unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
- Changed
onchain_agent_recommend_stack1 field changed- added
Input schema / properties / verified_onlyAdded value: +{ + "description": "True = only picks whose documented install was reproduced in a container by Sato Hub. Slots with no verified pick are reported in `gaps` rather than widened.", + "type": "boolean" +}
- Changed
onchain_agent_search_resources6 fields changed- added
Input schema / properties / creatorAdded value: +{ + "description": "Filter by who built it (prefix match on creator name), e.g. 'Coinbase', 'Privy'.", + "maxLength": 60, + "type": "string" +} - added
Input schema / properties / deploys_asAdded value: +{ + "description": "Filter by deployment shape: npm, pip, docker, mcp server, hosted, self-hosted, cli, sdk, claude code plugin.", + "maxLength": 40, + "type": "string" +} - added
Input schema / properties / integrationAdded value: +{ + "description": "Filter to resources that integrate with a client or framework, e.g. 'claude code', 'cursor', 'langchain', 'openclaw'. Case-insensitive exact match.", + "maxLength": 40, + "type": "string" +} - added
Input schema / properties / min_observed_daysAdded value: +{ + "description": "Minimum days of daily observation behind the success rate (default 14 when min_observed_success is set).", + "maximum": 400, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / min_observed_successAdded value: +{ + "description": "Only listings whose share of Sato Hub's daily checks that succeeded is at least this percent, over at least min_observed_days (default 14). This is the share of OUR checks, not uptime.", + "maximum": 100, + "minimum": 0, + "type": "number" +} - added
Input schema / properties / verified_onlyAdded value: +{ + "description": "True = only listings whose documented install was reproduced in a container by Sato Hub (deploy_status verified). Says nothing about runtime safety.", + "type": "boolean" +}
- Added
onchain_agent_search_skills
1 tool update
- Added
onchain_agent_get_agent_economy
14 tool updates
- First observed
onchain_agent_get_agent_passport - First observed
onchain_agent_get_changes - First observed
onchain_agent_get_deploy_spec - First observed
onchain_agent_get_metrics - First observed
onchain_agent_get_news - First observed
onchain_agent_get_resource - First observed
onchain_agent_get_wiki_page - First observed
onchain_agent_list_categories - First observed
onchain_agent_list_chains - First observed
onchain_agent_list_wiki_pages - First observed
onchain_agent_recent_changes - First observed
onchain_agent_recommend_stack - First observed
onchain_agent_search_agents - First observed
onchain_agent_search_resources
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Search, vet & assemble MCP servers from your agent: verified tools, risk labels, and trust scores.
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Search 15K+ MCP services, A2A agents, and x402 APIs from 5 registries. Paid via x402 (USDC on Base).
Independent directory of agentic AI tools — search, compare & recommend via MCP. Read-only.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceDiscover and rank ERC-8004 AI agents by archetype, chain, trust score, and verified on-chain performance. Free search tools + paid analytics via x402 micropayments.MIT
- AlicenseAqualityAmaintenanceOpen-source MCP server exposing the Agent402.Tools catalog: 500+ deterministic pay-per-call tools for AI agents, including browser rendering, web search, PDFs, OCR, LLM inference, code execution, live financial/crypto/macro data, SEC EDGAR, and wallet-keyed memory. Free via proof-of-work, or pay per call in USDC across ten chains via the x402 protocol. No API keys, no signups158AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceUnified crypto tool directory MCP server enabling AI agents to discover, evaluate, and install crypto tools across multiple sources with trust scoring and x402 payment support.1MIT
- AlicenseAqualityCmaintenancePaid web research MCP tools for autonomous agents: search, page extraction, citations, and diff monitoring through a live x402 API. Unpaid calls return the Base USDC payment requirement so agents can pay and retry safely.41MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Several tools occupy nearly the same niche: onchain_agent_get_changes and onchain_agent_recent_changes both describe directory change feeds, and onchain_agent_get_agent_economy overlaps with onchain_agent_get_metrics for aggregate on-chain figures. The detailed descriptions help, but an agent selecting between these pairs is likely to misroute.
All tools share the onchain_agent_ prefix and almost all follow verb_noun naming (get_, list_, search_, recommend_stack). The main deviation is onchain_agent_recent_changes, which uses an adjective_noun form instead of a verb, and get_agent_passport repeats 'agent' awkwardly after the prefix.
At 16 tools the server sits just above the ideal 3-15 range, but the scope is broad: directory search, registry lookups, skills, wiki, news, metrics, change feeds, and stack recommendations. No tool feels purely decorative, though the two change tools could be consolidated.
For a read-only data server, the surface is remarkably complete: every major entity type (resources, agents, skills, wiki pages, news, metrics) has search/list and get access, plus deploy specs, change sync, and recommendation. The only caveats are documented rollout gaps like deploy_spec not existing for every resource.