Skip to main content
Glama

AgentFi

Status: Archived License: Apache 2.0 npm version

🗄️ Archived — 2026-05-17

This project is archived. The code is functional and the npm package remains published, but the project is no longer maintained.

Honest postmortem. AgentFi reached technical MVP early (agent registration → on-chain transaction with operator fee collection worked) and then accumulated breadth (4 chains, 31 MCP tools, A2A jobs, escrow v3, revenue sharing) without ever finding a user. Over ~50 days the surface area grew while real adoption stayed at zero.

Why archived. The thesis (AI agents executing autonomous DeFi operations) remains directionally correct, but the market is ~2-3 years early — confidence in LLM-driven financial autonomy is the bottleneck, not tooling. When the market opens, well-capitalized incumbents (Coinbase Agent Kit, Safe modules, Anthropic-native primitives) will move in. No defensible moat for a solo OSS protocol in that window.

What's still useful here.

  • Reference implementation of an MCP server with 31 DeFi tools.

  • Working examples of Safe v7 protocol-kit integration, Uniswap Routing API v2 wrapper, Aave/Compound/GMX adapters.

  • Apache-2.0 — fork freely.

Live infrastructure (Fly.io backend, Upstash Redis) was decommissioned on archive. The maintainer's smart contracts on Base Mainnet remain deployed but unused.


The economic layer for non-human intelligence.

AgentFi provides crypto transaction infrastructure for AI agents on Ethereum and EVM-compatible networks. It allows agents to execute DeFi transactions (swaps, yield farming, transfers) without handling private keys or managing gas, all within a secure on-chain policy framework.

Start here:

  • VISION.mdwhy this project exists, where it's going, and the principles behind every technical decision.

  • STATE.mdwhat the project is today: purpose, full stack, capabilities, phase progress.

  • HANDOFF.md — live pending tasks, credentials inventory, new-machine setup.


Related MCP server: Universal Crypto MCP

📚 Documentation

All project documentation is organized in our Documentation Hub.


🚀 Key Features

  • Turnkey MPC Wallets — keys split across shards and never exposed.

  • Safe Smart Wallets — per-agent on-chain policy enforcement (limits, whitelists, kill switch).

  • Model Context Protocol — 31 tools in @agent_fi/mcp-server: DeFi execution, GMX perpetuals, A2A collaboration, trust, and P&L.

  • DeFi coverage — Uniswap V3 + Curve StableSwap (swaps); Aave V3, Compound V3, and any ERC-4626 vault (yield).

  • Agent-to-Agent economy — job queue, atomic payments, DB-level escrow (v2), reputation scoring from real metrics with time-decay.

  • Agent P&L dashboard — per-agent breakeven detection, including real gas costs (v2).

  • Persistent identity — optional ENS subdomains (alice-abc123.agentfi.eth) wired into agent registration.

  • OpenAPI 3.0.3 spec at docs/api/openapi.yaml — machine-readable contract for SDK generation.

  • Cross-chain — Ethereum, Base, Arbitrum, Polygon (Base Mainnet has maintainer-deployed contracts).

  • Protocol fee engine — basis-point fee collected on-chain atomically via AgentExecutor.


🛠️ Getting Started

For Operators

  1. Follow the Operator Setup Checklist to fill third-party accounts and local .env.

  2. Deploy the Smart Contracts to your target chain (or reuse the maintainer-deployed Base addresses in STATE.md).

  3. Deploy the backend via Self-Hosted Production Guide — provider-agnostic, with Railway as the reference and Fly.io / Render / Docker documented as alternatives.

For Developers

  1. Start with the Dev Quickstartdocker compose up → stack running in 3 minutes, zero external accounts.

  2. Run the A2A Collaboration Example — two-agent end-to-end flow in one file.

  3. Run the Claude Desktop MCP Demo — two MCP identities, discovery, A2A job, trust, and P&L.

  4. Review the Architecture Overview.

  5. Use the MCP Server to integrate your agents.


🛡️ Security

AgentFi is built for security-first autonomy.

  • Simulations: Every transaction is simulated via Tenderly before submission.

  • Guardrails: On-chain policies prevent agents from exceeding predefined limits.

  • Kill Switch: Operators can pause any agent's transaction ability instantly.

Found a vulnerability? See SECURITY.md for our disclosure policy.


🤝 Community


📄 License

AgentFi is open-source and licensed under the Apache 2.0 License.

Available Tools

31 tools
check_inboxA

Checks for new service requests (jobs) assigned to you by other agents. Returns a list of PENDING and ACCEPTED jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It states it returns a list of jobs, implying a read-only operation with no side effects. However, it does not explicitly confirm idempotency or disclose behavior when no jobs exist.

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?

Two sentences, front-loaded with purpose and return value. No wasted words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and simple behavior, the description fully covers what the tool does and returns. It is complete for a straightforward check tool.

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?

The input schema has no parameters (100% coverage), so the description does not need to add meaning. Baseline of 4 is appropriate as there are no missing details.

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 clearly states it checks for new service requests (jobs) assigned by other agents and returns a list of PENDING and ACCEPTED jobs. The verb 'checks for' and resource 'service requests (jobs)' are specific. It distinguishes from sibling tools like 'post_job' and 'update_job_status' by focusing on receiving.

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 description implies when to use (to check for incoming jobs), but lacks explicit guidance on when not to use or alternatives. Since it is the only tool for receiving jobs, usage is implied, but no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

close_gmx_positionA

Closes (fully or partially) a perpetual position on GMX V2 (Arbitrum). Creates a MarketDecrease order. Specify the market, collateral token, size to close, and direction. Use the full position size in size_delta_usd for a complete close.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYesMarket label (e.g. "ETH/USD") or market token address.
is_longYestrue if closing a long position, false for short.
chain_idNoChain ID. Default: 42161 (Arbitrum One).
size_delta_usdYesSize to close in USD with 30 decimals. Use full position size for complete close.
acceptable_priceYesMin acceptable price for longs, max for shorts (30 decimals). Set with a buffer to avoid keeper rejection.
collateral_tokenYesCollateral token of the existing position.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description mentions order type (MarketDecrease) but omits side effects, permissions, or error handling. Adequate but has gaps.

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 concise sentences, front-loaded with main purpose. No unnecessary information.

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?

No output schema; description lacks return value info and prerequisites (e.g., must have an existing position). Sufficient for basic usage but not fully complete.

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%; description mostly repeats schema info (e.g., full size for complete close). Does not add significant meaning beyond 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?

Clearly states action (closes), resource (perpetual position on GMX V2), and network (Arbitrum). Distinguishes from sibling tools like open_gmx_position.

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?

Gives context on parameters and when to use full size, but lacks explicit when-not or alternatives. No prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deposit_aaveA

Supplies an asset to Aave V3 lending protocol to earn yield. The supplied amount earns the current supply APY and can be withdrawn at any time. Call get_defi_rates first to check current rates.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesERC-20 token address to supply. Common: USDC, DAI, WETH contract addresses.
amountYesAmount to supply in human-readable units.
chain_idNoChain ID. Default: 1 (Ethereum mainnet).

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully cover behavior. It mentions earning yield and withdrawability, but lacks details on approvals, fees, slippage, or transaction types. It states the key outcome but omits potential behavioral nuances typical in DeFi.

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?

Two sentences: first states purpose and yield, second advises a prerequisite. No wasteful words; front-loaded with core 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?

Given the DeFi context (no output schema, no error handling, no talk of approvals), the description is minimally complete. It covers the essential action and a key prerequisite, but lacks details on return values, gas costs, or typical failure modes.

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 adds no additional parameter meaning beyond the schema (e.g., it mentions 'human-readable units' which is already in 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 description clearly states the action: 'Supplies an asset to Aave V3 lending protocol to earn yield.' It specifies the protocol (Aave V3) and the resource (lending pool), distinguishing it from siblings like supply_compound and deposit_erc4626.

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?

The description provides a clear prerequisite: 'Call get_defi_rates first to check current rates.' This guides when to use the tool (after checking rates) but does not explicitly exclude alternatives or mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deposit_erc4626A

Deposits an asset into any ERC-4626 compliant vault (Yearn, Morpho, Beefy, etc.). The vault address is supplied by the caller — no pre-registration needed. Useful for any yield strategy that follows the tokenized-vault standard.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesUnderlying ERC-20 token address (for decimals + USD pricing).
vaultYesERC-4626 vault contract address to deposit into.
amountYesAmount of underlying asset to deposit, in human-readable units.
chain_idNoChain ID. Default: 1 (Ethereum mainnet).

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It accurately states the deposit action and broad applicability but omits behavioral details like required approvals, gas costs, or that shares are minted in return. This is adequate but not thorough.

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?

The description is extremely concise (two sentences, 33 words), front-loaded with the core action, and avoids any unnecessary details.

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 deposit tool with no output schema and sibling tools providing alternative deposit/withdraw actions, the description covers the core purpose but misses prerequisites (e.g., token approval), return behavior (vault shares), and chain ID default (though documented in schema).

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 each parameter has a concise description. The tool description adds minimal parameter-specific meaning (e.g., 'vault address supplied by caller'), so value is limited beyond 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 description clearly states the action ('Deposits an asset into any ERC-4626 compliant vault'), names specific protocols (Yearn, Morpho, Beefy), and distinguishes from siblings like deposit_aave and withdraw_erc4626 by emphasizing compliance with the tokenized-vault standard.

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?

The description implies usage context (any ERC-4626 vault, no pre-registration) and is useful for yield strategies. However, it does not explicitly state when not to use this tool versus alternatives like deposit_aave for non-4626 vaults.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_swapA

Executes a token swap via Uniswap V3. You MUST call simulate_swap first and pass the returned simulation_id here. Returns a transaction_id to track the status with get_transaction_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID. Default: 1 (Ethereum mainnet).
to_tokenYesToken to buy. Must match simulate_swap call.
amount_inYesAmount to sell. Must match simulate_swap call.
from_tokenYesToken to sell. Must match simulate_swap call.
simulation_idYesThe simulation_id returned by simulate_swap. Required for safety.
slippage_toleranceNoMax slippage tolerance in percentage. Example: 0.5 = 0.5%.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must cover behavioral aspects. It discloses the requirement of a simulation_id for safety and the return of a transaction_id, but lacks details on failure modes, gas implications, or cost aspects.

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?

Two concise sentences with front-loaded action and prerequisite. No wasted words.

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?

No output schema, so description explains return value and follow-up tool. Covers essential flow but could mention approval or wallet requirements for completeness.

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%, parameters already have descriptions. The description adds context about matching simulate_swap call and simulation_id requirement, but does not significantly enhance understanding beyond 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 description clearly states it executes a token swap via Uniswap V3, which is specific and distinguishes it from sibling tools like swap_curve.

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 mandates calling simulate_swap first and passing the simulation_id, and mentions returning a transaction_id for status tracking. Could clarify when not to use, but the prerequisite is well communicated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_manifestA

Fetches the service manifest of another agent by their ID. Use this to understand what services another agent provides before attempting a payment or collaboration.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe ID of the agent to query.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the core action (fetch manifest) without disclosing behavioral traits such as whether authentication is required, error conditions (e.g., agent not found), rate limits, or side effects. This is minimal disclosure.

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?

The description is two concise sentences. The first sentence specifies the action, the second provides usage context. No unnecessary words or repetitions.

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 simple tool with one parameter and no output schema, the description is adequate but could be more complete. It lacks information on prerequisites, error behavior, or the structure of the manifest. Given no annotations, slightly more context would be beneficial.

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?

The schema covers the single parameter with a description ('The ID of the agent to query'), and the tool description reiterates 'by their ID'. With 100% schema coverage, the description adds no additional meaning beyond what the schema provides, warranting a baseline score of 3.

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 clearly states the tool fetches the service manifest of another agent by ID. It distinguishes from siblings like get_my_agent_profile (own profile) and search_agents (searching for agents). The verb 'fetches' and resource 'service manifest' are specific.

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?

The description explicitly says 'Use this to understand what services another agent provides before attempting a payment or collaboration,' providing clear when-to-use context. It does not mention when not to use or alternative tools, but the guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_trust_reportA

Fetches the reputation and trust metrics of another agent. Use this to evaluate a peer's reliability (transaction count, age, reputation score) before collaborating.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe ID of the agent to evaluate.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description explains the returned metrics (transaction count, age, reputation score) but does not disclose potential errors, rate limits, or authentication requirements, leaving some behavioral aspects implicit.

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?

Two sentences, front-loaded with the purpose, no 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 simple read tool with no output schema and no annotations, the description adequately informs about the returned data. It could mention error handling but is largely complete.

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 has 100% coverage with one parameter described as 'The ID of the agent to evaluate.' The description adds that this is for a peer's reliability, but does not add format or constraints beyond 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 description clearly states the tool fetches reputation and trust metrics of another agent. It is distinct from siblings like get_agent_manifest or get_my_agent_profile, which are about the agent's own data or manifest.

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?

Description gives a specific use case: 'evaluate a peer's reliability before collaborating.' However, it does not mention when not to use or suggest alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_defi_ratesA

Returns current supply and borrow APY rates for major assets on Aave V3. Use this to decide where to deploy capital for yield.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID to fetch rates for.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It does not indicate whether the tool is read-only, has rate limits, data freshness, or any side effects. For a data-fetching tool, the lack of such details reduces transparency.

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?

The description is two sentences, with no redundant phrases. The first sentence states the core functionality, and the second provides usage guidance. It is concise and well-structured.

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?

The description adequately covers the tool's purpose and usage for a simple rate-fetching tool with one optional parameter. However, it could be improved by clarifying what 'major assets' includes or data freshness, but overall it is sufficient for the complexity level.

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?

The input schema has 100% description coverage for the single parameter chain_id, but the tool description adds no additional context beyond the schema. It does not list valid chain IDs or explain the behavior when chain_id is omitted (the parameter is optional). Baseline 3 is appropriate as schema covers the basics.

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 clearly states the tool returns current supply and borrow APY rates for major assets on Aave V3. The verb 'returns' and the specific resource 'supply and borrow APY rates' make the purpose unambiguous. It distinguishes from sibling tools like deposit_aave and withdraw_aave, which are transactional.

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?

The description explicitly advises using the tool to decide where to deploy capital for yield, providing a clear use case. However, it does not mention when not to use it or compare it with alternative tools (e.g., get_token_price for yields), which would be helpful but is not critical given the unique purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_agent_profileA

Fetches this AgentFi agent profile using the configured API key. Use this to confirm the active identity, wallet, supported chains, tier, policy, and billing usage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description is adequate but minimal. It indicates a read operation without side effects, but lacks details on authentication requirements beyond mentioning 'configured API key', rate limits, or data freshness expectations. For a simple profile fetch, this is acceptable but not enriched.

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?

Two sentences, front-loaded with the action and method, followed by a list of retrieved data. Every sentence adds value; no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with no output schema, the description fully explains its purpose and the type of information returned. It covers what an agent needs to know to invoke it correctly.

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?

No parameters exist; schema coverage is complete. The description does not need to add parameter meaning, and the baseline for zero parameters is 4. No additional context is required.

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 uses specific verb 'Fetches' and identifies the resource 'AgentFi agent profile'. It lists the contained information (identity, wallet, chains, tier, policy, billing usage), clearly distinguishing it from sibling tools that perform different actions like swaps or deposits.

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?

The description explicitly states 'Use this to confirm the active identity, wallet, supported chains, tier, policy, and billing usage', giving clear guidance on when to use. It does not explicitly mention when not to use, but the purpose is straightforward and no alternatives exist among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_pnlA

Fetches this agent's profit and loss breakdown. Use this to inspect A2A earnings, rewards paid, protocol fees, gas costs, net P&L, and breakeven status.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoOptional ISO timestamp for the beginning of the P&L period.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the returned information (earnings, rewards, fees, etc.) but does not mention whether the operation is read-only, any authentication requirements, rate limits, or the default period when 'since' is omitted. These gaps reduce transparency for an AI agent.

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?

The description is two sentences: the first states the primary purpose, the second lists key components. It is front-loaded and contains no unnecessary words or repetition.

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?

There is no output schema, so the description compensates by listing the components of the P&L breakdown (A2A earnings, rewards, fees, gas costs, etc.), which is helpful. However, it does not specify the default behavior when 'since' is omitted (e.g., last 30 days) or the time granularity. This is a minor gap for completeness.

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?

The schema already describes the single optional parameter 'since' with a clear description. The tool description does not add additional meaning beyond what the schema provides. With 100% schema coverage, a score of 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?

The description clearly states the tool fetches the agent's profit and loss breakdown. It lists specific components (A2A earnings, rewards, fees, etc.) which differentiates it from sibling tools like get_defi_rates or get_agent_trust_report. The verb 'fetches' and resource 'PNL breakdown' are specific.

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 description says 'Use this to inspect...' which implies when to use it. However, it provides no explicit exclusions or alternatives. Given the diverse set of sibling tools, the guidance is adequate but lacks when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_policyA

Returns the current operational limits and restrictions for this agent. Check this to understand what transactions are allowed before attempting them.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It describes a read-only operation returning limits, which is straightforward. Could mention output format but not needed for this simple tool.

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?

Two concise sentences with no wasted words. Purpose is front-loaded immediately.

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?

Given no output schema, the description explains the return value adequately. For a simple read tool with no parameters, this is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No input parameters (0 params), baseline 4. Description adds value by specifying that the tool returns limits and restrictions, which the schema cannot convey.

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?

Description clearly states it returns operational limits and restrictions for the agent. Verb 'returns' and resource 'policy' are specific. Distinguishes from sibling 'update_policy' which modifies.

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?

Explicitly advises to check this tool before attempting transactions to understand allowed actions. Provides clear when-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_token_priceA

Returns the current USD price of a token. Use this before swaps to understand value.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID where the token exists.
token_symbolYesToken symbol (e.g. "ETH", "USDC", "WBTC") or contract address.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It states it returns current USD price but doesn't disclose data sources, caching, or idempotency. Adequate for a simple read tool but could be more detailed.

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?

Two sentences, front-loaded with purpose, no fluff. Every word earns its place.

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?

Given no annotations, no output schema, and two documented parameters, the description is fairly complete. It explains the action and usage context, though it could mention the currency (implied USD) and data source.

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% with good descriptions. The description adds 'USD price' context but doesn't significantly enhance parameter meaning beyond the schema. Baseline 3.

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 clearly states it returns the USD price of a token, with a specific use case ('before swaps'). It distinguishes from siblings like get_defi_rates by focusing on token price and swap context.

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 says 'Use this before swaps to understand value', providing a clear when-to-use. However, it does not mention alternatives or when not to use, missing a bit of completeness.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transaction_statusA

Returns the current status of a submitted transaction. Poll this after execute_swap, transfer_token, deposit_aave, or withdraw_aave. Status values: PENDING, SIMULATING, QUEUED, SUBMITTED, CONFIRMED, FAILED, REVERTED.

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYesThe transaction_id returned by execute_swap or other transaction tools.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It discloses that the tool is for polling and lists possible status values. However, it does not mention potential behaviors such as rate limits, timeout, or response format, which would be helpful for a polling tool.

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?

The description is two sentences with no wasted words. It is front-loaded with the purpose and provides necessary details concisely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no enums, no output schema), the description is complete. It covers purpose, usage context, and possible return values, enabling an agent to use it correctly.

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% for the single parameter. The tool description adds context about the parameter's origin ('returned by execute_swap or other transaction tools'), but this is already implied in the schema. With full coverage, the baseline is 3.

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 clearly states the function: 'Returns the current status of a submitted transaction.' It specifies the verb (Returns) and resource (status of a submitted transaction), and distinguishes from siblings by listing the tools that produce transaction IDs to poll.

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?

The description explicitly states when to use the tool: 'Poll this after execute_swap, transfer_token, deposit_aave, or withdraw_aave.' It provides a list of status values, giving clear context. It does not explicitly state when not to use, but the usage is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_wallet_infoA

Returns the agent's wallet address and current token balances across chains. Call this to know how much ETH, USDC, USDT, DAI, WETH the agent holds before executing transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID (1=Ethereum, 8453=Base, 42161=Arbitrum, 137=Polygon). Omit for all chains.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description honestly describes a read-only operation returning wallet info and balances. No hidden side effects mentioned, which is acceptable.

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?

Two sentences, front-loaded with key information, no wasted words. Efficient and to the point.

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?

No output schema, but description sufficiently describes return value (address and balances for specific tokens). Lacks exact structure but adequate for a simple balance check.

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 has 100% coverage with description of chain_id including chain IDs and default behavior. Tool description reinforces but doesn't add new info beyond 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?

Clearly states it returns wallet address and token balances across multiple chains, listing specific tokens. Distinct from sibling tools like get_token_price or get_agent_manifest.

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 says to call this before transactions to know balances. Implies when to use but doesn't mention when not to or alternatives. Still clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_gmx_marketsA

Lists available GMX V2 perpetual markets on Arbitrum. Returns market labels and token addresses. Use this to discover which markets are available before opening positions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden. It clearly states that the tool returns market labels and token addresses, implying a read-only operation. However, it does not disclose potential behaviors like caching, pagination, or data freshness. For a simple list tool, this is adequate but not exhaustive.

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?

Two sentences with no extraneous words. The first sentence states what it does; the second provides usage guidance. Every sentence is valuable and contributes to understanding.

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?

Given zero parameters and no output schema, the description covers the essential information: what markets it lists (GMX V2 on Arbitrum) and what it returns (labels and addresses). It could be slightly more complete by noting any limitations, but it is sufficient for a simple read-only tool.

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?

The input schema has zero parameters with 100% coverage (since there are none). The description adds no parameter information, but no parameters exist, so the baseline score of 4 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?

The description clearly states the tool lists available GMX V2 perpetual markets on Arbitrum and returns market labels and token addresses. It uses a specific verb ('lists') and resource ('GMX V2 perpetual markets'), and none of the sibling tools perform this function, so it is well-distinguished.

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?

The description advises using this tool 'before opening positions,' which provides clear context. It does not explicitly state when not to use it or mention alternative tools, but the context is sufficient for an agent to understand its purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_gmx_positionA

Opens a leveraged perpetual position on GMX V2 (Arbitrum). Creates a MarketIncrease order that is executed by a GMX keeper after oracle price update. Specify the market (e.g. "ETH/USD"), collateral amount, position size in USD, and direction (long/short). Returns a transaction ID to track with get_transaction_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYesMarket label (e.g. "ETH/USD", "BTC/USD") or market token address.
is_longYestrue to go long (price goes up = profit), false to go short.
chain_idNoChain ID. Default: 42161 (Arbitrum One).
size_delta_usdYesPosition size in USD with 30 decimals (GMX precision). Example: "1000000000000000000000000000000000" for $1000. Tip: multiply desired USD amount by 10^30.
acceptable_priceYesMax acceptable execution price with 30 decimals. For longs, set above current price. For shorts, set below. Example: use a 1% buffer above/below market price.
collateral_tokenYesCollateral token address. Use WETH for ETH-collateralized positions.
collateral_amountYesCollateral amount in human-readable units. Example: "0.5" for 0.5 WETH.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It reveals the order is executed asynchronously by a keeper after oracle update. However, it omits safety details like slippage, liquidation risk, fees, and required token approvals.

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?

Four sentences front-loaded with action, mechanism, inputs, and return. No wasted words; every sentence earns its place.

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?

Covers main purpose and return but misses operational details like token approvals, leverage mechanics, optional chain_id, and references to sibling tools. For a complex DeFi tool, the description is adequate but not comprehensive.

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% (baseline 3). The description adds value with usage tips and examples for size_delta_usd (30 decimals, example), acceptable_price (buffer guidance), and collateral_token (use WETH). This enhances understanding beyond 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 description clearly states the action (opens a leveraged perpetual position), the resource (GMX V2 on Arbitrum), and the mechanism (MarketIncrease order via keeper). It differentiates from siblings like 'close_gmx_position' and 'list_gmx_markets' by focusing on opening positions.

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?

Provides usage context (returns transaction ID for tracking with get_transaction_status) but does not explicitly state when to use vs alternatives or when not to use. Lacks mention of prerequisites like collateral approval or market availability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pay_agentA

Constructs and executes a direct payment to another agent. Use this to pay for services, data, or compute provided by another AI agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount to pay in human-readable units (e.g. "0.01").
reasonYesThe logical reason for this payment (for auditability).
chain_idNoChain ID for the payment.
token_symbolNoToken to pay with (ETH, USDC, etc.).
recipient_addressYesThe safeAddress of the recipient agent.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It states 'constructs and executes' but does not disclose behavioral traits like irreversibility, fees, balance impact, or approval requirements. This lack of critical safety information limits transparency.

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?

Two sentences, 25 words. Action verb and purpose front-loaded. Every sentence earns its place with no redundancy or fluff.

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?

Adequate for a simple payment tool: explains purpose and use cases. Lacks output information (no output schema) and behavioral details, and does not differentiate from transfer_token explicitly. Given 5 parameters and many siblings, more context would be helpful.

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 parameters are well-documented. Description adds value by clarifying 'human-readable units' for amount. Baseline is 3; no significant extra semantic depth beyond 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?

Description clearly states the tool constructs and executes a direct payment to another agent, with specific use cases (services, data, compute). This distinguishes it from sibling tools like transfer_token for non-agent transfers.

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?

Description explicitly says 'Use this to pay for services, data, or compute provided by another AI agent,' providing clear context. However, it does not mention when not to use or name alternative tools for general transfers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_jobA

Submits a service request (job) to another agent. Use this to delegate tasks defined in the provider's manifest. You should sign the payload before posting.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesThe task details (e.g., input data, command).
signatureNoYour signature of the payload (use sign_handshake).
provider_idYesThe ID of the agent you are hiring.
reward_tokenNoToken for the reward.
reward_amountNoAmount you agree to pay upon completion.

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden. It discloses the need to sign the payload but omits crucial behavioral traits such as whether the job submission is synchronous or asynchronous, what the response looks like, or how errors are handled. The agent is left uncertain about the invocation lifecycle.

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 sentences, 50 words, front-loaded with the core action. Each sentence contributes distinct value: purpose, usage context, and a prerequisite. No redundancy or fluff.

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 tool with 5 parameters (2 required) and no output schema, the description covers the prerequisite but lacks information about return value, error handling, or async behavior. While the schema covers all parameters, the agent may still need additional guidance to invoke correctly in a full workflow.

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?

Although schema coverage is 100%, the description adds meaningful context for key parameters: it explains the relationship between provider_id and the manifest, and why signature is required. This goes beyond the raw schema descriptions, though it does not elaborate on reward-related params.

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 clearly states the action ('Submits a service request (job)') and the target ('to another agent'). It distinguishes this tool from siblings by specifying delegation of tasks defined in a provider's manifest, which is unique among the listed 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?

The description tells agents to use this tool for 'delegating tasks defined in the provider's manifest' and provides a prerequisite ('sign the payload before posting'). It does not explicitly state when not to use it, but the context is clear enough for the given sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_agentsA

Finds other agents by name or wallet address. Use this to discover potential agent-to-agent (A2A) partners for collaboration or payment. Returns a list of agents with their safeAddress and active chains.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (name or address)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It states the output includes 'a list of agents with their safeAddress and active chains,' which clarifies the return format. No contradictions.

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?

The description is two sentences long with no filler. The first sentence states the purpose, the second provides usage context and expected output. Every word earns its place.

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?

Given the tool's simplicity (one parameter, no output schema, no nested objects), the description adequately covers what the tool does and what it returns. It lacks details on pagination or limits, but is otherwise complete for a straightforward search.

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% for the single parameter 'query.' The description adds value by specifying it's a 'Search query (name or address),' which aligns with the schema. Given high coverage, 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?

The description clearly states it 'Finds other agents by name or wallet address.' The verb 'finds' and resource 'agents' are specific, and it distinguishes from siblings like get_agent_manifest by focusing on discovery rather than details.

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 says 'Use this to discover potential agent-to-agent (A2A) partners for collaboration or payment.' This provides clear context, though it does not explicitly state when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_my_manifestA

Sets the agent's service manifest. Use this to broadcast your capabilities to other agents (e.g., "I provide risk analysis", "I offer liquidity data"). The manifest should be a structured JSON describing your services and their pricing/parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
manifestYesJSON object describing provided services, tools, and pricing.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It indicates a write operation ('Sets') but does not mention side effects, overwrite semantics, authorization requirements, or success/failure responses. This is a significant gap for a mutation-like tool.

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?

The description is two sentences long, front-loads the action, and includes a concrete example. Every word serves a purpose with no redundancy.

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 one-parameter tool with no output schema and no annotations, the description explains the manifest's purpose and structure reasonably. It could mention that it overwrites the existing manifest and note any constraints on format, but it is nearly complete.

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 the schema already describes the parameter as a JSON object. The description adds examples of content (services, pricing) and purpose, but this is incremental. 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?

The description starts with 'Sets the agent's service manifest,' which is a specific verb+resource. It also provides examples ('I provide risk analysis') and implicitly distinguishes from the sibling get_agent_manifest, making the tool's purpose very clear.

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 description says 'Use this to broadcast your capabilities to other agents,' which gives clear context for when to use the tool. However, it does not provide explicit when-not-to-use guidance or compare with alternatives like get_agent_manifest for retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sign_handshakeA

Signs a message with your agent wallet. Use this to prove your identity to other agents or to sign a service agreement/handshake.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe message or agreement text to sign.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description indicates a signing operation but does not disclose side effects (e.g., gas costs, state changes) or what is returned. For a signing tool, it should clarify whether it's a local operation or sends a transaction.

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?

Two succinct sentences that front-load the core action and usage. No unnecessary 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 tool with one simple parameter and no output schema, the description is mostly complete. It could mention the output (signature), but the low complexity makes this acceptable.

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 baseline 3. The description adds 'agreement text' context, but the schema already describes 'message' adequately. No additional semantics beyond 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 description clearly states the tool signs a message with the agent wallet, with specific use cases (prove identity, sign agreement). This distinguishes it from siblings like verify_handshake.

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 explicit contexts for use (proving identity, signing agreements). Lacks explicit alternatives or when-not-to-use, but the sibling list includes verify_handshake which implies a complementary tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_swapA

Simulates a token swap via Uniswap V3 and returns the expected output, price impact, and gas estimate. ALWAYS call this before execute_swap to verify the trade is viable. Returns a simulation_id that must be passed to execute_swap.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID. Default: 1 (Ethereum mainnet).
to_tokenYesToken to buy. Use symbol or contract address.
amount_inYesAmount to sell in human-readable units. Example: "1.5" for 1.5 ETH.
from_tokenYesToken to sell. Use symbol (ETH, USDC, WBTC) or contract address.
slippage_toleranceNoMax slippage tolerance in percentage. Example: 0.5 = 0.5%.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states it is a simulation (non-destructive), returns expected output, price impact, gas estimate, and a simulation_id, covering key behavioral aspects without contradiction.

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?

Two sentences, front-loaded with purpose and usage guidance, no redundant information. Extremely concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explicitly lists returned values (expected output, price impact, gas estimate, simulation_id) and notes dependency on execute_swap. Complete for the tool's purpose.

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% with clear descriptions for all parameters. The description adds no additional meaning beyond the schema, so baseline score of 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?

The description clearly states it simulates a token swap via Uniswap V3, returning expected output, price impact, and gas estimate. It distinguishes from execute_swap by specifying it should be called beforehand.

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?

Explicitly says 'ALWAYS call this before execute_swap to verify the trade is viable' and notes the returned simulation_id must be passed to execute_swap, providing clear sequential guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supply_compoundA

Supplies an asset to Compound V3 (Comet USDC market) to earn yield. Each Compound V3 market is single-asset; the USDC market accepts USDC as the base asset plus whitelisted collateral (e.g. WETH, WBTC). Available on Mainnet, Base, Arbitrum, Polygon.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesERC-20 token address to supply. Use USDC for the base asset, or a supported collateral.
amountYesAmount to supply in human-readable units.
chain_idNoChain ID. Default: 1 (Ethereum mainnet).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry the burden. It discloses multi-chain support and asset types (USDC base, whitelisted collateral), but omits approval requirements, gas costs, risks, or any return value details. Adequate but incomplete for full transparency.

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 concise sentences with no filler. First sentence captures core action, second adds market detail, third lists chains. Information is front-loaded and every sentence earns its place.

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 tool with no output schema and no annotations, the description covers purpose, asset types, and chain availability. Missing details like the need for token approval, return format (transaction hash?), and protocol-specific nuances. Adequate for typical use but not exhaustive.

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 already covers parameters with clear descriptions (100% coverage). Description adds value by specifying the USDC market and giving example collateral (WETH, WBTC), and listing supported chains beyond schema's default chain_id. This extra context justifies a score above baseline 3.

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?

Description clearly states the action (supply asset), protocol (Compound V3), market (USDC market), and purpose (earn yield). Distinguishes from sibling tools like withdraw_compound and deposit_aave by specifying the exact protocol and market.

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?

Implies when to use (to supply assets to Compound V3) but lacks explicit when-not-to-use or comparisons with alternatives like deposit_aave or deposit_erc4626. No guidance on prerequisites or potential issues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

swap_curveA

Swaps between two assets on a Curve StableSwap pool. Ideal for stablecoin-to-stablecoin conversions (USDC↔USDT↔DAI) with minimal slippage. The caller must supply the pool address and the indices of the input/output tokens within that pool. Assumes fromToken has already been approved to the pool; simulation will fail clearly if approval is missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
poolYesCurve pool contract address.
chain_idNoChain ID. Default: 1 (Ethereum mainnet).
amount_inYesAmount of input token in human-readable units.
min_amount_outYesMinimum acceptable amount of output token (slippage protection).
to_token_indexYesIndex of the output token within the pool.
from_token_indexYesIndex (0, 1, 2, ...) of the input token within the pool.
to_token_addressYesERC-20 address of the output token.
from_token_addressYesERC-20 address of the input token.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions that approval is assumed and simulation fails if missing, but does not disclose other behaviors like potential slippage loss, fee structure, or return value. Adequate but not comprehensive.

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 sentences covering purpose, ideal use, and requirements. No unnecessary words. Front-loaded with the core action.

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?

Given 8 parameters (7 required) and no output schema, the description covers pool, indices, approval assumption, and slippage protection. However, it does not explain the return value or mention what happens on success. Still fairly complete for the intended use.

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%, but description adds meaningful context: explains that indices refer to token positions in the pool and that fromToken must be approved. This connects parameters to real-world usage, adding value beyond 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 description clearly states the tool swaps between two assets on a Curve StableSwap pool, specifically for stablecoin conversions with minimal slippage. It distinguishes from siblings like execute_swap (generic) and simulate_swap (simulation) by specifying the protocol and use case.

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 practical guidance: caller must supply pool address and token indices, and fromToken must be approved. It implies ideal use case (stablecoin swaps) but does not explicitly compare with alternatives or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transfer_tokenB

Transfers ETH or an ERC-20 token to any Ethereum address. Use "ETH" as the token identifier to send native ETH, or provide a contract address for ERC-20.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination Ethereum address (checksummed).
tokenYesToken to transfer. Use "ETH" for native ETH, or the ERC-20 contract address.
amountYesAmount in human-readable units. Example: "100" for 100 USDC.
chain_idNoChain ID. Default: 1 (Ethereum mainnet).

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It only states the basic transfer action without disclosing behavioral traits such as transaction execution, user signing requirements, approval needs, or potential failure modes.

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?

The description consists of two clear sentences: one for the purpose and one for usage details. It is front-loaded and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks important context such as return value (e.g., transaction hash), error handling, prerequisites (balance, approvals), and the fact that this initiates a blockchain transaction. For a tool without output schema, this is insufficient.

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%, providing full descriptions for all four parameters. The tool description only repeats the token parameter guidance from the schema, adding no new meaning for amount or chain_id. 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?

The description clearly states the action (transfer), the resource (ETH or ERC-20 token), and the destination (any Ethereum address). It uniquely identifies the tool among siblings which include only deposit, withdraw, and swap operations.

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 description provides guidance on token identification (use 'ETH' or contract address), but does not discuss when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_job_statusA

Updates the status of a job (Accept, Complete, Fail). Use this to manage your workflow as a service provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe ID of the job to update.
resultNoThe output or proof of work (if completed).
statusYesThe new status.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden. It discloses the allowed status values, but does not mention any side effects, permissions, or behavior on invalid input. The disclosure is adequate but minimal.

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?

The description is a single, well-structured sentence with no redundant words. It front-loads the action and includes key details without excess.

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 simple update tool with 3 parameters and no output schema, the description covers the core purpose and allowed statuses. The 'result' parameter is explained only in the schema, but that is acceptable. Minor gap: no mention of optionality or usage of 'result'.

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. The description adds value by specifying the exact status options ('Accept, Complete, Fail'), which is not enumerated in the schema. This compensates for the otherwise generic parameter descriptions.

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 clearly states the verb ('updates'), the resource ('status of a job'), and lists the allowed status values ('Accept, Complete, Fail'). It effectively distinguishes this tool from siblings like 'post_job' by specifying workflow management for service providers.

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?

The description provides clear context ('manage your workflow as a service provider') but does not explicitly exclude cases or mention alternatives. The guidance is sufficient given the sibling set, but lacks explicit 'when not to use'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_policyA

Updates the agent's own operational policy. The change applies IMMEDIATELY — there is no operator approval step. The operator can audit and revert via the admin panel. Use this when you need higher limits, more allowed tokens, or contract whitelisting to complete a mission. Provide a reason for audit — it is logged but does not gate the change.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesJustification for the change — recorded in audit log, does not gate the write.
allowed_tokensNoNew tokens to add to whitelist.
allowed_contractsNoNew contracts to add to whitelist.
max_value_per_tx_ethNoNew max ETH per transaction.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It discloses immediate effect, no operator approval, auditability, and that reason does not gate the change. Covers key behavioral traits thoroughly.

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?

Four sentences, front-loaded with purpose and key behavioral note. Every sentence adds value. No fluff or repetition.

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 100% schema coverage and no output schema, description covers purpose, usage, and behavioral traits. Lacks explicit mention of return value or confirmation, but overall adequate for an update 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 coverage is 100%, so baseline is 3. Description adds minimal value: it re-contextualizes 'reason' for audit and non-gating, and mentions 'higher limits' which maps to parameters. No extra syntax or constraints beyond 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?

Description starts with a clear verb 'Updates' and resource 'operational policy'. It distinguishes from sibling 'get_policy' by specifying mutation and from others by naming the policy type. No ambiguity.

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 states when to use: 'when you need higher limits, more allowed tokens, or contract whitelisting to complete a mission'. Mentions providing a reason for audit. Lacks explicit when-not-to-use or alternatives but sufficient for typical usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_handshakeB

Verifies a signature provided by another agent. Use this to confirm that a peer truly controls the wallet address they claim to represent.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe claimed safeAddress of the peer.
messageYesThe original message that was signed.
signatureYesThe signature hex string provided by the peer.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only states the tool verifies a signature, without mentioning side effects, permissions, or what happens on failure.

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?

Two sentences, front-loaded with the action, no redundant information. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations or output schema, the description should explain return values and error conditions. It only describes the action without specifying what the tool returns or how errors are handled.

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% with each parameter documented. The description adds no additional parameter meaning beyond what's in the schema, so baseline 3 is appropriate.

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 clearly states the tool verifies a signature and is used to confirm a peer controls a wallet address. It specifies the action and resource, but does not explicitly differentiate from sibling tools like sign_handshake.

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 description provides usage context: 'Use this to confirm that a peer truly controls the wallet address they claim to represent.' It implies when to use but lacks explicit exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

withdraw_aaveB

Withdraws a previously supplied asset from Aave V3. Pass "max" as the amount to withdraw your entire position.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesERC-20 token address to withdraw.
amountYesAmount to withdraw. Use "max" to withdraw entire position.
chain_idNoChain ID. Default: 1 (Ethereum mainnet).

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only repeats the 'max' feature from the schema and does not mention side effects (e.g., gas costs, token approval requirements), failure modes (e.g., insufficient supply), or return behavior.

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?

The description is a single sentence that conveys the core action and key usage tip. It is concise, front-loaded, and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should explain what the tool returns (e.g., transaction hash) or error handling. It also lacks context on prerequisites (e.g., supplying first) and post-conditions. The tool is simple but the description is incomplete.

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 the schema already documents parameters. The description adds minimal extra value by emphasizing the 'max' option for amount, but does not significantly enhance understanding beyond 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 description clearly states the action ('withdraws a previously supplied asset') and the specific protocol ('Aave V3'). It also highlights the special 'max' usage. This distinguishes it from sibling tools like withdraw_compound or withdraw_erc4626.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as checking supply balance or comparing with other withdrawal tools. The description does not address prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

withdraw_compoundB

Withdraws a previously supplied asset from Compound V3 (Comet USDC market). Pass "max" as the amount to withdraw your entire balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesERC-20 token address to withdraw.
amountYesAmount to withdraw. Use "max" to withdraw entire balance.
chain_idNoChain ID. Default: 1 (Ethereum mainnet).

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the basic action and the max feature, but lacks details on side effects (e.g., gas costs, reverts if insufficient balance), required prior state (must have supplied), or any confirmation step.

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?

The description is a single sentence that conveys the action and a key usage point without unnecessary words. It is appropriately front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a DeFi withdrawal tool with no output schema, the description is too brief. Missing context about gas requirements, transaction finality, error conditions, or relationship to supply_compound sibling.

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 baseline is 3. The description adds value for the 'amount' parameter by mentioning 'max', but does not enhance understanding of 'asset' or 'chain_id' beyond 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 description clearly states the verb 'Withdraws', the resource 'previously supplied asset', and the specific protocol 'Compound V3 (Comet USDC market)'. This distinguishes it from siblings like withdraw_aave and withdraw_erc4626.

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?

Provides a usage hint for the 'amount' parameter ('Pass "max" to withdraw entire balance'), but does not specify when to use this tool versus alternatives, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

withdraw_erc4626A

Withdraws assets from any ERC-4626 compliant vault. Use "max" to attempt a full withdrawal (vault may still limit to available liquidity).

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYesUnderlying ERC-20 token address.
vaultYesERC-4626 vault contract address to withdraw from.
amountYesAmount to withdraw. Use "max" for the full balance.
chain_idNoChain ID. Default: 1 (Ethereum mainnet).

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the burden. Discloses that withdrawal is a mutative action and explains 'max' behavior, but lacks details on permissions, reverts, or gas costs. Adequate but not thorough.

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?

Two concise sentences. First sentence states purpose clearly; second adds useful usage tip. No superfluous words, front-loaded with key 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 simple withdrawal tool with 4 documented parameters and no output schema, the description covers the action and a key behavioral detail. Missing details like return value or prerequisites, but adequate given low complexity.

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 covers 100% of parameters. Description adds value by explaining the special 'max' value for amount and its liquidity implications, going beyond the schema's basic description.

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 clearly states the verb 'withdraws' and resource 'assets from any ERC-4626 compliant vault', making the tool's purpose specific and distinct from siblings like deposit_erc4626, withdraw_aave, etc.

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 guidance on using 'max' for full withdrawal and mentions vault liquidity limitations, but does not explicitly differentiate when to use this tool versus other withdrawal tools (e.g., withdraw_aave).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a unique action and domain (A2A jobs, peer discovery, wallet management, DeFi protocols). Overlaps like multiple yield protocols are clearly separated by protocol-specific names and descriptions.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores, e.g., `check_inbox`, `deposit_aave`, `get_agent_manifest`. No mixed conventions or unclear names.

Tool Count4/5

31 tools cover a broad domain (A2A + multi-protocol DeFi), which justifies the count. Slightly heavy but each tool serves a distinct purpose; no glaring redundancies.

Completeness4/5

Core A2A workflows (post/accept/complete jobs, payments, identity verification) and DeFi operations (swaps, lending, perps, rates) are well-covered. Minor gaps like job cancellation or agent deregistration exist but are acceptable.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/felippeyann/agentfi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server