Skip to main content
Glama

withdraw_funds

Destructive

Withdraws funds from an entity's protocol treasury to the entity's treasury address. Sellers withdraw proceeds; buyers withdraw refunds. Caller must control the entity via signerAddress. Returns unsigned transaction data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
listYes
configIdYesBoson/Fermion Protocol deployment identifier. Format: '<env>-<chainId>-<index>' e.g. 'production-137-0' (Polygon mainnet), 'testing-80002-0' (Amoy testnet). Call get_config_ids to list all valid values for this server.
entityIdYesNumeric ID of the seller or buyer entity withdrawing funds.
executionModeNo'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'.
signerAddressYesEthereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.

TDQS

A4.4/5.0
Behavior4/5

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

The description indicates that the tool mutates state (destructiveHint true) by withdrawing funds. It also discloses that it returns unsigned transaction data, implying the need for a follow-up signing step. The caller control requirement (signerAddress) is stated. No contradiction with annotations (destructiveHint true is consistent). Could add more on side effects or reversibility.

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 covering action, target, user roles, caller requirement, and return type. Every sentence adds value with no fluff. Front-loaded with the primary verb and resource.

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 provides a high-level overview of the tool's purpose and return type. Given the complexity (5 parameters, nested list) and no output schema, it adequately explains the key concepts. However, it could mention the existence of a follow-up step (sending the unsigned transaction with send_signed_transaction or send_meta_transaction) for fuller completeness, especially since siblings include these tools.

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?

With schema description coverage at 80%, the descriptions already explain most parameters (e.g., list items, configId format, executionMode enum, signerAddress meaning). The tool description adds overall context but does not significantly enhance parameter understanding beyond the schema. Baseline score of 3 is raised by the clear connection between parameters and the withdrawal action.

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's purpose: withdrawing funds from an entity's protocol treasury to the entity's treasury address. It distinguishes between sellers withdrawing proceeds and buyers withdrawing refunds. The verb 'withdraws' and resource 'funds from treasury' are specific and unambiguous.

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 explains when to use the tool (for sellers to withdraw proceeds, buyers to withdraw refunds) and that the caller must control the entity via signerAddress. However, it does not explicitly mention when not to use it or alternative tools like deposit_funds or get_funds. The context is clear but lacks explicit exclusions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have distinct purposes with detailed descriptions, but there is overlap among multiple commit_to_* and sign_receive_* variants that could confuse an agent. The tool boundaries are clear for the core workflow, but the sheer number of similar operations slightly reduces clarity.

Naming Consistency4/5

Tool names predominantly follow a verb_noun pattern with underscores (e.g., commit_to_offer, create_seller). Some inconsistency exists with mixed verbs like 'store_', 'sign_', 'send_', but the pattern is largely predictable and readable.

Tool Count3/5

With 63 tools, the server is heavy but covers a complex protocol (offer lifecycle, disputes, metadata, meta-transactions). The count is borderline; some tools (e.g., multiple signing helpers) could be consolidated, but the scope justifies the size.

Completeness4/5

The tool set covers the core protocol flows comprehensively: create, commit, redeem, dispute, resolve, void, and metadata storage. Minor gaps exist (e.g., no dedicated 'get_offer_by_id' but filtering suffices), and meta-transaction support is extensive.

Resources