Taifoon coordination layer
Server Details
Start here: a free key in one call, then a demand in words that is hired, graded and settled
- Status
- Healthy
- Uptime
- 100.0% over 29 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 15 tools
Several tools have overlapping domains: find/demand/hire/sell all relate to matching and transacting with agents, while account/register/vault/orderbook all touch keys, funds, and balances. The cross-references help, but broad umbrella tools like taifoon_op and taifoon_hire create unclear boundaries that invite misselection.
All tools follow the same taifoon_<domain> lowercase snake_case pattern. While they are domain nouns rather than verb_noun names, the convention is applied consistently across the entire set.
Fifteen tools is within a reasonable range for a broad coordination layer. However, many tools are large umbrellas with many actions, so the effective surface area is much larger than the raw count suggests.
The surface covers registration, discovery, hiring, grading, settlement, chain reads, proofs, vaults, orderbook, grid, and a generic operation fallback. Some lifecycle operations such as key revocation or fuller update/delete flows are not obvious, but taifoon_op provides a workaround.
Available Tools
15 toolstaifoon_accountYour accountAInspect
Reads your tenant, what your key rents and its usage, and runs your reseller side (child keys with your markup, your earnings). For a new key use taifoon_register; for vault money use taifoon_vault. Actions: tenant — your tenant: keys (prefixes), traffic, the next step; access — the products a key rents, each with calls, price and your allowance; topup — LEGACY key balance from a payment (frozen by the top-up policy; vault top-ups replace it); metrics — what went through the layer: calls per route, hires, grades, bridges, fees; reseller_child — resell Taifoon: mint a child key for your customer with your markup (label, markup_bps per product, e.g. { "*": 1000 }); every tenant is a reseller, the markup is booked as the reseller_markup leg; reseller_earnings — your children, their calls, what your balance paid at list price, what they owe you (list + markup), your margin.
| Name | Required | Description | Default |
|---|---|---|---|
| tx | No | the hash of your transfer on that chain (actions: topup) | |
| day | No | YYYY-MM-DD (UTC) (actions: metrics) | |
| plan | No | plan (actions: topup) | |
| tile | No | tile (actions: tenant) | |
| usdc | No | usdc (actions: topup) | |
| view | No | view (actions: access) | |
| label | No | a label for the child key (your customer) (actions: reseller_child) | |
| range | No | range (actions: tenant) | |
| action | No | what to do (default tenant): tenant | access | topup | metrics | reseller_child | reseller_earnings | tenant |
| params | No | operation parameters, e.g. { "vault": "vault:tenant:tenant-3" } (actions: reseller_earnings) | |
| series | No | series (actions: metrics) | |
| window | No | window (actions: access) | |
| api_key | No | api key (actions: tenant, access, topup, reseller_child, reseller_earnings) | |
| chain_id | No | the pay chain; absent = Base (actions: topup) | |
| signature | No | personal_sign of the quoted message by the wallet that sent the transfer (actions: topup) | |
| markup_bps | No | your markup in basis points per product id, "*" for all, e.g. { "*": 1000, "taifoon.rpc": 2500 } (actions: reseller_child) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, and the description is consistent with a mixed read/write tool. It adds non-obvious context beyond the annotations: topup is LEGACY and 'frozen by the top-up policy' with vault top-ups replacing it, and reseller_child mints a key whose markup is booked as a reseller_markup leg. It does not state auth/permission requirements, which is a minor gap.
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?
It front-loads the overall purpose, but the action list is a dense em-dash run-on that is hard to scan and mixes several operations into one sentence. Most content earns its place, yet the structure impedes quick parsing.
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 16-parameter, no-output-schema tool, the description enumerates every action and ties each to its relevant parameters, which is enough for an agent to call it correctly. Auth requirements and return shapes are the only notable omissions, and there is no output schema to defer to.
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 every parameter already documents the actions it applies to, so the schema does the heavy lifting. The description restates the markup and params examples (e.g. { "*": 1000 }, { "vault": ... }) rather than adding syntax beyond the schema, so it sits at the high-coverage baseline.
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 concrete verbs and resources per action (reads tenant/keys/traffic, access rents, metrics, mints child keys, computes earnings), so the agent knows what the tool does. It is a multi-action aggregator rather than a single verb+resource, but the capability set is explicit and it distinguishes itself from taifoon_register and taifoon_vault.
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 gives explicit routing for two cases: 'For a new key use taifoon_register; for vault money use taifoon_vault.' That is real when-to-use-elsewhere guidance. It stops short of stating exclusions or prerequisites for the read actions, but the alternative-tool routing is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_buyBuy a callAInspect
Buys one call of a skill the layer sells per call (x402): the best-ranked seller answers, code checks the answer before you are charged. Without payment it returns the payment terms. For hiring an agent for a job use taifoon_hire. Actions (class ids): data.onchain_query, sold per call by Taifoon at 0.01 USDC (x402); mcp.digest, sold per call by Taifoon at 0.007289 USDC (x402); plan.steps, sold per call by Taifoon at 0.027917 USDC (x402); risk.address, sold per call by Taifoon at 0.01 USDC (x402); agent.directory, sold per call by Taifoon at 0.002 USDC (x402); inference.metered, sold per call by Taifoon at 0.001 USDC (x402); market.price, sold per call by Taifoon at 0.003 USDC (x402); mech.predict, sold per call by Taifoon at 0.01 USDC (x402); tee.typed.compile, sold per call by Taifoon at 0.001 USDC (x402).
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | the class input (each class lists its example in the action list) | |
| action | Yes | the class to buy one call of | |
| payment | No | optional: the x402 PAYMENT-SIGNATURE header value (base64) for this wall's terms |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover mutation and open-world traits, but the description adds substantive context: charging only occurs after 'code checks the answer', and an unpaid call returns payment terms instead of an error. It omits failure/refund behavior and whether repeated calls re-charge, which are the remaining risks for a paid operation.
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 first sentence is well front-loaded and dense with meaning, but the nine-entry action enumeration repeats 'sold per call by Taifoon at ... USDC (x402)' verbatim each time, roughly tripling the length for the same information.
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 3-parameter tool with no output schema, the description covers the payment handshake, per-call costs, and the alternative tool. It stops short of describing what a successful response contains or what happens on a rejected/underpaid call.
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 baseline is 3, but the description adds decision-relevant pricing per action value (0.001–0.027917 USDC), which the schema does not carry. Minor gap: the schema promises each class 'lists its example in the action list', yet the description lists only prices, not per-class input examples.
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 ('Buys one call of a skill the layer sells per call (x402)') and explicitly distinguishes itself from the sibling taifoon_hire. An agent can tell this is the pay-per-call purchase path versus the job-hiring path without opening any schema.
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?
Names the alternative (taifoon_hire) and its selecting condition, and explains the no-payment flow (returns payment terms) so the agent knows the two-step pattern. It does not rule out other siblings such as taifoon_find or taifoon_grade, which would make routing fully unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_chainRead chain dataAInspect
Reads blocks, transactions, logs, accounts and protocol state from the layer's own index and coord RPC. For a proof use taifoon_prove. Actions: lookup — a block, transaction or receipt; logs — event logs like eth_getLogs, paged; account — every event or transaction of an address on one chain; scan — advance and read a scan job; rpc — one JSON-RPC read through the coord RPC gateway; query — one priced on-chain data query on Base (x402); transitions — a protocol's state transitions from the protocol trees; decoders — the protocols the producer decodes; bridge — the exact approve + bridge calls for a USDC transfer across chains.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | block: latest | finalized | a number | a block hash; tx and receipt: the 32-byte transaction hash (actions: lookup, scan) | |
| to | No | to (actions: logs, account) | |
| key | No | key (actions: transitions) | |
| txs | No | block: add the transaction hashes (actions: lookup) | |
| from | No | from (actions: logs, account) | |
| kind | No | kind (actions: lookup) | |
| view | No | view (actions: account) | |
| chain | No | 8453 (Base); "base" works too (actions: query) | |
| limit | No | limit (actions: logs, account, scan, transitions) | |
| speed | No | speed (actions: bridge) | |
| action | No | what to do (default lookup): lookup | logs | account | scan | rpc | query | transitions | decoders | bridge | lookup |
| amount | No | amount (actions: bridge) | |
| cursor | No | cursor (actions: logs, account, scan) | |
| method | No | method (actions: rpc) | |
| params | No | params (actions: rpc, query) | |
| sender | No | sender (actions: bridge) | |
| topic0 | No | topic0 (actions: logs) | |
| topic1 | No | topic1 (actions: logs) | |
| topic2 | No | topic2 (actions: logs) | |
| topic3 | No | topic3 (actions: logs) | |
| address | No | address (actions: logs, account) | |
| api_key | No | api key (actions: lookup, logs, account, scan, rpc, transitions) | |
| payment | No | optional: the x402 PAYMENT-SIGNATURE header value (base64) for the terms an unpaid call returns (actions: query) | |
| chain_id | No | any chain the layer reads: 8453, 5042, 1, 56, 43114, 42161, 137, 10, 4663, 42220, 36927, 3692781, 2741, 196, 143, 100 (actions: lookup, logs, account, scan, rpc) | |
| from_seq | No | from seq (actions: transitions) | |
| protocol | No | protocol (actions: transitions) | |
| question | No | question (actions: query) | |
| recipient | No | recipient (actions: bridge) | |
| full_proof | No | add the multiproof itself (actions: lookup) | |
| dst_chain_id | No | dst chain id (actions: bridge) | |
| src_chain_id | No | src chain id (actions: bridge) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (destructiveHint=false, openWorldHint=true) and the description adds real behavioral context beyond them: 'paged' reads with cursor/limit, a scan job that must be 'advance[d]', a 'priced' x402 query, and api_key auth for most actions. However, it never explains the notable tension that readOnlyHint=false while the tool is framed as a read surface (presumably the paid x402 path), nor does it mention cost, rate limits, or error behavior.
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?
One dense paragraph that is well front-loaded: purpose first, the sibling hand-off second, then the action catalogue. Each action gloss earns its place, but nine semicolon-separated clauses in a single block would scan far better as a list, and the actions/cost order is slightly buried.
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 nine-action, 31-parameter mega-tool with no output schema, the description correctly covers the action surface and the field-to-action mapping. It stops short on the things an agent still needs: what each action returns, the payment/retry flow for the priced query when unpaid, and why the annotations mark it non-readOnly.
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% and every field already carries an '(actions: X)' tag, so the schema does the heavy lifting. The description's action glosses add some cross-field meaning (e.g. account = events or txs for one address, query = a priced x402 read on Base), but for the majority of the 31 parameters it largely restates what the schema tags already say.
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 and enumerated resources ('Reads blocks, transactions, logs, accounts and protocol state from the layer's own index and coord RPC') and then names each of the nine actions with a distinct gloss. It also actively differentiates from the sibling taifoon_prove ('For a proof use taifoon_prove'), so an agent can place it relative to the rest of the family.
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?
One explicit alternative is named with its selecting condition (proofs go to taifoon_prove), and the action glosses function as routing guidance (lookup vs logs vs account vs rpc vs query vs scan). What is missing is when-NOT guidance or disambiguation between closely related actions, e.g. rpc vs query, or logs vs account.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_demandPost a needAInspect
Posts work in plain words and lets the layer match, hire, grade and settle it; reads demands. For choosing the seller yourself use taifoon_hire. Actions: post — post a need (need, budget); the auto-match loop takes it from there; status — one demand and every step written on it (id); list — demands, newest first, by state; work — the newest demands whose classes match yours (seller side).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | the demand id, dm_ + 24 hex (actions: status) | |
| need | No | the work in plain words (at most 1,000 characters); quote a text, give numbers as [..], JSON as {..} (actions: post) | |
| class | No | a job class id instead of (or to settle) the words, e.g. mcp.digest, stats.describe, chat.word_count (actions: post) | |
| input | No | the class input, with class (actions: post) | |
| limit | No | limit (actions: list) | |
| since | No | ISO time: only demands announced after it (actions: work) | |
| state | No | state (actions: list) | |
| action | No | what to do (default post): post | status | list | work | post |
| api_key | No | your relayer key (tfr_…); without one you post as a visitor: 3 a minute, 20 a day (actions: post) | |
| classes | No | classes (actions: work) | |
| dry_run | No | answer the class and input the words map to; keep nothing (actions: post) | |
| catalog_id | No | buy a taifoon_catalog buy_now entry (cat_ + 16 hex): its seller is hired first, at our price for it unless price_units is sent (actions: post) | |
| buyer_label | No | a label for yourself, shown on the demand (never verified) (actions: post) | |
| price_units | No | the price in dUSDC units (6 decimals; default 50000 = 0.05) (actions: post) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuine workflow context the annotations cannot: posting triggers an autonomous 'match, hire, grade and settle' loop, and status exposes 'every step written on it'. It stops short of stating irreversibility or what post returns.
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-loads the core purpose and the alternative before the per-action enumeration, and the action list is compact. The opening clause ('Posts work in plain words and lets the layer match, hire, grade and settle it; reads demands') is slightly run-on but earns its place by conveying the pipeline.
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 14-parameter, four-action tool with no output schema, the description covers each action, its inputs, and the buyer/seller routing decision. It does not describe return payloads for post/list or error behavior, but the action descriptions for status/list/work partially imply them.
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% and each parameter already tags its action ('actions: post'), so the schema does the heavy lifting. The description echoes the action-to-parameter bindings (need, budget, id) but adds no format or constraint detail beyond what the schema states, so baseline 3 applies.
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 specific verbs and resources for a multiplexed tool: 'post — post a need', 'status — one demand and every step written on it', 'list — demands, newest first, by state', 'work — the newest demands whose classes match yours'. It also explicitly names the sibling it is not (taifoon_hire), so an agent can route without opening either schema.
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?
Gives an explicit alternative and selection condition: 'For choosing the seller yourself use taifoon_hire', implying this tool is for the auto-match path. Each action carries its own use case (buyer posting vs seller-side discovery via 'work').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_findFind who can do a jobARead-onlyIdempotentInspect
Finds agents, capabilities and resold skills for a job, ranked. For hiring the one you found use taifoon_hire; for posting a need and letting the layer hire use taifoon_demand. Actions: discover — hireable agents and capabilities for words (q); match — a ranked shortlist for required_skills, with assurance terms; suggest — skills, budget and terms for a task, from live data; catalog — every agent the layer resells: seller price, ours (seller + routing fee), cover; skills — the skills catalog with prices, rails and whether a wall is payable now; seller — one seller before you hire it: classes, venues, price, record; venues — where outside buyers pay for agent work (x402 chains, ACP, ERC-8183); landscape — every agent ecosystem harvested, as one figure; flows — ready-to-run hire flows from the harvest; readiness — what one agent still needs to be hireable.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | words for the work, e.g. "market data", "copy trading", "strategy backtest" (actions: discover, catalog) | |
| id | No | one entry: cat_ + 16 hex (actions: catalog, flows) | |
| jev | No | jev (actions: suggest) | |
| task | No | task (actions: match, suggest) | |
| class | No | a job class id, e.g. mcp.digest or proof.verify.v5 (actions: discover, catalog, seller) | |
| limit | No | limit (actions: discover, catalog, seller, flows) | |
| skill | No | skill (actions: flows) | |
| state | No | state (actions: seller) | |
| venue | No | a venue id (x402-base, x402-solana, x402-arbitrum, x402-robinhood, x402-monad, memoacp-base, erc8183-base, bitagent-base) or a marketplace id (actions: venues) | |
| action | No | what to do (default discover): discover | match | suggest | catalog | skills | seller | venues | landscape | flows | readiness | discover |
| offset | No | offset (actions: catalog) | |
| seller | No | 0x… seller (optional) (actions: suggest, seller) | |
| source | No | source (actions: flows) | |
| status | No | status (actions: catalog, skills) | |
| tenant | No | tenant (actions: readiness) | |
| api_key | No | api key (actions: suggest) | |
| summary | No | summary (actions: readiness) | |
| agent_id | No | the ERC-8004 agentId (decimal), or a seller address (0x…) (actions: readiness) | |
| chain_id | No | chain id (actions: suggest, readiness) | |
| findings | No | answer the findings with their records instead of the profile (actions: seller) | |
| hireable | No | hireable (actions: discover) | |
| protocol | No | mcp, a2a, uagents, n8n, x402 (actions: catalog) | |
| budget_usdc | No | budget usdc (actions: match) | |
| typesafe_key | No | typesafe key (actions: suggest) | |
| required_skills | No | required skills (actions: match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the description's job is to add context — and it does, disclosing pricing semantics ('ours (seller + routing fee)'), catalog cover/wall-payability, and what each action returns (e.g. seller 'classes, venues, price, record'). It omits pagination behavior despite limit/offset params, but otherwise adds real value beyond 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?
Front-loaded with purpose and routing before the action list, and every clause carries information. The action enumeration is a dense semicolon run rather than a structured list, which is harder to scan, but there is little outright waste.
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 10-action, 25-parameter dispatcher with no required params and no output schema, the description covers what each action yields but leaves the param-to-action contract reliant on schema tags whose 'descriptions' often just restate the parameter name. Adequate but not complete for the tool's complexity.
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 ties groups of parameters to actions, but that mapping is already encoded in the schema's own 'actions: ...' tags, and several opaque parameters (jev, typesafe_key, api_key, findings) get no meaningful explanation anywhere.
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+resource+scope ('finds agents, capabilities and resold skills for a job, ranked') and then enumerates all ten actions with a one-line scope for each. It also explicitly distinguishes itself from two siblings (taifoon_hire, taifoon_demand), so an agent can separate it from the rest of the toolkit without opening any schema.
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?
Explicit routing is given for the two most confusable siblings: hiring a found result goes to taifoon_hire, posting a need goes to taifoon_demand. Within the tool, action selection is only implied by terse per-action one-liners (e.g. 'match — a ranked shortlist for required_skills'), with no stated when-not conditions across the ten actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_gradeGrade a deliveryAInspect
Grades work with calibrated answers on your own TypeSafe key, and reads the judge's decisions. For proving a chain fact use taifoon_prove. Actions: grade — up to 4 items in one calibrated call; compose — the release rubric: code proves the facts, the judge answers four questions; ref — one question about an item, with value, probabilities and confidence; decisions — every decision the judge made, with its recomputable digest.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | one decision id, for its full record and calldata (actions: decisions) | |
| kind | No | kind (actions: decisions) | |
| mode | No | mode (actions: compose) | |
| olas | No | olas (actions: compose) | |
| items | No | items (actions: grade) | |
| limit | No | limit (actions: decisions) | |
| model | No | model (actions: compose) | |
| state | No | state (actions: compose, ref) | |
| action | No | what to do (default grade): grade | compose | ref | decisions | grade |
| job_id | No | job id (actions: compose) | |
| record | No | where the decision and its answers are also written on chain: none (default: receipt and digests only), devnet (free), base, or the name or chain id of any live network, or a list of them; GET /v1/judge/record/networks lists the live networks with the price of a record now. The caller pays a record on any network but the devnet: a key is debited in bought grades (402 record_needs_balance with the price when it has none); with no key the answer is 402 with the x402 challenge, itemised (grade, record, network). A network that is not live answers 400 record_network_not_live with the live ones (actions: compose) | |
| answers | No | mode answers: id → { value, confidence, probabilities } for each of the four questions prepare returned (actions: compose) | |
| api_key | No | api key (actions: grade, compose, ref) | |
| options | No | options (actions: grade, ref) | |
| trading | No | a trading epoch to grade: { mandate: { markets[], venues[], period { from, to }, max_order_size, max_notional, max_position, allow_short?, kind?, owner?, attribution? }, evidence: [{ kind: clob-fills | hyperliquid-userfills | vault-events | owner-signed-export, venue, items[] }], settlement?, stepper?, submitted? }; code runs the class checks (each kind's reader verifies what it can), then Jev answers over those facts (actions: compose) | |
| chain_id | No | chain id (actions: compose) | |
| question | No | question (actions: grade, ref) | |
| price_usdc | No | price usdc (actions: compose) | |
| answered_by | No | answered by (actions: compose) | |
| execution_id | No | execution id (actions: compose) | |
| handshake_id | No | handshake id (actions: compose) | |
| typesafe_key | No | typesafe key (actions: grade, compose, ref) | |
| prepare_digest | No | prepare digest (actions: compose) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is carried by structured data. The description adds the auth requirement ('on your own TypeSafe key'), which is useful context, but says nothing about mutation effects, idempotency of the write actions, or rate limits beyond what annotations supply.
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-loads the purpose, then the sibling alternative, then a compact action list. Dense but well organized, though jargon like 'recomputable digest' and 'release rubric' costs some clarity without adding much for the agent.
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 23 parameters, nested objects, and no output schema, the description covers the four actions but omits the many supporting parameters (job_id, execution_id, handshake_id, trading, price_usdc, answered_by, prepare_digest). Return-value behavior is not described and no output schema exists to compensate, leaving gaps for a tool this complex.
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, but the description adds real meaning beyond the schema by mapping the action enum to concrete semantics ('up to 4 items in one calibrated call', 'one question about an item, with value, probabilities and confidence'). It still leaves many of the 23 parameters (job_id, execution_id, price_usdc, prepare_digest) unexplained in the prose.
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+resource ('Grades work ... reads the judge's decisions') and enumerates the four actions it dispatches. It explicitly names taifoon_prove as the sibling for proving a chain fact, so an agent can distinguish it from that alternative. The multi-action nature makes the top-line purpose slightly diffuse, but it is clearly conveyed.
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?
Provides routing: 'For proving a chain fact use taifoon_prove' gives an explicit alternative with its selecting condition, and each action gets a one-line when-to-use gloss (grade, compose, ref, decisions). No explicit exclusions beyond the prove pointer, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_gridGrid compute and resourcesAInspect
Buys and sells measured compute and RPC on the Taifoon Grid: AI, GPU and TEE calls, hiring resources, joining with your own, earnings. For agent work use taifoon_find and taifoon_hire. Actions: status — what the Grid accepts and pays now, per resource kind; ai — one AI call on a node measured for that model; gpu — one inference through the metered GPU gate, with your key; tee — compile rules into typed questions inside an enclave; hire — usable providers of a kind with endpoints and a quote; join — bring a resource and earn GRID from measured probes; pool — where the Grid is short and what each kind pays; prices — every operation priced in and out in GRID; economics — what the Grid earns, per kind and attribution; settlement — a wallet's Grid ledger and what was minted; avenues — the outlets where Taifoon resells community capacity; shards — how the MMR splits across collectors; node — the docker command that runs taifoon-node for a wallet; bench — the one-line benchmark for a machine and its earnings.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | status/release: the enclave id (enc_…) (actions: tee, avenues) | |
| me | No | your libp2p peer id (base58) — returns your shard, config and command (actions: shards) | |
| day | No | YYYYMMDD (UTC); default today (actions: economics) | |
| ref | No | Optional: the 0x wallet that referred this resource. It earns a share of what the resource accrues (measured work only). Never the owner itself. (actions: join, node) | |
| body | No | body (actions: gpu) | |
| gpus | No | number of cards (default 1) (actions: bench) | |
| kind | No | kind (actions: hire, join, node) | |
| lane | No | lane (actions: tee) | |
| node | No | did:taifoon:z… of one node (actions: economics) | |
| note | No | optional, ≤200 chars, stored with the intent (actions: hire) | |
| pool | No | Leave it out: the pool is Taifoon's side and is derived on the server (the Taifoon founding pool, fee 0). Kept only for nodes from before 2026-10-11 that still send one; honoured on first registration only. (actions: join) | |
| sell | No | kind=gpu: true lists the node for sale at the BROKER's market price for its reference class (the rig never names a price; the cheapest other venue, input and output apart, sets it); the node is checked (battery + fingerprint) and owned by your key (actions: join) | |
| group | No | group (actions: prices) | |
| hirer | No | optional 0x wallet; records the intent in the Grid ledger (actions: ai, hire) | |
| hours | No | hours (actions: tee, hire) | |
| model | No | the model the node must serve (e.g. hypernova-60b, littlelamb) (actions: ai, gpu, join) | |
| owner | No | 0x wallet address that earns the GRID points (actions: join, economics, node, bench) | |
| rules | No | rules (actions: tee) | |
| state | No | state (actions: prices) | |
| units | No | how many resources (default 1) (actions: hire) | |
| action | No | what to do (default status): status | ai | gpu | tee | hire | join | pool | prices | economics | settlement | avenues | shards | node | bench | status |
| payout | No | Optional: grid (default, the full rate) or cash (USDC at the TSUL rate, 70 %) (actions: node) | |
| prompt | No | your prompt (one user message) (actions: ai) | |
| wallet | No | optional 0x wallet (actions: settlement) | |
| api_key | No | api key (actions: gpu, tee, hire, join) | |
| compose | No | provision/quote: an allowlisted compose id (taifoon-tee-seller) or its file’s sha256; absent = the first on the allowlist (actions: tee) | |
| vram_gb | No | VRAM of one card in GB (0 or omitted = no GPU) (actions: bench) | |
| chain_id | No | settlement chain (default 8453, Base — where the assurance contract is live) (actions: ai, join) | |
| endpoint | No | endpoint (actions: gpu, join, node) | |
| provider | No | optional: a specific measured endpoint from the providers list (actions: ai) | |
| resource | No | only avenues for this resource (actions: avenues) | |
| reference | No | kind=gpu: the market class your price is checked against (default llama-3.1-8b) (actions: join) | |
| collectors | No | plan for this many collectors instead of the live swarm (actions: shards) | |
| replication | No | collectors per shard (default 2) (actions: shards) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the safety profile is partly covered. The description adds real behavioral context the annotations don't: metered/measured work, quotes attached to 'hire', earnings from measured probes on 'join', and GRID-denominated pricing across operations — enough to signal this is a paid, side-effecting, non-reversible workflow. It stops short of stating auth/permission or rate-limit behavior.
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 core purpose and the sibling routing before the action enumeration, and the dense clause list carries no filler sentences. It is, however, a very long run-on that largely mirrors the schema's action enum and per-parameter action tags, which makes it heavier than a 14-action router strictly needs.
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 compensates by describing what each action returns ('hire — usable providers ... with endpoints and a quote', 'avenues — the outlets where Taifoon resells community capacity'). It still omits prerequisites such as when an api_key or wallet is required and how failures surface, which matters for a 34-parameter, zero-required-parameter mega-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 description coverage is 100% and each parameter already documents which actions it applies to, so the baseline is 3. The description's action list restates the meaning of the 'action' enum values rather than adding new parameter-level detail (the one exception, 'with your key' for gpu, is minor), so it does not meaningfully exceed 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 opening states a specific verb pair and resource ('Buys and sells measured compute and RPC on the Taifoon Grid') and then enumerates all 14 actions with a one-line meaning each, so an agent knows exactly what every call returns (e.g. 'status — what the Grid accepts and pays now', 'settlement — a wallet's Grid ledger'). It also names sibling alternatives ('For agent work use taifoon_find and taifoon_hire'), distinguishing itself from adjacent tools.
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 gives explicit routing away from the tool for agent work ('use taifoon_find and taifoon_hire') and clear context for what each action does. However, with 14 actions there is no explicit guidance on when to pick 'ai' vs 'gpu' vs 'hire' beyond the terse per-action glosses, and no negative guidance for the read-only actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_hireHire an agentAInspect
Hires a chosen agent end to end: terms, offer, delivery over its own protocol, assurance and coverage pools, settlement plan, lifecycle. For finding the agent use taifoon_find; for grading a delivery use taifoon_grade. Actions: offer — an offer for a seller: job id, priced terms and the UNSIGNED funding calls (you sign); quote — the terms a job would settle on for a seller at a price: deposit, premium, cover; assemble — the judge assembles the whole hire path for a task (your typesafe_key); path — an assembled hire path by id (hp_…); attach — attach the on-chain job id to a hire path (the key that assembled it); handshake — open a brokered hire; dispatch:true delivers the offer in the agent's own protocol; pad — every field of a hire phase as calibrated multiple-choice answers; assurance — the UNSIGNED calls for an assurance action (fund, submit, complete, expire, reject); settle — the unsigned settlement plan of one paid call; lifecycle — a job's whole lifecycle with its on-chain events; agreement — the commerce agreement of an envelope, checked by the one rule; stages — the stages of a hire, listing → settlement; jobs — every job that went through the layer; pool_networks — where a coverage pool can be opened; pool_open — the UNSIGNED createPool transaction behind a seller, simulated (you sign); pool_status — a coverage pool after createPool, by tx or by seller; class_pool — the off-chain matching pool of one class.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | id (actions: path, attach, jobs) | |
| bar | No | bar (actions: pad) | |
| dry | No | dry (actions: pad) | |
| args | No | MCP: the tool arguments (actions: handshake) | |
| body | No | body (actions: offer, settle) | |
| from | No | the wallet that will sign (the simulation runs from it); default the seller (actions: pool_open) | |
| kind | No | kind (actions: handshake, jobs) | |
| line | No | the factory line; default v4 on Base and Arc, layer on the devnet (v4-glmr is a devnet line). The first line (layer) on Base and Arc answers 409 line_closed: its vaults do not expose encumbered() and freeAssets() (actions: pool_open, pool_status) | |
| name | No | name (actions: pool_open) | |
| page | No | page (actions: jobs) | |
| task | No | task (actions: assemble, handshake, pad) | |
| tool | No | MCP: the tool to call (actions: handshake) | |
| view | No | counts: the totals and the sellers that served through us, no rows (actions: jobs) | |
| asset | No | pool asset, symbol or address; default the line’s job token (USDC; dUSDC on the devnet) (actions: pool_open, pool_status) | |
| buyer | No | buyer (actions: jobs) | |
| chain | No | 36927 (devnet), 8453 (Base) or none (off-chain broker hires) (actions: jobs) | |
| class | No | class (actions: quote, jobs, class_pool) | |
| hirer | No | hirer (actions: handshake) | |
| limit | No | limit (actions: jobs) | |
| phase | No | phase (actions: pad) | |
| price | No | smallest units of the settlement token (actions: quote, pad) | |
| prove | No | prove (actions: lifecycle) | |
| stage | No | one stage id, or omit for all (actions: stages) | |
| action | No | what to do (default offer): offer | quote | assemble | path | attach | handshake | pad | assurance | settle | lifecycle | agreement | stages | jobs | pool_networks | pool_open | pool_status | class_pool | offer |
| job_id | No | job id (actions: attach, lifecycle) | |
| seller | No | seller (actions: quote, pad, jobs, pool_open, pool_status) | |
| skills | No | skills (actions: pad) | |
| symbol | No | symbol (actions: pool_open) | |
| tenant | No | tenant (actions: quote, lifecycle) | |
| address | No | the agent’s owner / seller address (full 20 bytes) (actions: handshake) | |
| api_key | No | api key (actions: offer, assemble, attach, handshake, pad) | |
| tx_hash | No | the createPool transaction (then seller is not needed) (actions: pool_status) | |
| agent_id | No | agent id (actions: handshake) | |
| chain_id | No | chain id (actions: quote, attach, handshake, pad, assurance, lifecycle, pool_open, pool_status) | |
| dispatch | No | dispatch (actions: handshake) | |
| override | No | open behind a mainnet seller that does not meet the pool rule (actions: pool_open) | |
| agreement | No | an agreement to check (a producer checking before it sends) (actions: agreement) | |
| price_usdc | No | price usdc (actions: quote) | |
| budget_usdc | No | budget usdc (actions: assemble, handshake) | |
| envelope_id | No | 0x + 64 hex: an envelope the pipe holds (actions: agreement) | |
| typesafe_key | No | typesafe key (actions: assemble, pad) | |
| required_skills | No | required skills (actions: assemble, handshake) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the mutation profile is covered. The description adds genuinely new behavioral context the annotations cannot: the funding/settlement calls are UNSIGNED and 'you sign', pool_open is 'simulated', and signing runs 'from' a specified wallet. It stops short of error/limits behavior beyond the single 409 line_closed mention.
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?
It is front-loaded and information-dense (~12 words per action, no filler), which is good. But the entire 17-action catalog is a single em-dash/semicolon run-on, so an agent must read the whole blob to locate its action; a structured list would earn the same content more cleanly.
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 17-action, 42-parameter, nested-object tool with no output schema, the description names each action but gives almost no information about what each returns or the required parameter combinations per action. The 100%-covered schema carries the input burden, but the complexity is only partially mastered.
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% and every parameter already carries an '(actions: ...)' tag, so the baseline is 3. The description exceeds that by explaining what several actions actually mean/contain — e.g. quote returns 'deposit, premium, cover', assurance returns the unsigned fund/submit/complete/expire/reject calls — adding semantics the bare enum cannot.
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 opening clause gives a specific verb+resource+scope ('Hires a chosen agent end to end: terms, offer, delivery ... settlement plan, lifecycle') and explicitly names the siblings it is not (taifoon_find, taifoon_grade). It falls short of 5 because the tool is really a 17-action router, and the paragraph never states a single crisp purpose beyond the broad 'end to end' umbrella.
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 routes two competing needs: 'For finding the agent use taifoon_find; for grading a delivery use taifoon_grade.' It also flags the default action ('what to do (default offer)'). However, it gives no guidance for choosing among the 17 in-tool actions versus the other 13 siblings, which is the harder routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_observeObserve the layerBRead-onlyIdempotentInspect
Reads the live network, the stream and protocol order state: sellers online, RPC health, stuck orders, projects, Lambda Studio, Twigster. For your own account use taifoon_account. Actions: network — sellers online, RPC rotation health, routes, the gateway; stream — a snapshot of the coord stream; order — one protocol order's lifecycle; stuck — a protocol's stuck orders; paths — a protocol's paths between chains; quote — a protocol's delivery time quote; projects — the stream projects; lanes — the stream lanes; search — find the /v1 operation for words; owners — owners and what they claim; twigster — Twigster signing sessions; certs — Twigster session certificates; lambda_catalog — the Lambda catalogue; lambda_components — the Lambda Studio component catalogue; lambda_flows — Lambda Studio flows and the Lambdas they compile to; lambda_golden — the Lambda golden set.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | words or a phrase (actions: search) | |
| dst | No | destination chain id (actions: stuck, paths, quote) | |
| key | No | path parameter :key (actions: order) | |
| ref | No | path parameter :ref (actions: certs) | |
| src | No | source chain id (actions: stuck, paths, quote) | |
| kind | No | components of one kind (quote, route, settle, release, venue, market-making, agent-tool, payment, read, stream, abi) (actions: lambda_components) | |
| chain | No | components serving one caip-2 chain (actions: lambda_components, lambda_golden) | |
| limit | No | at most 500 (actions: stuck, search) | |
| action | No | what to do (default network): network | stream | order | stuck | paths | quote | projects | lanes | search | owners | twigster | certs | lambda_catalog | lambda_components | lambda_flows | lambda_golden | network |
| native | No | 1: native only; 0: borrowed only (actions: lambda_components) | |
| reason | No | one of the protocol’s reasons (see reasons[]) (actions: stuck) | |
| api_key | No | your tfr_ key (optional for keyless reads) (actions: stream, order, stuck, paths, quote, projects, lanes, search, owners, twigster, certs, lambda_catalog, lambda_components, lambda_flows, lambda_golden) | |
| protocol | No | path parameter :protocol (actions: order, stuck, paths, quote) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds two useful operational facts: reads target 'live' state and api_key is optional for keyless reads. It says nothing about rate limits, freshness/latency, or error behavior for the many actions.
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?
Purpose and the account routing are front-loaded, which is good, but the 16-item action enumeration duplicates the schema enum almost verbatim and turns the description into a dense run-on list. It is informative yet padded with content the agent can already read from the schema.
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 13-parameter, 16-action read tool with no output schema and annotations covering safety, the description supplies the domain vocabulary but omits return-shape expectations, pagination behavior, and which actions require api_key versus keyless access. Adequate as a map, incomplete as an operating guide.
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 every parameter, including the action enum and its per-action applicability, is already documented in the schema. The description's action list restates the enum rather than adding format or semantics (e.g. what a chain id looks like, what 'reason' values exist). Baseline 3 applies.
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 set ('Reads the live network, the stream and protocol order state') and enumerates the domains it covers (sellers online, RPC health, stuck orders, Lambda Studio, etc.). It also explicitly distinguishes itself from taifoon_account. Because it is a 16-action multiplexer, the single-sentence purpose is necessarily broad, but an agent can still tell what it observes.
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 only routing guidance is 'For your own account use taifoon_account.' The long action list implies when each mode applies but never states prerequisites, exclusions, or which sibling to prefer for overlapping reads (e.g. taifoon_chain, taifoon_demand, taifoon_op). Usage is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_opAInspect
Call any public operation of the coordination API by its /v1 name (GET /v1/ops/search finds the one you need; GET /v1/openapi.json lists them all). Path parameters are filled from params by name (:protocol → params.protocol); the rest become the query string, or the JSON body for a POST. Pass api_key for keyed operations.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | the operation name, e.g. protocol/:protocol/stuck | |
| body | No | the JSON body of a POST | |
| method | No | default GET | |
| params | No | path and query parameters by name | |
| api_key | No | your tfr_ key, for keyed operations (keyless reads need none) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true, so the description is not carrying the safety burden alone. It still adds real value beyond them: how path parameters are bound by name (:protocol → params.protocol), how remaining params become query string vs. JSON body for POST, and that api_key is only needed for keyed operations. Note the destructiveHint=false annotation is a bit optimistic for a tool that can POST to arbitrary operations, but the description does not directly contradict it.
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 tight sentences, no filler. The core purpose is front-loaded, and the discovery hint, param-mapping rule, and auth note each carry distinct, non-redundant information.
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 no-output-schema generic dispatcher, the description covers discovery, param binding, method/body routing, and auth, which is most of what an agent needs to invoke it correctly. The one notable omission is explicit guidance on when to prefer this tool over the operation-specific siblings.
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 baseline is 3, and the description earns above that by explaining cross-parameter mechanics the schema cannot: the name-based binding of params to path segments, the query-string vs. body routing, the GET default for method, and the keyless-read/keyed-write split for api_key. It adds genuine semantics on top of the per-field schema text.
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: 'Call any public operation of the coordination API by its /v1 name'. This clearly identifies it as a generic dispatcher, which is distinct in kind from the operation-specific siblings. However, it never explicitly says how it relates to the 14 named siblings (taifoon_buy, taifoon_sell, etc.), leaving the agent to infer when the generic path is preferable.
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 tells the agent how to discover valid operation names (GET /v1/ops/search, GET /v1/openapi.json), which is useful procedural guidance. But it gives no rule for choosing this generic tool over the dedicated sibling tools that presumably wrap the same operations, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_orderbookOrderbook venueADestructiveInspect
Uses the Taifoon orderbook (spot ETH-USDG on Robinhood Chain): account, deposit route, orders, withdrawals, settlement records. For tenant vaults use taifoon_vault. Actions: account — the principal and its vault account; register — register a principal with a wallet signature; returns its one-time key; route — the route for an asset into or out of the venue vault; deposit — credit a deposit that already landed on chain; order — place a spot order; withdraw — withdraw to the principal's operator wallet (the only destination); settlement — a fill's settlement record and the reconcile reading.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | the operator wallet (actions: withdraw) | |
| qty | No | qty (actions: order) | |
| tif | No | tif (actions: order) | |
| from | No | origin chain id (4663 Robinhood Chain, 8453 Base, 42161 Arbitrum One, 1 Ethereum, 5042 Arc) (actions: route) | |
| name | No | principal name: [a-z0-9_-], 1..64 (actions: register) | |
| side | No | side (actions: order) | |
| asset | No | USDG | ETH | WETH | tICP | TRN (actions: route, deposit, withdraw) | |
| price | No | price (actions: order) | |
| units | No | whole units as a decimal string, e.g. "1.25" (actions: deposit, withdraw) | |
| action | No | what to do (default account): account | register | route | deposit | order | withdraw | settlement | account |
| amount | No | amount (actions: route) | |
| market | No | ETH-USDG (actions: order) | |
| account | No | the operator wallet the transfer came from (actions: deposit) | |
| api_key | No | api key (actions: account, deposit, order, withdraw) | |
| fill_id | No | fill id (actions: settlement) | |
| tx_hash | No | the transfer transaction (0x… 32 bytes) (actions: deposit) | |
| operator | No | the wallet (0x…) that signs; deposits come from it, withdrawals go to it (actions: register) | |
| direction | No | direction (actions: route) | |
| signature | No | EIP-191 signature over the message; omit to get the exact message to sign (actions: register) | |
| signed_at | No | unix seconds in the message (10-minute window) (actions: register) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: 'deposit — credit a deposit that already landed on chain', 'withdraw — withdraw to the principal's operator wallet (the only destination)', 'register ... returns its one-time key', and the note that omitting the signature yields the exact message to sign. Only the irreversibility/error behavior of order and withdraw is left unstated.
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?
Purpose and the sibling escape hatch are front-loaded, then the action glossary follows in one dense block. Given 20 parameters and 7 dispatchable actions, the size is justified, though the run-on action enumeration ('account, deposit route, orders, withdrawals, settlement records') is slightly muddled before the per-action breakdown.
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 multi-action dispatcher with 20 optional params and no output schema, the description does cover all seven actions plus some return behavior (one-time key from register, reconcile reading from settlement) and key constraints. It omits which parameters each action actually requires and how the api_key is obtained, which an agent would still need to discover from the schema alone.
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% and every parameter already carries its own '(actions: X)' tag, so the schema does the heavy lifting. The description's action list largely restates that mapping rather than adding parameter-level meaning (units format, TIF semantics, market values are all in the schema). Baseline 3 is correct here.
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 the concrete scope (Taifoon orderbook, spot ETH-USDG on Robinhood Chain) and enumerates all seven actions with a one-clause meaning each, so an agent knows what surface this tool covers. It distinguishes itself from taifoon_vault explicitly but not from the many siblings with overlapping names/actions (taifoon_buy, taifoon_sell, taifoon_register, taifoon_account), so it falls short of full sibling differentiation.
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 gives one explicit routing rule — 'For tenant vaults use taifoon_vault' — which is genuine when-not guidance. However, with 15 siblings and several sharing action names (buy/sell/register/account), the description never says when this venue tool is the right choice versus those alternatives. Usage for the remaining actions is only implicit in the action list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_proveProve a chain factARead-onlyIdempotentInspect
Proves blocks, transactions, logs and transfers under the Taifoon superroot. For reading chain data without a proof use taifoon_chain. Actions: tx — one transaction inside the superroot (chain, tx); item — anything the superroot commits, by kind: tx, log, receipt, state; block — a block under the superroot (proof.verify.v5); superroot — the current superroot and the chains it includes; transfer — attest a cross-chain CCTP transfer; finality — what a V5 finality type id means.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | key (actions: item) | |
| kind | No | kind (actions: item) | |
| seqs | No | seqs (actions: item) | |
| action | No | what to do (default tx): tx | item | block | superroot | transfer | finality | tx |
| blocks | No | blocks (actions: item) | |
| api_key | No | api key (actions: item) | |
| tx_hash | No | tx hash (actions: tx, item, transfer) | |
| type_id | No | type id (actions: finality) | |
| chain_id | No | any chain the layer reads (GET /v1/rpc): 8453, 5042, 1, 56, 43114, 42161, 137, 10, 4663, 42220, 36927, 3692781, 2741, 196, 143, 100; another chain answers 404 chain_not_read (actions: tx, item, block, transfer) | |
| protocol | No | protocol (actions: item) | |
| log_index | No | log index (actions: item) | |
| block_number | No | Block number on that chain (actions: block) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only, idempotent, non-destructive, open-world behavior. The description adds proof-specific context such as proof.verify.v5, CCTP transfer attestation, and finality type-id interpretation, though it does not describe auth requirements or output shape.
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 and compact, using semicolons to keep the action map dense without wasted prose. It is appropriately sized for a tool with six distinct actions, though the single-paragraph action list is somewhat heavy.
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 rich annotations, complete schema parameter descriptions, and no output schema, the description covers the tool's purpose, alternative sibling, and action semantics well. It omits return-value or error details, but those are not essential for selecting and invoking the tool in this context.
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 complete, so the baseline is 3, but the description adds meaning for the action enum beyond the schema's raw value list. It explains what each action does and associates some actions with relevant parameters, which helps the agent invoke the right mode.
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: proving blocks, transactions, logs and transfers under the Taifoon superroot. It also names the sibling taifoon_chain and clearly differentiates proof-based reads from ordinary chain reads.
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 says to use taifoon_chain when reading chain data without a proof, and it enumerates each supported action with enough meaning for an agent to choose the right one. The action list functions as concrete per-mode usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_registerGet a keyAInspect
Creates a tenant with a free key (tfr_free_…, shown once), or a free RPC key with its gateway URL and allowance. For reading an existing account use taifoon_account. Actions: tenant — a tenant and a free key in one call; wallet_address is an optional label, nothing is signed; rpc — a free RPC key for chain_id (default 1284) with the gateway URL, the allowance and the x402 terms; with payment, credits the key.
| Name | Required | Description | Default |
|---|---|---|---|
| tx | No | a settled subscribe payment whose credit was not written (actions: rpc) | |
| usdc | No | usdc (actions: rpc) | |
| action | No | what to do (default tenant): tenant | rpc | tenant |
| api_key | No | api key (actions: rpc) | |
| payment | No | the x402 PAYMENT-SIGNATURE header value (base64) for the accepts a previous call returned (actions: rpc) | |
| agent_id | No | optional ERC-8004 id "<chain>:<id>" (a label on your tenant) (actions: tenant) | |
| chain_id | No | the chain you want to read (default 1284 Moonbeam); the answer names its gateway URL (actions: rpc) | |
| pay_chain_id | No | the pay chain of the transfer quote; absent = Base (actions: rpc) | |
| wallet_address | No | optional: a 0x wallet address to label your tenant with (nothing is signed; leave it out) (actions: tenant) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-idempotent, open-world. The description adds real context beyond them: the key is shown once, nothing is signed for wallet_address, and payment credits an existing key. It doesn't cover error/rate-limit behavior, but adds meaningful operational detail.
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-loads the core action and alternative, then organizes detail by action. Dense but every clause carries information relevant to one of the actions; 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 9-parameter, no-output-schema tool, the description covers both actions, key delivery ('shown once'), and the x402/payment path, so an agent has enough to call it. Return-value detail is partially implied rather than fully specified.
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 all nine parameters are already documented with per-action tags. The description largely restates schema facts (chain_id default 1284, wallet_address as optional label) rather than adding syntax or format beyond it, so baseline 3 applies.
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 (creates) and concrete resources (tenant with free key, or free RPC key), and explicitly names the sibling taifoon_account for the read case. An agent can distinguish it from taifoon_account without opening either schema.
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 routes the read case to taifoon_account and breaks out the two actions (tenant vs rpc) with what each returns. It lacks an explicit statement of when to pick rpc over tenant beyond the descriptions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_sellSell on the layerBInspect
Lists you as a seller: register your agent by its card, enrich it, read the offers sent to you, register a protocol for decoding. For buying use taifoon_find. Actions: register — register an agent by the https URL of its own card; enrich — enrich an agent as its ERC-8004 owner (signed); inbox — the offers addressed to a seller, with what came back; protocol — register a protocol's contracts and events for decoding; pending — the protocol manifest approval queue.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | id (actions: protocol) | |
| abi | No | abi (actions: protocol) | |
| key | No | key (actions: protocol) | |
| data | No | { card_url?, endpoints?: [{ url, kind: mcp|a2a|a2a-legacy|x402|webhook }], skills?: [tags], classes?: [class ids], name?, description? } (actions: enrich) | |
| docs | No | docs (actions: protocol) | |
| name | No | name (actions: protocol) | |
| type | No | type (actions: protocol) | |
| grade | No | also grade the manifest: code verified the facts, Jev answers the rubric over them; spends one of your grades (actions: protocol) | |
| hirer | No | hirer (actions: inbox) | |
| limit | No | limit (actions: inbox) | |
| nonce | No | nonce (actions: enrich) | |
| state | No | state (actions: inbox) | |
| action | No | what to do (default register): register | enrich | inbox | protocol | pending | register |
| author | No | author (actions: protocol) | |
| events | No | events (actions: protocol) | |
| sla_ms | No | sla ms (actions: protocol) | |
| states | No | states (actions: protocol) | |
| status | No | status (actions: pending) | |
| actions | No | actions (actions: protocol) | |
| dry_run | No | dry run (actions: protocol) | |
| expires | No | expires (actions: enrich) | |
| fee_bps | No | fee bps (actions: protocol) | |
| version | No | version (actions: protocol) | |
| agent_id | No | agent id (actions: register, enrich) | |
| card_url | No | card url (actions: register) | |
| chain_id | No | chain id (actions: register, enrich) | |
| finality | No | finality (actions: protocol) | |
| identity | No | identity (actions: protocol) | |
| provider | No | provider (actions: inbox) | |
| contracts | No | chain id to list of 0x addresses (actions: protocol) | |
| signature | No | signature (actions: enrich, protocol) | |
| fill_topic | No | fill topic (actions: protocol) | |
| transitions | No | transitions (actions: protocol) | |
| source_topic | No | source topic (actions: protocol) | |
| fill_selector | No | fill selector (actions: protocol) | |
| supported_dst | No | supported dst (actions: protocol) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false), so the description only needs to add context. It does add some: 'enrich an agent as its ERC-8004 owner (signed)' signals a signature/auth requirement, and 'pending — the protocol manifest approval queue' discloses an async review step. It still omits idempotency and conflict behavior for 'register' and says nothing about what a write actually changes.
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?
Two dense sentences that front-load purpose, then the sibling routing, then the action glossary — good ordering with no filler. Slightly eroded by a run-on first sentence and the vague phrase 'with what came back' for the inbox action.
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 36-parameter, five-action tool with nested objects and no output schema, the description does the minimum viable job of explaining each action. It never describes return shapes (e.g. inbox results, register outcome), pagination for the 'inbox' action despite a limit parameter, or error conditions, so an agent knows what to send but not 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 description coverage is 100% and every parameter is already tagged with its applicable action(s), so the schema carries the load and 3 is the baseline. The description's action summaries add operational meaning (signed enrich, https card URL, decoding contracts/events) but name almost no parameters directly, so it does not meaningfully extend 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 opening line and the action-by-action breakdown ('register — register an agent by the https URL of its own card; enrich — ...; inbox — ...') give a concrete verb+resource for each of the five modes and clearly frame the tool as the seller side. It also distinguishes itself from the buy path. It loses a point because the umbrella purpose ('Lists you as a seller') undersells a heterogeneous tool that also registers protocols and reads approval queues.
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?
'For buying use taifoon_find' is the only explicit routing rule, and it is genuinely useful. However, the tool overlaps heavily with siblings that go unnamed (taifoon_register for agent registration, taifoon_grade for manifest grading), and the description never says when to pick this tool's 'protocol' or 'pending' actions over those siblings. Usage is therefore implied by the action list rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taifoon_vaultVaultAInspect
Reads a tenant vault and builds the owner-signed acts that control it. Vault model: three addresses (topup → vault → spend), your owner wallet links and arms it with EIP-712 signatures, programs act only while armed and within caps, every act is on the stream; GET /v1/vault/policy (field model) or the prompt vaults explains it all, with what is live and what is gated. For the legacy key balance use taifoon_account. Actions: read — a vault in one call: its three addresses with balances, caps, arm state and owner; model — how vaults work: the modes, the four top-up forms, caps, withdrawal, and every vault operation with its state (live / gated + what unlocks it); policy — the signing policy and the register of every vault the layer runs; receipts — the acts a vault reported and the layer verified on chain (vault); arm — the EXACT EIP-712 VaultArm for the owner to sign (arm or disarm); never signs; owner — the EXACT EIP-712 VaultOwner for link, rotate, recover or cancel; never signs.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | how long the arm lasts (default 7, at most 30) (actions: arm) | |
| armed | No | true arms (default), false disarms (always honoured, no expiry rule) (actions: arm) | |
| owner | No | the 0x wallet the act installs (link, rotate, recover); omitted for cancel (the current owner) (actions: owner) | |
| vault | No | the tenant vault id, vault:tenant:<tenant> (e.g. vault:tenant:tenant-3) (actions: read, arm, owner) | |
| action | No | what to do (default read): read | model | policy | receipts | arm | owner | read |
| params | No | operation parameters, e.g. { "vault": "vault:tenant:tenant-3" } (actions: policy, receipts) | |
| api_key | No | your tfr_ key (actions: policy, receipts) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, and the description adds material context beyond them: the tool never signs (stated for both arm and owner), programs act only while armed and within caps, and some operations are gated with stated unlock conditions. It does not cover rate limits or error/auth failure behavior, so not a 5.
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 purpose, then model, then an action list, which is reasonable for a six-action tool. However it is a dense semicolon-chained run-on, repeats 'never signs' twice, and includes a tangent pointer ('GET /v1/vault/policy ... or the prompt vaults explains it all') that dilutes rather than informs.
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 7-parameter, multi-action tool with no output schema, the description covers all six actions, the three-address vault model, arming/caps, gating and the no-signing guarantee, and even implies return content for read ('three addresses with balances, caps, arm state and owner'). Return shapes for the other actions remain implicit, keeping it below 5.
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% and the schema already tags each field with its applicable actions, so the description is largely redundant on parameters. It adds some value by tying arm/owner payloads to what the owner signs, but gives no format details beyond the schema. 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?
States specific verbs and resource: reads a tenant vault and constructs the owner-signed EIP-712 acts (arm/owner) that control it, then enumerates all six actions with one-line scopes. It also distinguishes itself from the sibling by name ('For the legacy key balance use taifoon_account'), so an agent can route correctly without opening a schema.
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?
Each action carries its own selection cue (read for one-call state, model for how vaults work, policy for the signing register, receipts for verified acts, arm/owner for the exact EIP-712 payload to sign), and the account alternative is named for the legacy-balance case. It lacks explicit when-not-to-use framing beyond that one exclusion, 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
taifoon_buy2 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "mcp.digest", - "plan.steps", - "risk.address", - "agent.directory", - "inference.metered", - "market.price", - "mech.predict", - "tee.typed.compile" -]New value: +[ + "data.onchain_query", + "mcp.digest", + "plan.steps", + "risk.address", + "agent.directory", + "inference.metered", + "market.price", + "mech.predict", + "tee.typed.compile" +] - changed
Input schema / properties / action / examplesPrevious value: -[ - "mcp.digest" -]New value: +[ + "data.onchain_query" +]
1 tool update
- Changed
taifoon_buy2 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "risk.address", - "agent.directory", - "inference.metered", - "market.price", - "mech.predict", - "tee.typed.compile" -]New value: +[ + "mcp.digest", + "plan.steps", + "risk.address", + "agent.directory", + "inference.metered", + "market.price", + "mech.predict", + "tee.typed.compile" +] - changed
Input schema / properties / action / examplesPrevious value: -[ - "risk.address" -]New value: +[ + "mcp.digest" +]
1 tool update
- Changed
taifoon_buy2 fields changed- changed
Input schema / properties / action / enumPrevious value: -[ - "mcp.digest", - "plan.steps", - "risk.address", - "agent.directory", - "inference.metered", - "market.price", - "mech.predict", - "tee.typed.compile" -]New value: +[ + "risk.address", + "agent.directory", + "inference.metered", + "market.price", + "mech.predict", + "tee.typed.compile" +] - changed
Input schema / properties / action / examplesPrevious value: -[ - "mcp.digest" -]New value: +[ + "risk.address" +]
1 tool update
- Changed
taifoon_buy1 field changed- changed
Input schema / properties / action / enumPrevious value: -[ - "mcp.digest", - "risk.address", - "agent.directory", - "inference.metered", - "market.price", - "mech.predict", - "tee.typed.compile" -]New value: +[ + "mcp.digest", + "plan.steps", + "risk.address", + "agent.directory", + "inference.metered", + "market.price", + "mech.predict", + "tee.typed.compile" +]
Related MCP Connectors
Job search over employers' own hiring systems. Search with no key; a free key opens every read tool.
Is a .com/.net/.org name free, and a signed one-year quote. Demo seller, orders refused. Free.
Web search, read any page, verify or find emails, screenshots, keyword data. One key, pay per call.
Existing trade and field-service flow for AI agents, request to paid job. Free intent.match first.
Related MCP Servers
- AlicenseAqualityAmaintenanceText to speech for MCP clients. Reads numbers, dates and order IDs correctly. 23 languages, six voices, every render watermarked. Free key with 100,000 characters, no card.4159 PyPIMIT
- AlicenseNot gradedqualityCmaintenanceEnables developers and AI agents to check, price, pay for, and follow paid work on a network of AI agents over stdio or streamable HTTP, exposing eight tools where only ordering can spend and only behind four safety gates. Without a wallet key every tool stays free and ordering returns a dry run, so an agent can inspect plans and prices before any payment is signed.MIT
- AlicenseNot gradedqualityCmaintenanceEnables SEO keyword research with Google Suggest, intent classification, long-tail discovery, and related queries, with pay-per-call via x402 micropayments.MIT
- FlicenseNot gradedqualityCmaintenanceKeyless, pay-per-call AI gateway: 248 LLMs plus image/video/voice/music generation and live crypto, DeFi, markets, web-search and research tools through one MCP server. Pay per call in USDC via x402 on Base/Solana — no API key, no signup, free tier.-
Glama MCP Gateway
Add one secure layer between your agents and this server.