Sato Hub: Onchain Agents
Was dieses MCP kann
Searches scored tools and deployment resources for onchain agents, including frameworks, MCP servers, wallets, and payment rails.
Tools
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'An id returned by `search`: resource:<slug>, answer:<slug>, number:<slug> or wiki:<slug>.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'text', 'url', 'metadata'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'description': 'The canonical satohub.ai page to cite.'}, 'text': {'type': 'string', 'description': 'Plain text to quote: the facts, each with its date, and the source URL.'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'required': ['as_of', 'kind', 'source'], 'properties': {'kind': {'enum': ['resource', 'answer', 'number', 'wiki'], 'type': 'string'}, 'as_of': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'The date the underlying data carries (YYYY-MM-DD); null when unknown.'}, 'source': {'type': 'string', 'const': 'Sato Hub'}, 'sato_score': {'type': 'number', 'description': '0-100: how open, active and verifiable a product is. Not a safety or returns grade.'}, 'evidence_summary': {'type': 'string', 'description': 'Resources only: what Sato Hub listed vs what it checked itself, with dates.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['goal'], 'properties': {'goal': {'type': 'string', 'maxLength': 600, 'minLength': 3, 'description': "What the user wants to build, in plain words, e.g. 'a Base trading agent that swaps USDC to ETH on a signal'."}, 'save': {'type': 'boolean', 'description': "True stores the plan and returns `share_url`, a permanent read-only page at satohub.ai/plan/<id> with the plan's signature re-checked on it. The page is noindex unless `public` is also true â\x80\x94 a goal is the caller's to publish, not ours. Nothing else about the plan changes."}, 'chain': {'type': 'string', 'maxLength': 40, 'description': "Chain the agent runs on, e.g. 'Base'. When omitted it is read from the goal, and the plan says which."}, 'public': {'type': 'boolean', 'description': 'Only meaningful with `save`. True lets the shared page be indexed by search engines. Default false.'}, 'budget_usd': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Rough monthly budget in USD. Restated back in the plan; it does not filter the stack.'}, 'constraints': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 10, 'description': "Hard constraints to restate back, e.g. 'self-custody only', 'no API keys'."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'config': {'type': 'string', 'maxLength': 16384, 'description': 'An MCP config block as text, e.g. {"mcpServers": {...}}.'}, 'command': {'type': 'string', 'maxLength': 16384, 'description': 'An install command, e.g. "npm i @solana/web3.js viem" or "claude mcp add wallet -- npx -y some-wallet-mcp".'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "First directory slug, e.g. 'coinbase-agentkit'."}, 'b': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Second directory slug, e.g. 'solana-agent-kit'."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['goal'], 'properties': {'goal': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': "What the agent should do, in plain words, e.g. 'swap USDC to ETH on Base with a per-trade cap'. Not stored."}, 'chain': {'enum': ['base', 'base-sepolia'], 'type': 'string', 'description': 'Chain the agent runs on.'}, 'format': {'enum': ['files', 'zip'], 'type': 'string', 'description': 'files (default) or zip (adds zip_base64).'}, 'network': {'enum': ['fork', 'testnet', 'mainnet'], 'type': 'string', 'description': 'Where it may sign. Default fork. mainnet needs mainnet_risk_accepted: true.'}, 'template': {'type': 'string', 'maxLength': 80, 'description': 'Pin a template id.'}, 'framework': {'enum': ['agentkit', 'eliza', 'ai-sdk', 'claude-agent-sdk', 'openai-agents', 'plain-ts'], 'type': 'string', 'description': 'Agent framework. Templates exist for agentkit, ai-sdk, claude-agent-sdk, openai-agents, plain-ts; any other answers no_template with the nearest.'}, 'mainnet_risk_accepted': {'type': 'boolean', 'description': 'Explicit acceptance of mainnet risk. Only read when network is mainnet.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "The finding's slug â\x80\x94 the last path segment of a satohub.ai/numbers/<slug> URL."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'chain': {'type': 'string', 'maxLength': 40, 'description': 'Restrict to one chain, e.g. Base, BNB Chain, Gnosis. Venue-level rows have no chain.'}, 'venue': {'type': 'string', 'maxLength': 40, 'description': 'Restrict to one venue: erc8004, olas, virtuals, x402, erc4337_accounts, key_management, singularitynet, morpheus.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}, 'include_platforms': {'type': 'boolean', 'description': 'Include the per-platform breakdown of who produced the registrations (agentURI attribution). Default false â\x80\x94 it roughly doubles the response.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': "The registered agent's slug â\x80\x94 <slug from onchain_agent_search_agents>. Call onchain_agent_search_agents first; the registry is small and slugs are not guessable."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'since': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Return everything that changed since this ISO date. Defaults to 14 days ago. Clamped to the 90-day supported window.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'surface': {'enum': ['directory_activity', 'news', 'erc8004_count', 'agent_tokens', 'liveness', 'sato_score', 'snapshots', 'x402_bazaar', 'x402_answers_daily', 'erc8004_endpoints_daily', 'mcp_alive_daily', 'erc8004_router_pool', 'passports', 'erc8004_census', 'x402_throughput', 'custody_profiles', 'sato_scan', 'sato_scan_census', 'agent_economy', 'x402_settlement', 'lp_pools', 'skills', 'deploy_verification', 'custody_observed', 'dead_project_sweep'], 'type': 'string', 'description': 'One data surface to check. Omit for all of them. Surfaces: directory_activity, news, erc8004_count, agent_tokens, liveness, sato_score, snapshots, x402_bazaar, x402_answers_daily, erc8004_endpoints_daily, mcp_alive_daily, erc8004_router_pool, passports, erc8004_census, x402_throughput, custody_profiles, sato_scan, sato_scan_census, agent_economy, x402_settlement, lp_pools, skills, deploy_verification, custody_observed, dead_project_sweep.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': "The resource slug to get a deploy manifest for, e.g. 'solana-agent-kit'."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 30, 'minimum': 1, 'description': 'Look-back window in days (1-30, default 30) for the observed record and the tool inventory.'}, 'slug': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "The resource slug, e.g. 'coinbase-agentkit'."}, 'score_days': {'type': 'integer', 'maximum': 365, 'minimum': 2, 'description': 'Include the daily Sato Score series over this many days (2-365). A day nobody measured is absent from the series, never carried forward. Omit for no series.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'token_limit': {'type': 'integer', 'default': 12, 'maximum': 25, 'minimum': 1, 'description': 'How many top project tokens to include (1-25, default 12).'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'kind': {'enum': ['release', 'tweet', 'news', 'research'], 'type': 'string', 'description': 'Filter by item kind: release, tweet, news, or research.'}, 'chain': {'enum': ['Ethereum', 'Base', 'Solana', 'Arbitrum', 'Optimism', 'Polygon', 'Avalanche', 'BNB Chain', 'Cosmos', 'Bitcoin', 'Sui', 'Aptos', 'Near', 'COTI', 'Injective', 'XRP Ledger', 'Gnosis', 'Hyperliquid', 'Sei', 'Starknet', 'zkSync', 'Monad', 'MegaETH', 'Berachain', 'TON', 'Tron', 'Robinhood Chain', 'Multichain', 'Unknown'], 'type': 'string', 'description': 'Filter to items tagged with this chain.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max results to return (1-50, default 20).'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Results to skip, for pagination (default 0).'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': "The resource slug, e.g. 'coinbase-agentkit'."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}, 'include_activity': {'type': 'boolean', 'default': True, 'description': "Include the resource's recent activity feed (releases/posts)."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'mode': {'enum': ['stage', 'movers'], 'type': 'string', 'default': 'stage', 'description': "'stage' (default) is one venue/chain/stage series. 'movers' is the week's Sato Score movement across the directory â\x80\x94 which listings rose, fell, crossed a tier, were scored for the first time, or answered our daily checks differently. In movers mode venue, chain and stage are ignored."}, 'chain': {'type': 'string', 'maxLength': 40, 'description': 'Chain, e.g. Base, Ethereum, Gnosis. Required when the stage is measured on more than one chain â\x80\x94 series are never blended across chains. Omit for venue-level rows.'}, 'grain': {'enum': ['weekly', 'daily'], 'type': 'string', 'default': 'weekly', 'description': "'weekly' (the citable series, default) or 'daily' (the trend grain; never a headline)."}, 'stage': {'type': 'string', 'maxLength': 60, 'description': "Lifecycle stage, e.g. registered, launched, settled_to_catalogued_seller, mcp_endpoint_answers. Required in 'stage' mode."}, 'venue': {'type': 'string', 'maxLength': 40, 'description': 'Venue id, e.g. erc8004, olas, virtuals, x402, erc4337_accounts. See onchain_agent_get_agent_economy for the catalogue.'}, 'points': {'type': 'integer', 'default': 8, 'maximum': 30, 'minimum': 1, 'description': 'How many most-recent points (1-30, default 8).'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': "The wiki page slug, e.g. 'what-are-mcps'."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'maxLength': 64, 'minLength': 3, 'description': 'The package slug from onchain_agent_search_listings.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'from': {'type': 'string', 'maxLength': 120, 'description': 'With `address`: the paying wallet. Lets the reading compare against its own history and say whether it is being targeted by address poisoning. Never stored.'}, 'repo': {'type': 'string', 'maxLength': 200, 'description': "A GitHub repository: a URL or bare owner/name, e.g. 'coinbase/agentkit'."}, 'x402': {'type': 'string', 'maxLength': 300, 'description': 'An https x402 resource URL. ONE unpaid request reads its 402 payment terms (v1 body or v2 PAYMENT-REQUIRED header); no payment is ever sent or signed.'}, 'agent': {'type': 'string', 'maxLength': 120, 'description': "An ERC-8004 agent reference, <chain>:<id>, e.g. 'base:42'. Chains: Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Avalanche, Gnosis, Robinhood Chain."}, 'chain': {'type': 'string', 'maxLength': 40, 'description': "Chain for `token`: Base, Ethereum, Arbitrum, Robinhood Chain. Anything else (Solana included) answers 'unknown' with the reason, never a guess. For `address` it is the chain the payment would settle on: Base, Solana, Tempo, Polygon, BNB Chain, Arbitrum, Avalanche, Optimism, Ethereum, SKALE Base, Sei, X Layer, Monad, Robinhood Chain, World Chain, Abstract."}, 'skill': {'type': 'string', 'maxLength': 300, 'description': "An agent skill: '<registry>/<id>' (registries: clawhub, skillssh, skills.sh, skills-sh, github), or the skill id alone when it is unique. Reads the static disclosure already on record â\x80\x94 nothing is fetched from a registry and no skill is ever executed."}, 'token': {'type': 'string', 'maxLength': 120, 'description': "An ERC-20 token contract address, e.g. '0x1bc0c42215582d5A085795f4baDbaC3ff36d1Bcb'. Needs `chain`. EVM only in v1."}, 'origin': {'type': 'string', 'maxLength': 300, 'description': 'With `address`: the https URL whose 402 response named the address (a public host; no credentials). Lets the reading say whether that origin declared it. Never stored.'}, 'address': {'type': 'string', 'maxLength': 120, 'description': 'A recipient address the caller is about to pay (Sato Scan): 0x + 40 hex on an EVM chain, or a Solana address. Needs `chain`. Never stored.'}, 'package': {'type': 'string', 'maxLength': 200, 'description': "An npm or PyPI package name, e.g. 'solana-agent-kit'. A trailing @version is ignored."}, 'endpoint': {'type': 'string', 'maxLength': 300, 'description': 'An https MCP endpoint URL. If it is not in the directory it gets a live initialize + tools/list handshake, capped at 8 seconds.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'default': 14, 'maximum': 90, 'minimum': 1, 'description': 'Look-back window in days (1-90, default 14).'}, 'slug': {'type': 'string', 'minLength': 1, 'description': "Limit to one resource's recorded history by slug. Omit for the site-wide feed across all listings."}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max changes to return (1-50, default 20).'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['goal'], 'properties': {'goal': {'type': 'string', 'maxLength': 300, 'minLength': 3, 'description': "What the agent should do, in plain words â\x80\x94 e.g. 'trading agent on Base with x402 payments'"}, 'chain': {'enum': ['Ethereum', 'Base', 'Solana', 'Arbitrum', 'Optimism', 'Polygon', 'Avalanche', 'BNB Chain', 'Cosmos', 'Bitcoin', 'Sui', 'Aptos', 'Near', 'COTI', 'Injective', 'XRP Ledger', 'Gnosis', 'Hyperliquid', 'Sei', 'Starknet', 'zkSync', 'Monad', 'MegaETH', 'Berachain', 'TON', 'Tron', 'Robinhood Chain', 'Multichain', 'Unknown'], 'type': 'string', 'description': 'Preferred chain (e.g. Base, Solana)'}, 'max_per_slot': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Max picks per stack slot (default 3)'}, 'verified_only': {'type': 'boolean', '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.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 3, 'description': "The agent's name. Bound into the signed challenge â\x80\x94 changing it invalidates a signature."}, 'stack': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'maxItems': 25, 'description': 'Directory slugs the agent is built from. Unknown slugs are an error, not silently dropped â\x80\x94 the join is the point.'}, 'repo_url': {'type': 'string', 'maxLength': 300, 'description': "The agent's source repository, if public."}, 'signed_at': {'type': 'string', 'maxLength': 40, 'description': 'The `signed_at` value returned with the challenge. Valid for 15 minutes.'}, 'standards': {'type': 'array', 'items': {'enum': ['x402', 'erc-8004', 'mcp', 'a2a'], 'type': 'string'}, 'maxItems': 4, 'description': 'Standards the agent DECLARES support for. Declared, never verified.'}, 'agent_type': {'type': 'array', 'items': {'enum': ['Research / Market-Intel', 'Trading', 'DeFi / Yield', 'Payments / Commerce', 'Security', 'Social / Content', 'Workflow / Automation', 'Gaming', 'Data / Oracle', 'Coding / Dev'], 'type': 'string'}, 'maxItems': 4, 'description': 'What kind of work it does. At least one is required to register.'}, 'description': {'type': 'string', 'maxLength': 1000, 'description': 'What the agent does (20-1000 chars). Required to register; omit it only on the challenge step.'}, 'website_url': {'type': 'string', 'maxLength': 300, 'description': "The agent's public page."}, 'endpoint_url': {'type': 'string', 'maxLength': 300, 'description': 'An MCP or A2A endpoint the agent serves. Probed once on registration; a declaration is not a working service.'}, 'contact_email': {'type': 'string', 'maxLength': 200, 'description': 'Required when registering without a signature â\x80\x94 an unsigned registration goes to a human, who may need to ask something.'}, 'wallet_address': {'type': 'string', 'maxLength': 100, 'description': "The AGENT's own wallet: EVM (0xâ\x80¦) or a Solana-style base58 address. Required for the signature path â\x80\x94 signature verification is EVM-only for now."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}, 'chains_supported': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 10, 'description': 'Chains it operates on, by display name. At least one is required to register.'}, 'wallet_signature': {'type': 'string', 'maxLength': 300, 'description': 'An EIP-191 personal_sign signature over the exact challenge this tool returns when called without one. Present: the passport issues immediately.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'chain': {'type': 'string', 'maxLength': 40, 'description': "Chain the agent must claim, e.g. 'Base'. Filters the passport pool; it does not pull ERC-8004 registry rows (none are enumerable keyless)."}, 'capability': {'type': 'string', 'maxLength': 120, 'description': "What the work needs, in a word or two, e.g. 'trading', 'research', 'payments'. Matched against the candidate's name, declared agent types and declared services."}, 'requires_mcp': {'type': 'boolean', 'description': 'Only candidates that DECLARE an MCP service. A declaration is not a working service â\x80\x94 the top candidates get one live handshake.'}, 'requires_x402': {'type': 'boolean', 'description': 'Only candidates that DECLARE x402 payment support. Declared, never settled or observed.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chain', 'goal'], 'properties': {'goal': {'enum': ['agent_token', 'creator_coin', 'meme', 'utility'], 'type': 'string', 'description': "What is being launched. Matched against what each venue's own documentation covers."}, 'name': {'type': 'string', 'maxLength': 64, 'description': "Token name. Required for a prepared deploy config; the caller's to choose, never invented here."}, 'chain': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': "Chain display name as the directory writes it, e.g. 'Base', 'Arbitrum'."}, 'symbol': {'type': 'string', 'maxLength': 16, 'description': 'Token symbol. Required for a prepared deploy config.'}, 'deployer': {'type': 'string', 'maxLength': 64, 'description': 'The 0x address that will sign the deploy and hold the creator reward share. Without it no config is prepared â\x80\x94 it cannot be inferred.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}, 'max_pool_fee_pct': {'type': 'number', 'description': 'Reject venues whose PUBLISHED pool fee exceeds this percentage. A venue that publishes no fee is not excluded â\x80\x94 unknown is not disqualifying.'}, 'require_programmable_fee_split': {'type': 'boolean', 'description': 'Only venues documenting a programmable third-party recipient split.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chain', 'pair'], 'properties': {'pair': {'type': 'string', 'maxLength': 40, 'minLength': 3, 'description': "The pair, either way round: 'WETH-USDC', 'usdc/weth', 'WBTC_WETH'. Only the pairs Sato Route quotes are collected."}, 'chain': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'Chain the pool is on. Collected: Base, Ethereum. Anything else answers `unavailable` with the covered list â\x80\x94 unknown, never an empty result presented as none.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chain', 'token_in', 'token_out', 'amount'], 'properties': {'chain': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': "Chain display name as the directory writes it, e.g. 'Base', 'Ethereum', 'Solana'."}, 'taker': {'type': 'string', 'maxLength': 120, 'description': 'The address that would sign. Some venues only return calldata when it is given; nothing is ever signed here.'}, 'amount': {'type': 'string', 'pattern': '^[0-9]{1,40}$', 'description': "Sell amount in the INPUT token's base units (e.g. 1000000 = 1 USDC at 6 decimals)."}, 'token_in': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Input token: a contract address (or Solana mint), or a symbol for the well-known stablecoins.'}, 'token_out': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Output token: a contract address (or Solana mint), or a symbol.'}, 'slippage_bps': {'type': 'integer', 'maximum': 5000, 'minimum': 0, 'description': 'Slippage tolerance in basis points. Passed through to the venue.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['goal'], 'properties': {'goal': {'type': 'string', 'maxLength': 600, 'minLength': 3, 'description': 'What the user wants to build, in plain words. The plan is built and the matching create_agent template is named.'}, 'chain': {'type': 'string', 'maxLength': 40, 'description': "Chain the agent runs on, e.g. 'Base'. When omitted it is read from the goal."}, 'budget_usd': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Rough monthly budget in USD. Restated in the plan; it does not filter the stack.'}, 'constraints': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 10, 'description': "Hard constraints to restate back, e.g. 'self-custody only'."}, 'include_zip': {'type': 'boolean', 'description': 'Accepted for compatibility and ignored: this tool is plan-only. The repo comes from onchain_agent_create_agent.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chain', 'to'], 'properties': {'to': {'type': 'string', 'maxLength': 120, 'description': 'The recipient address the agent is about to pay: the x402 payTo, the treasury address, the top-up target.'}, 'from': {'type': 'string', 'maxLength': 120, 'description': "The paying wallet. Lets the reading compare against that wallet's own history and say whether it is being targeted by address poisoning."}, 'chain': {'enum': ['Base', 'Solana', 'Tempo', 'Polygon', 'BNB Chain', 'Arbitrum', 'Avalanche', 'Optimism', 'Ethereum', 'SKALE Base', 'Sei', 'X Layer', 'Monad', 'Robinhood Chain', 'World Chain', 'Abstract'], 'type': 'string', 'description': 'Chain the payment would settle on: Base, Solana, Tempo, Polygon, BNB Chain, Arbitrum, Avalanche, Optimism, Ethereum, SKALE Base, Sei, X Layer, Monad, Robinhood Chain, World Chain, Abstract.'}, 'token': {'type': 'string', 'maxLength': 120, 'description': "The token contract (or Solana mint) the payment would use. Lets the reading say whether it is the issuer's contract. Keyed by address, never by symbol."}, 'amount': {'type': 'string', 'pattern': '^[0-9]{1,40}$', 'description': "Amount in the token's base units. Read for context only; never stored."}, 'origin': {'type': 'string', 'maxLength': 300, 'description': 'The https URL whose 402 response named `to` (a public host; no credentials). Lets the reading say whether that origin declared the address.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'chain': {'enum': ['Ethereum', 'Base', 'Solana', 'Arbitrum', 'Optimism', 'Polygon', 'Avalanche', 'BNB Chain', 'Cosmos', 'Bitcoin', 'Sui', 'Aptos', 'Near', 'COTI', 'Injective', 'XRP Ledger', 'Gnosis', 'Hyperliquid', 'Sei', 'Starknet', 'zkSync', 'Monad', 'MegaETH', 'Berachain', 'TON', 'Tron', 'Robinhood Chain', 'Multichain', 'Unknown'], 'type': 'string', 'description': 'Filter to agents supporting this chain.'}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'Free-text search across agent name, description, creator, stack, and type.'}, 'x402_only': {'type': 'boolean', 'description': 'True = only agents exposing an x402 payment endpoint.'}, 'agent_type': {'type': 'string', 'maxLength': 40, 'description': 'Filter by agent utility type: trading, research, defi, payments, security, social, workflow, gaming, data, coding.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 100, 'description': "Free text over a published package's title, task and description."}, 'cursor': {'type': 'string', 'maxLength': 200, 'description': 'The next_cursor from a previous page.'}, 'recipe': {'type': 'string', 'pattern': '^[a-z0-9-]+$', 'maxLength': 64, 'description': "Only packages built from this recipe id, e.g. 'treasury-balance-monitor'."}, 'license': {'type': 'string', 'maxLength': 64, 'description': "Only packages under this SPDX license id, e.g. 'MIT'."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sort': {'enum': ['priority', 'newest_release', 'stars', 'name'], 'type': 'string', 'default': 'priority', 'description': 'Sort order: priority (default), newest_release, stars, or name.'}, 'chain': {'enum': ['Ethereum', 'Base', 'Solana', 'Arbitrum', 'Optimism', 'Polygon', 'Avalanche', 'BNB Chain', 'Cosmos', 'Bitcoin', 'Sui', 'Aptos', 'Near', 'COTI', 'Injective', 'XRP Ledger', 'Gnosis', 'Hyperliquid', 'Sei', 'Starknet', 'zkSync', 'Monad', 'MegaETH', 'Berachain', 'TON', 'Tron', 'Robinhood Chain', 'Multichain', 'Unknown'], 'type': 'string', 'description': 'Filter to resources supporting this chain.'}, 'iface': {'enum': ['mcp', 'sdk', 'rest-api', 'plugin', 'cli', 'ui', 'contract'], 'type': 'string', 'description': 'Filter by how it is accessed/integrated. One of: mcp, sdk, rest-api, plugin, cli, ui, contract.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max results to return (1-50, default 20).'}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'Free-text search across name, description, tags, chains, and agent type. Space-separated terms are AND-matched.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Results to skip, for pagination (default 0).'}, 'status': {'enum': ['Active', 'Early', 'Beta', 'Deprecated', 'Unknown'], 'type': 'string', 'description': 'Filter by lifecycle status.'}, 'creator': {'type': 'string', 'maxLength': 60, 'description': "Filter by who built it (prefix match on creator name), e.g. 'Coinbase', 'Privy'."}, 'category': {'enum': ['Onchain Agent', 'MCP', 'Skill Repo', 'Agent Framework', 'Agent Launchpad', 'Agent Marketplace', 'Wallet Infrastructure', 'DeFi Tool', 'Trading Tool', 'DAO Tool', 'Research Tool', 'Data Tool', 'Security Tool', 'Developer Tool', 'API / SDK', 'Research Paper', 'Newsletter', 'Community', 'Other'], 'type': 'string', 'description': 'Filter to a resource category.'}, 'featured': {'type': 'boolean', 'description': 'True = only editorially featured resources.'}, 'is_agent': {'type': 'boolean', 'description': 'True = only resources that are themselves onchain agents.'}, 'is_skill': {'type': 'boolean', 'description': 'True = only agent-skill resources (skill repos/marketplaces).'}, 'liveness': {'enum': ['Active', 'Recent', 'Quiet', 'Dormant'], 'type': 'string', 'description': 'Filter by activity recency: Active (â\x89¤30d), Recent (â\x89¤90d), Quiet (â\x89¤1y), Dormant (>1y).'}, 'standard': {'enum': ['x402', 'erc-8004', 'erc-8183', 'mcp', 'a2a'], 'type': 'string', 'description': 'Filter to resources implementing a standard. One of: x402, erc-8004, erc-8183, mcp, a2a.'}, 'use_case': {'enum': ['trading', 'payments', 'wallets', 'data', 'identity', 'privacy', 'launch', 'security', 'build'], 'type': 'string', 'description': 'Filter by use case. One of: trading, payments, wallets, data, identity, privacy, launch, security, build.'}, 'deploys_as': {'type': 'string', 'maxLength': 40, 'description': 'Filter by deployment shape: npm, pip, docker, mcp server, hosted, self-hosted, cli, sdk, claude code plugin.'}, 'is_harness': {'type': 'boolean', 'description': 'True = only agent frameworks/harnesses (OpenClaw, Codex, Claude Codeâ\x80¦).'}, 'integration': {'type': 'string', 'maxLength': 40, 'description': "Filter to resources that integrate with a client or framework, e.g. 'claude code', 'cursor', 'langchain', 'openclaw'. Case-insensitive exact match."}, 'entity_class': {'enum': ['resource', 'agent', 'reference'], 'type': 'string', 'description': "Filter by class: 'resource' = things you build/deploy WITH (frameworks, tools, infra, venues, standards); 'agent' = curated, live onchain agents; 'reference' = editorial."}, 'mcp_answering': {'type': 'boolean', 'description': "True = only listings whose MCP ENDPOINT answered Sato Hub's most recent MCP handshake (one check of ours, not uptime). Use this for 'which MCP servers answer'; min_observed_success alone is mostly a check of a listing's website."}, 'resource_type': {'enum': ['Framework', 'Tool/Service', 'Infrastructure', 'Venue', 'Network', 'Standard'], 'type': 'string', 'description': 'Filter resources by role. Venue = DEX/launchpad/marketplace; Network = an L1/L2.'}, 'verified_only': {'type': 'boolean', 'description': 'True = only listings whose documented install was reproduced in a container by Sato Hub (deploy_status verified). Says nothing about runtime safety.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}, 'min_observed_days': {'type': 'integer', 'maximum': 400, 'minimum': 1, 'description': 'Minimum days of daily observation behind the success rate (default 14 when min_observed_success is set).'}, 'min_observed_success': {'type': 'number', 'maximum': 100, 'minimum': 0, '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."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'flag': {'type': 'string', 'maxLength': 40, 'description': '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': {'type': 'string', 'maxLength': 120, 'description': 'Only skills that target this directory listing.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 120, 'description': 'Free text over skill name, description, owner/repo and hosts contacted.'}, 'registry': {'enum': ['clawhub', 'skillssh', 'github'], 'type': 'string', 'description': 'Restrict to one registry.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'website_url', 'description', 'category'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 2, 'description': "The project's name, as its own site writes it."}, 'chains': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 12, 'description': "Chains it supports, by display name, e.g. ['Base','Solana']."}, 'category': {'enum': ['Onchain Agent', 'MCP', 'Skill Repo', 'Agent Framework', 'Agent Launchpad', 'Agent Marketplace', 'Wallet Infrastructure', 'DeFi Tool', 'Trading Tool', 'DAO Tool', 'Research Tool', 'Data Tool', 'Security Tool', 'Developer Tool', 'API / SDK', 'Research Paper', 'Newsletter', 'Community', 'Other'], 'type': 'string', 'description': 'The directory category it belongs in. Pick the closest; triage corrects it if you are wrong.'}, 'repo_url': {'type': 'string', 'maxLength': 300, 'description': 'The public source repository, when there is one: github.com/<owner>/<name>.'}, 'description': {'type': 'string', 'maxLength': 1000, 'minLength': 20, 'description': 'What it does, in plain words: what it is, who it is for, what it connects to. No profit, safety or performance claims â\x80\x94 they are refused at the door.'}, 'website_url': {'type': 'string', 'maxLength': 300, 'minLength': 4, 'description': "The project's own https site. Not a GitHub URL unless the repository IS the project's home."}, 'contact_email': {'type': 'string', 'maxLength': 200, 'description': 'Where the one approval reply goes. Optional â\x80\x94 without it nothing is ever sent, and there is no other notification.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chain_in', 'token_in', 'token_out', 'amount_in'], 'properties': {'mode': {'enum': ['recommend', 'build-tx'], 'type': 'string', 'description': '`recommend` (default) never returns a transaction, whatever the gate said. `build-tx` returns an unsigned one, and only when the gate allowed it AND the simulation did not revert.'}, 'taker': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'The address that would sign. Some venues only return a transaction when it is given; nothing is ever signed here.'}, 'chain_in': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': "Source chain as the directory writes it, e.g. 'Base', 'Ethereum', 'Solana'."}, 'deadline': {'type': 'integer', 'maximum': 4102444800, 'minimum': 0, 'description': "Unix seconds the quote should stay good until. Omit for the venue's own default."}, 'token_in': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Input token: a contract address (or Solana mint), or a symbol for the well-known stablecoins.'}, 'amount_in': {'type': 'string', 'pattern': '^[0-9]{1,78}$', 'description': "Sell amount in the INPUT token's base units (1000000 = 1 USDC at 6 decimals). A string, because a uint256 does not survive a JSON number."}, 'chain_out': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'Destination chain. Omit, or repeat chain_in, for a same-chain swap. A different value is the cross-chain lane, and the two lanes are never compared with each other.'}, 'recipient': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Where the output goes. Omit to send to the taker. A recipient we hold no record of is `no_record` â\x80\x94 an absence of evidence, and on its own never a refusal.'}, 'token_out': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Output token: a contract address (or Solana mint), or a symbol.'}, 'slippage_bps': {'type': 'integer', 'maximum': 5000, 'minimum': 0, 'description': 'Slippage tolerance in basis points, passed through to the venue. A policy may cap it, and then the refusal states the cap and the value.'}, 'usd_notional': {'type': 'number', 'minimum': 0, 'description': 'USD notional of amount_in, when YOU already hold a price. Omitted is unknown, never zero â\x80\x94 a USD cap simply does not bite without it.'}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['target_kind', 'target', 'notify_to'], 'properties': {'action': {'enum': ['subscribe', 'unsubscribe'], 'type': 'string', 'description': 'subscribe (default) arms the watch; unsubscribe stops the mail for this address and target.'}, 'target': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'The thing itself, in the spelling that kind takes. It is normalised, so two spellings of one repository become one watch.'}, 'notify_to': {'type': 'string', 'maxLength': 254, 'minLength': 6, 'description': 'The email address the change notice goes to. Stored once for delivery and counted by an HMAC; it never enters telemetry or logs.'}, 'target_kind': {'enum': ['repo', 'package', 'endpoint', 'agent', 'wallet'], 'type': 'string', 'description': "What is being watched: repo (owner/name or a GitHub URL), package (npm name), endpoint (an https URL), agent (an ERC-8004 reference like 'base:42'), wallet (<Chain>:<address>, e.g. 'Base:0x...')."}, 'response_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown', 'description': 'Text format; structuredContent is JSON either way.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 2000, 'description': 'What to look for, in plain words: a project name, a chain, a standard, or a question about building onchain agents. Matched on its first 200 characters.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string', 'description': 'Pass this to `fetch`.'}, 'url': {'type': 'string', 'description': 'The canonical satohub.ai page to cite.'}, 'title': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 10, 'description': 'At most 10 matches, best first. Empty when nothing matches â\x80\x94 never padded.'}, 'about_url': {'type': 'string', 'description': 'Only with identity_note: the satohub.ai page that says what Sato Hub is.'}, 'identity_note': {'type': 'string', 'description': "Only when a search for the Sato name itself matched nothing: Sato Hub's no-token statement. Not a result."}}, 'additionalProperties': False}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Delx Commerce — Pay-per-Result APIs for Agents
Provides pay-per-result APIs and agent protocol tools for continuity, multi-agent coordination, document OCR, and crypto-related …
SAP MCP Server
Provides an MCP gateway connecting SAP-related tools with Solana, DeFi, decentralized identity, and x402 payments.
TheProtocol — Sovereign AI Agent Platform
Manages sovereign AI agents, identities, contracts, payments, governance, exchanges, and cross-frame token transfers.
AgentBIT
Routes pay-per-call tools over x402 on Base, covering discovery, data conversion, company research, counterparty screening, domai…
XGR MCP Gateway
Provides an MCP gateway for XGRChain and XDaLa workflows, including blockchain explorer queries, session inspection, transaction …
Wisely x402 Agent-Payment Infrastructure
Provides agent payment workflows for x402 endpoints, wallet handoffs, receipts, creator catalogs, local commerce bridges, endpoin…
Taifoon coordination layer
Coordinates agent registration, hiring, benchmarking, resource grids, assurance workflows, and blockchain-based settlement and pr…
MolTrust MCP Server
Provides agent identity, trust scoring, verifiable credentials, reputation, Sybil analysis, and on-chain mandate verification.