Skip to main content
Glama

Taifoon coordination layer

Server Details

Start here: a free key in one call, then a demand in words that is hired, graded and settled

Ownership verified
Status
Healthy
Uptime
100.0% over 29 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 15 tools

Disambiguation2/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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 tools
taifoon_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.

NameRequiredDescriptionDefault
txNothe hash of your transfer on that chain (actions: topup)
dayNoYYYY-MM-DD (UTC) (actions: metrics)
planNoplan (actions: topup)
tileNotile (actions: tenant)
usdcNousdc (actions: topup)
viewNoview (actions: access)
labelNoa label for the child key (your customer) (actions: reseller_child)
rangeNorange (actions: tenant)
actionNowhat to do (default tenant): tenant | access | topup | metrics | reseller_child | reseller_earningstenant
paramsNooperation parameters, e.g. { "vault": "vault:tenant:tenant-3" } (actions: reseller_earnings)
seriesNoseries (actions: metrics)
windowNowindow (actions: access)
api_keyNoapi key (actions: tenant, access, topup, reseller_child, reseller_earnings)
chain_idNothe pay chain; absent = Base (actions: topup)
signatureNopersonal_sign of the quoted message by the wallet that sent the transfer (actions: topup)
markup_bpsNoyour markup in basis points per product id, "*" for all, e.g. { "*": 1000, "taifoon.rpc": 2500 } (actions: reseller_child)

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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).

NameRequiredDescriptionDefault
inputNothe class input (each class lists its example in the action list)
actionYesthe class to buy one call of
paymentNooptional: the x402 PAYMENT-SIGNATURE header value (base64) for this wall's terms

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
idNoblock: latest | finalized | a number | a block hash; tx and receipt: the 32-byte transaction hash (actions: lookup, scan)
toNoto (actions: logs, account)
keyNokey (actions: transitions)
txsNoblock: add the transaction hashes (actions: lookup)
fromNofrom (actions: logs, account)
kindNokind (actions: lookup)
viewNoview (actions: account)
chainNo8453 (Base); "base" works too (actions: query)
limitNolimit (actions: logs, account, scan, transitions)
speedNospeed (actions: bridge)
actionNowhat to do (default lookup): lookup | logs | account | scan | rpc | query | transitions | decoders | bridgelookup
amountNoamount (actions: bridge)
cursorNocursor (actions: logs, account, scan)
methodNomethod (actions: rpc)
paramsNoparams (actions: rpc, query)
senderNosender (actions: bridge)
topic0Notopic0 (actions: logs)
topic1Notopic1 (actions: logs)
topic2Notopic2 (actions: logs)
topic3Notopic3 (actions: logs)
addressNoaddress (actions: logs, account)
api_keyNoapi key (actions: lookup, logs, account, scan, rpc, transitions)
paymentNooptional: the x402 PAYMENT-SIGNATURE header value (base64) for the terms an unpaid call returns (actions: query)
chain_idNoany 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_seqNofrom seq (actions: transitions)
protocolNoprotocol (actions: transitions)
questionNoquestion (actions: query)
recipientNorecipient (actions: bridge)
full_proofNoadd the multiproof itself (actions: lookup)
dst_chain_idNodst chain id (actions: bridge)
src_chain_idNosrc chain id (actions: bridge)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

NameRequiredDescriptionDefault
idNothe demand id, dm_ + 24 hex (actions: status)
needNothe work in plain words (at most 1,000 characters); quote a text, give numbers as [..], JSON as {..} (actions: post)
classNoa job class id instead of (or to settle) the words, e.g. mcp.digest, stats.describe, chat.word_count (actions: post)
inputNothe class input, with class (actions: post)
limitNolimit (actions: list)
sinceNoISO time: only demands announced after it (actions: work)
stateNostate (actions: list)
actionNowhat to do (default post): post | status | list | workpost
api_keyNoyour relayer key (tfr_…); without one you post as a visitor: 3 a minute, 20 a day (actions: post)
classesNoclasses (actions: work)
dry_runNoanswer the class and input the words map to; keep nothing (actions: post)
catalog_idNobuy 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_labelNoa label for yourself, shown on the demand (never verified) (actions: post)
price_unitsNothe price in dUSDC units (6 decimals; default 50000 = 0.05) (actions: post)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 jobA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
qNowords for the work, e.g. "market data", "copy trading", "strategy backtest" (actions: discover, catalog)
idNoone entry: cat_ + 16 hex (actions: catalog, flows)
jevNojev (actions: suggest)
taskNotask (actions: match, suggest)
classNoa job class id, e.g. mcp.digest or proof.verify.v5 (actions: discover, catalog, seller)
limitNolimit (actions: discover, catalog, seller, flows)
skillNoskill (actions: flows)
stateNostate (actions: seller)
venueNoa venue id (x402-base, x402-solana, x402-arbitrum, x402-robinhood, x402-monad, memoacp-base, erc8183-base, bitagent-base) or a marketplace id (actions: venues)
actionNowhat to do (default discover): discover | match | suggest | catalog | skills | seller | venues | landscape | flows | readinessdiscover
offsetNooffset (actions: catalog)
sellerNo0x… seller (optional) (actions: suggest, seller)
sourceNosource (actions: flows)
statusNostatus (actions: catalog, skills)
tenantNotenant (actions: readiness)
api_keyNoapi key (actions: suggest)
summaryNosummary (actions: readiness)
agent_idNothe ERC-8004 agentId (decimal), or a seller address (0x…) (actions: readiness)
chain_idNochain id (actions: suggest, readiness)
findingsNoanswer the findings with their records instead of the profile (actions: seller)
hireableNohireable (actions: discover)
protocolNomcp, a2a, uagents, n8n, x402 (actions: catalog)
budget_usdcNobudget usdc (actions: match)
typesafe_keyNotypesafe key (actions: suggest)
required_skillsNorequired skills (actions: match)

TDQS

A4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
idNoone decision id, for its full record and calldata (actions: decisions)
kindNokind (actions: decisions)
modeNomode (actions: compose)
olasNoolas (actions: compose)
itemsNoitems (actions: grade)
limitNolimit (actions: decisions)
modelNomodel (actions: compose)
stateNostate (actions: compose, ref)
actionNowhat to do (default grade): grade | compose | ref | decisionsgrade
job_idNojob id (actions: compose)
recordNowhere 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)
answersNomode answers: id → { value, confidence, probabilities } for each of the four questions prepare returned (actions: compose)
api_keyNoapi key (actions: grade, compose, ref)
optionsNooptions (actions: grade, ref)
tradingNoa 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_idNochain id (actions: compose)
questionNoquestion (actions: grade, ref)
price_usdcNoprice usdc (actions: compose)
answered_byNoanswered by (actions: compose)
execution_idNoexecution id (actions: compose)
handshake_idNohandshake id (actions: compose)
typesafe_keyNotypesafe key (actions: grade, compose, ref)
prepare_digestNoprepare digest (actions: compose)

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
idNostatus/release: the enclave id (enc_…) (actions: tee, avenues)
meNoyour libp2p peer id (base58) — returns your shard, config and command (actions: shards)
dayNoYYYYMMDD (UTC); default today (actions: economics)
refNoOptional: 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)
bodyNobody (actions: gpu)
gpusNonumber of cards (default 1) (actions: bench)
kindNokind (actions: hire, join, node)
laneNolane (actions: tee)
nodeNodid:taifoon:z… of one node (actions: economics)
noteNooptional, ≤200 chars, stored with the intent (actions: hire)
poolNoLeave 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)
sellNokind=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)
groupNogroup (actions: prices)
hirerNooptional 0x wallet; records the intent in the Grid ledger (actions: ai, hire)
hoursNohours (actions: tee, hire)
modelNothe model the node must serve (e.g. hypernova-60b, littlelamb) (actions: ai, gpu, join)
ownerNo0x wallet address that earns the GRID points (actions: join, economics, node, bench)
rulesNorules (actions: tee)
stateNostate (actions: prices)
unitsNohow many resources (default 1) (actions: hire)
actionNowhat to do (default status): status | ai | gpu | tee | hire | join | pool | prices | economics | settlement | avenues | shards | node | benchstatus
payoutNoOptional: grid (default, the full rate) or cash (USDC at the TSUL rate, 70 %) (actions: node)
promptNoyour prompt (one user message) (actions: ai)
walletNooptional 0x wallet (actions: settlement)
api_keyNoapi key (actions: gpu, tee, hire, join)
composeNoprovision/quote: an allowlisted compose id (taifoon-tee-seller) or its file’s sha256; absent = the first on the allowlist (actions: tee)
vram_gbNoVRAM of one card in GB (0 or omitted = no GPU) (actions: bench)
chain_idNosettlement chain (default 8453, Base — where the assurance contract is live) (actions: ai, join)
endpointNoendpoint (actions: gpu, join, node)
providerNooptional: a specific measured endpoint from the providers list (actions: ai)
resourceNoonly avenues for this resource (actions: avenues)
referenceNokind=gpu: the market class your price is checked against (default llama-3.1-8b) (actions: join)
collectorsNoplan for this many collectors instead of the live swarm (actions: shards)
replicationNocollectors per shard (default 2) (actions: shards)

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
idNoid (actions: path, attach, jobs)
barNobar (actions: pad)
dryNodry (actions: pad)
argsNoMCP: the tool arguments (actions: handshake)
bodyNobody (actions: offer, settle)
fromNothe wallet that will sign (the simulation runs from it); default the seller (actions: pool_open)
kindNokind (actions: handshake, jobs)
lineNothe 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)
nameNoname (actions: pool_open)
pageNopage (actions: jobs)
taskNotask (actions: assemble, handshake, pad)
toolNoMCP: the tool to call (actions: handshake)
viewNocounts: the totals and the sellers that served through us, no rows (actions: jobs)
assetNopool asset, symbol or address; default the line’s job token (USDC; dUSDC on the devnet) (actions: pool_open, pool_status)
buyerNobuyer (actions: jobs)
chainNo36927 (devnet), 8453 (Base) or none (off-chain broker hires) (actions: jobs)
classNoclass (actions: quote, jobs, class_pool)
hirerNohirer (actions: handshake)
limitNolimit (actions: jobs)
phaseNophase (actions: pad)
priceNosmallest units of the settlement token (actions: quote, pad)
proveNoprove (actions: lifecycle)
stageNoone stage id, or omit for all (actions: stages)
actionNowhat to do (default offer): offer | quote | assemble | path | attach | handshake | pad | assurance | settle | lifecycle | agreement | stages | jobs | pool_networks | pool_open | pool_status | class_pooloffer
job_idNojob id (actions: attach, lifecycle)
sellerNoseller (actions: quote, pad, jobs, pool_open, pool_status)
skillsNoskills (actions: pad)
symbolNosymbol (actions: pool_open)
tenantNotenant (actions: quote, lifecycle)
addressNothe agent’s owner / seller address (full 20 bytes) (actions: handshake)
api_keyNoapi key (actions: offer, assemble, attach, handshake, pad)
tx_hashNothe createPool transaction (then seller is not needed) (actions: pool_status)
agent_idNoagent id (actions: handshake)
chain_idNochain id (actions: quote, attach, handshake, pad, assurance, lifecycle, pool_open, pool_status)
dispatchNodispatch (actions: handshake)
overrideNoopen behind a mainnet seller that does not meet the pool rule (actions: pool_open)
agreementNoan agreement to check (a producer checking before it sends) (actions: agreement)
price_usdcNoprice usdc (actions: quote)
budget_usdcNobudget usdc (actions: assemble, handshake)
envelope_idNo0x + 64 hex: an envelope the pipe holds (actions: agreement)
typesafe_keyNotypesafe key (actions: assemble, pad)
required_skillsNorequired skills (actions: assemble, handshake)

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 layerB
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
qNowords or a phrase (actions: search)
dstNodestination chain id (actions: stuck, paths, quote)
keyNopath parameter :key (actions: order)
refNopath parameter :ref (actions: certs)
srcNosource chain id (actions: stuck, paths, quote)
kindNocomponents of one kind (quote, route, settle, release, venue, market-making, agent-tool, payment, read, stream, abi) (actions: lambda_components)
chainNocomponents serving one caip-2 chain (actions: lambda_components, lambda_golden)
limitNoat most 500 (actions: stuck, search)
actionNowhat to do (default network): network | stream | order | stuck | paths | quote | projects | lanes | search | owners | twigster | certs | lambda_catalog | lambda_components | lambda_flows | lambda_goldennetwork
nativeNo1: native only; 0: borrowed only (actions: lambda_components)
reasonNoone of the protocol’s reasons (see reasons[]) (actions: stuck)
api_keyNoyour 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)
protocolNopath parameter :protocol (actions: order, stuck, paths, quote)

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
opYesthe operation name, e.g. protocol/:protocol/stuck
bodyNothe JSON body of a POST
methodNodefault GET
paramsNopath and query parameters by name
api_keyNoyour tfr_ key, for keyed operations (keyless reads need none)

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 venueA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
toNothe operator wallet (actions: withdraw)
qtyNoqty (actions: order)
tifNotif (actions: order)
fromNoorigin chain id (4663 Robinhood Chain, 8453 Base, 42161 Arbitrum One, 1 Ethereum, 5042 Arc) (actions: route)
nameNoprincipal name: [a-z0-9_-], 1..64 (actions: register)
sideNoside (actions: order)
assetNoUSDG | ETH | WETH | tICP | TRN (actions: route, deposit, withdraw)
priceNoprice (actions: order)
unitsNowhole units as a decimal string, e.g. "1.25" (actions: deposit, withdraw)
actionNowhat to do (default account): account | register | route | deposit | order | withdraw | settlementaccount
amountNoamount (actions: route)
marketNoETH-USDG (actions: order)
accountNothe operator wallet the transfer came from (actions: deposit)
api_keyNoapi key (actions: account, deposit, order, withdraw)
fill_idNofill id (actions: settlement)
tx_hashNothe transfer transaction (0x… 32 bytes) (actions: deposit)
operatorNothe wallet (0x…) that signs; deposits come from it, withdrawals go to it (actions: register)
directionNodirection (actions: route)
signatureNoEIP-191 signature over the message; omit to get the exact message to sign (actions: register)
signed_atNounix seconds in the message (10-minute window) (actions: register)

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 factA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
keyNokey (actions: item)
kindNokind (actions: item)
seqsNoseqs (actions: item)
actionNowhat to do (default tx): tx | item | block | superroot | transfer | finalitytx
blocksNoblocks (actions: item)
api_keyNoapi key (actions: item)
tx_hashNotx hash (actions: tx, item, transfer)
type_idNotype id (actions: finality)
chain_idNoany 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)
protocolNoprotocol (actions: item)
log_indexNolog index (actions: item)
block_numberNoBlock number on that chain (actions: block)

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

NameRequiredDescriptionDefault
txNoa settled subscribe payment whose credit was not written (actions: rpc)
usdcNousdc (actions: rpc)
actionNowhat to do (default tenant): tenant | rpctenant
api_keyNoapi key (actions: rpc)
paymentNothe x402 PAYMENT-SIGNATURE header value (base64) for the accepts a previous call returned (actions: rpc)
agent_idNooptional ERC-8004 id "<chain>:<id>" (a label on your tenant) (actions: tenant)
chain_idNothe chain you want to read (default 1284 Moonbeam); the answer names its gateway URL (actions: rpc)
pay_chain_idNothe pay chain of the transfer quote; absent = Base (actions: rpc)
wallet_addressNooptional: a 0x wallet address to label your tenant with (nothing is signed; leave it out) (actions: tenant)

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
idNoid (actions: protocol)
abiNoabi (actions: protocol)
keyNokey (actions: protocol)
dataNo{ card_url?, endpoints?: [{ url, kind: mcp|a2a|a2a-legacy|x402|webhook }], skills?: [tags], classes?: [class ids], name?, description? } (actions: enrich)
docsNodocs (actions: protocol)
nameNoname (actions: protocol)
typeNotype (actions: protocol)
gradeNoalso grade the manifest: code verified the facts, Jev answers the rubric over them; spends one of your grades (actions: protocol)
hirerNohirer (actions: inbox)
limitNolimit (actions: inbox)
nonceNononce (actions: enrich)
stateNostate (actions: inbox)
actionNowhat to do (default register): register | enrich | inbox | protocol | pendingregister
authorNoauthor (actions: protocol)
eventsNoevents (actions: protocol)
sla_msNosla ms (actions: protocol)
statesNostates (actions: protocol)
statusNostatus (actions: pending)
actionsNoactions (actions: protocol)
dry_runNodry run (actions: protocol)
expiresNoexpires (actions: enrich)
fee_bpsNofee bps (actions: protocol)
versionNoversion (actions: protocol)
agent_idNoagent id (actions: register, enrich)
card_urlNocard url (actions: register)
chain_idNochain id (actions: register, enrich)
finalityNofinality (actions: protocol)
identityNoidentity (actions: protocol)
providerNoprovider (actions: inbox)
contractsNochain id to list of 0x addresses (actions: protocol)
signatureNosignature (actions: enrich, protocol)
fill_topicNofill topic (actions: protocol)
transitionsNotransitions (actions: protocol)
source_topicNosource topic (actions: protocol)
fill_selectorNofill selector (actions: protocol)
supported_dstNosupported dst (actions: protocol)

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
daysNohow long the arm lasts (default 7, at most 30) (actions: arm)
armedNotrue arms (default), false disarms (always honoured, no expiry rule) (actions: arm)
ownerNothe 0x wallet the act installs (link, rotate, recover); omitted for cancel (the current owner) (actions: owner)
vaultNothe tenant vault id, vault:tenant:<tenant> (e.g. vault:tenant:tenant-3) (actions: read, arm, owner)
actionNowhat to do (default read): read | model | policy | receipts | arm | ownerread
paramsNooperation parameters, e.g. { "vault": "vault:tenant:tenant-3" } (actions: policy, receipts)
api_keyNoyour tfr_ key (actions: policy, receipts)

TDQS

A4/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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. 1 tool update
    • Changedtaifoon_buy2 fields changed
      • changedInput schema / properties / action / enum
        Previous 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"
        +]
      • changedInput schema / properties / action / examples
        Previous value: -[
        -  "mcp.digest"
        -]New value: +[
        +  "data.onchain_query"
        +]
  2. 1 tool update
    • Changedtaifoon_buy2 fields changed
      • changedInput schema / properties / action / enum
        Previous 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"
        +]
      • changedInput schema / properties / action / examples
        Previous value: -[
        -  "risk.address"
        -]New value: +[
        +  "mcp.digest"
        +]
  3. 1 tool update
    • Changedtaifoon_buy2 fields changed
      • changedInput schema / properties / action / enum
        Previous 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"
        +]
      • changedInput schema / properties / action / examples
        Previous value: -[
        -  "mcp.digest"
        -]New value: +[
        +  "risk.address"
        +]
  4. 1 tool update
    • Changedtaifoon_buy1 field changed
      • changedInput schema / properties / action / enum
        Previous 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

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Text 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.
    4
    159 PyPI
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables SEO keyword research with Google Suggest, intent classification, long-tail discovery, and related queries, with pay-per-call via x402 micropayments.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Keyless, 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.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources