Universal Gas Framework MCP Server
The Universal Gas Framework MCP Server enables AI agents to perform gasless cross-chain transactions, paying fees with tokens already held on a supported chain (e.g., USDC on Base) to execute actions on a different destination chain — without needing native gas on the destination. The server never handles private keys; all signing is done locally by the agent.
Discovery & Balance Checking
ugf_get_registry— List supported payment coins (USDC, EURC, $U, USDT, ETH, BNB, MATIC, etc.), chains, and contract/vault addresses.ugf_check_balance— Read an EVM wallet's on-chain balance for any ERC-20 or native token.
Authentication
ugf_get_nonce— Fetch a login nonce for a wallet address.ugf_authenticate— Submit a locally-signed nonce to obtain a JWT.ugf_set_token— Restore a cached JWT to skip re-authentication.
Quoting Routes
ugf_quote— Get a quote for a specific payment coin/chain for a given destination transaction.ugf_smart_quote— Auto-discover the cheapest route by scanning all wallet balances across supported chains.
Payment Construction & Submission
ugf_x402_build_typed_data— Build an ERC-3009 typed-data payload for local signing (x402 flow).ugf_x402_submit_signed— Submit the locally-signed x402 proof to UGF.ugf_vault_build_tx— Build an unsigned EIP-1559 vault payment transaction for local signing and broadcast.ugf_vault_submit_signed— Submit the on-chain vault transaction hash after local broadcast.
Destination Execution — EVM
ugf_evm_wait_sponsorship— Poll until UGF has sponsored the destination EVM transaction.ugf_evm_confirm_user_tx— Confirm the agent-broadcast destination EVM transaction hash.
Destination Execution — Solana
ugf_sol_wait_user_sig_message— Wait for UGF's prepared Solana message bytes for local signing.ugf_sol_submit_user_sig— Submit the locally-produced ed25519 signature.
Destination Execution — Sui
ugf_sui_wait_sponsor_bytes— Wait for UGF to return Suitx_bytesandsponsor_sig.ugf_sui_execute_signed_block— Broadcast the dual-signed (user + sponsor) Sui transaction block.
Status Tracking
ugf_check_status— Single-shot status check for a route by digest.ugf_poll_status— Continuously poll a route until it reaches a terminal state (completed/failed/expired).
Allows gasless transactions on BNB Chain using BNB or stablecoins as payment.
Allows gasless transactions on Ethereum using native ETH or stablecoins as payment.
Allows gasless transactions on Optimism using ETH or stablecoins as payment.
Allows gasless transactions on Polygon using MATIC or stablecoins as payment.
Allows gasless transactions on Solana using SOL or SPL tokens as payment.
Allows gasless transactions on Sui using native coins or custom coins as payment.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Universal Gas Framework MCP Serversend 50 USDC from Ethereum to Solana, pay with MATIC on Polygon"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Universal Gas Framework MCP Server
MCP server for Universal Gas Framework. Plug into any MCP-compatible AI host (Claude Desktop, Claude Code, Codex CLI, Gemini CLI, Cursor) and your agent gets typed tools for gasless cross-chain transactions.
What this unlocks
Your agent wants to send tokens on a chain where it has no native gas. Normally that's a dead end — you'd have to bridge or buy gas first. UGF removes that step.
Pay with what you already hold, route the transaction anywhere:
Stablecoins as gas — USDC, EURC, $U (United Stables), USDT
Native EVM coins as gas — ETH (on Ethereum / Base / Optimism / Arbitrum), BNB, MATIC, AVAX
Send to any supported destination — EVM chains, Solana (SOL + SPL), Sui (native + custom coins)
Cross-chain by default — pay USDC on Base, transaction executes on Sui. Pay $U on BNB, transaction executes on Solana.
The agent only needs balance on one supported chain. UGF prices the route, collects payment, and executes the destination action.
Related MCP server: Universal Crypto MCP
Custody
Private keys never reach this MCP server. The agent signs every payload locally (EIP-712 for x402, EIP-1559 for vault, ed25519 for Solana, Sui Ed25519 for Sui). The server only:
Builds unsigned payloads
Submits the agent's signed proofs
Polls UGF gateway for route status
Verified by CI — private_key, mnemonic, secretKey, Keypair.fromSecretKey, new ethers.Wallet return zero hits in src/.
For UGF protocol details, gateway endpoints, and the value-to-action model, see universalgasframework.com. This README only covers the MCP server.
Install
The MCP server runs via npx. No global install needed.
npx -y @tychilabs/ugf-mcp@betaThat command launches it in stdio mode for an AI host. To inspect tools from a terminal:
npx -y @tychilabs/ugf-mcp@beta --tools
npx -y @tychilabs/ugf-mcp@beta --version
npx -y @tychilabs/ugf-mcp@beta --helpRequires Node 18+.
Wire into your MCP host
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):
{
"mcpServers": {
"ugf": {
"command": "npx",
"args": ["-y", "@tychilabs/ugf-mcp@beta"]
}
}
}Restart Claude Desktop. The 19 UGF tools become available to Claude.
Claude Code
claude mcp add ugf -- npx -y @tychilabs/ugf-mcp@betaCodex CLI
~/.config/codex/config.json:
{
"mcpServers": {
"ugf": {
"command": "npx",
"args": ["-y", "@tychilabs/ugf-mcp@beta"]
}
}
}Gemini CLI
~/.config/gemini-cli/settings.json → same shape under mcpServers.
Cursor / Windsurf / any stdio-MCP host
Use the same command: "npx", args: ["-y", "@tychilabs/ugf-mcp@beta"] pattern in whatever config file the host expects.
How this MCP works
┌──────────────────┐ stdio JSON-RPC ┌──────────────────┐
│ YOUR AI HOST │ ◄──────────────────────────► │ @tychilabs/ │
│ (Claude / etc.) │ tools/list, tools/call │ ugf-mcp │
└──────────────────┘ └────────┬─────────┘
│ HTTPS
▼
UGF gateway
RPC nodes (EVM/Sol/Sui)The server is stateless and keyless. It:
discovers what coins/chains are payable (
ugf_get_registry)reads on-chain balances (
ugf_check_balance)prices a destination action as a UGF route (
ugf_quote,ugf_smart_quote)returns unsigned payment payloads or destination-prepared bytes
accepts your locally-produced signatures and submits proofs to UGF
polls route status
Signing happens in your agent, not here. This MCP never sees a private key, mnemonic, or password. That's the whole point.
Typical flow (3 steps)
1. quote → ugf_smart_quote { payer_address, dest_chain_id, dest_chain_type, tx_object }
returns ranked routes with digest + payment_amount
2. pay → ugf_x402_build_typed_data OR ugf_vault_build_tx
returns payload your agent signs LOCALLY
then: ugf_x402_submit_signed OR ugf_vault_submit_signed
3. execute → destination-side helpers for the chain family
EVM: ugf_evm_wait_sponsorship → broadcast locally → ugf_evm_confirm_user_tx
Sol: ugf_sol_wait_user_sig_message → sign locally → ugf_sol_submit_user_sig
Sui: ugf_sui_wait_sponsor_bytes → sign locally → ugf_sui_execute_signed_blockYour agent's LLM orchestrates these calls. The MCP just executes each.
Tools (19)
Run npx -y @tychilabs/ugf-mcp@beta --tools for the live list. Summary:
Discovery
Tool | Purpose |
| List every supported payment coin + chains + token/vault addresses. |
| Read on-chain balance for any EVM wallet/token/chain. |
Auth
Tool | Purpose |
| Get the login nonce for a wallet address. |
| Submit address + nonce + locally-produced signature → JWT. |
| Restore a cached JWT on a fresh session. |
Quote
Tool | Purpose |
| Explicit route — pick exact payment coin + chain. |
| Auto-discover the cheapest viable route across the agent's balances. |
Pay (self-custody — no signer required)
Tool | Purpose |
| Return ERC-3009 typed-data for x402 payment. Agent signs locally. |
| Submit the agent-produced x402 signature. |
| Return unsigned EIP-1559 vault payment tx. Agent signs + broadcasts locally. |
| Submit the on-chain vault tx hash after the agent broadcasts. |
Execute — EVM destination
Tool | Purpose |
| Wait until UGF has sponsored the destination side. |
| Confirm the agent-broadcast destination tx hash back to UGF. |
Execute — Solana destination
Tool | Purpose |
| Wait for UGF's prepared Solana message bytes. |
| Submit the agent-produced ed25519 user signature. |
Execute — Sui destination
Tool | Purpose |
| Wait until UGF returns |
| Broadcast the dual-signed (user + sponsor) Sui block via Sui RPC. |
Status
Tool | Purpose |
| Single-shot status check for a route digest. |
| Poll until the route reaches a terminal state. |
Environment variables
All optional. Public RPCs are used when not set.
Var | Default | Purpose |
|
| Ethereum mainnet |
|
| Optimism |
|
| BNB chain |
|
| Polygon |
|
| opBNB |
|
| Arbitrum |
|
| Avalanche C-chain |
|
| Base |
|
| Sui mainnet |
Where to set them
Per MCP host config (preferred) — pass through to the spawned process:
{
"mcpServers": {
"ugf": {
"command": "npx",
"args": ["-y", "@tychilabs/ugf-mcp@beta"],
"env": {
"RPC_BASE": "https://base-mainnet.g.alchemy.com/v2/<your-key>",
"RPC_ETH": "https://eth-mainnet.g.alchemy.com/v2/<your-key>"
}
}
}
}Local .env.mcp — useful for development. Copy .env.example → .env.mcp, fill in your keys, run the server in the same directory.
Security model
Layer | What's here | What's NOT here |
MCP source | reads + RPC calls + UGF SDK glue | no key material, no |
Wire protocol | JSON-RPC over stdio | no remote network listener — the host process pipes stdin/stdout |
External calls | UGF gateway + public RPCs | no telemetry, no analytics, no third-party reporting |
Verified by a CI grep guard — private_key, mnemonic, secretKey, Keypair.fromSecretKey, new ethers.Wallet must return zero hits in src/.
If you need a host-side wallet that signs for the agent automatically, that's a separate concern. This MCP server is the bridge — it expects a signing-capable client on the host.
Examples
List supported coins from your terminal
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ugf_get_registry","arguments":{}}}' \
| npx -y @tychilabs/ugf-mcp@betaInside Claude Desktop (after wiring config above)
Ask:
What UGF payment coins are available on Base?
Claude will call ugf_get_registry and answer.
What's my USDC balance on Base for address 0x...?
Claude calls ugf_check_balance.
Quote a payment of 0.01 USDC on BNB paying gas from my Base USDC. My payer address is 0x...
Claude calls ugf_smart_quote, returns ranked routes. To actually execute, your agent needs to sign — see "How this MCP works" above.
Troubleshooting
symptom | likely cause | fix |
| Payment chain is legacy gas (BNB, opBNB). | Pay from an EIP-1559 chain (Base, Ethereum, etc.) until the upstream SDK ships legacy-tx support. |
| BNB / opBNB blocked client-side for the same reason. | Same workaround as above. |
| Missing JWT. | Call |
| Gateway indexer lag — the broadcast succeeded but gateway hadn't seen the block yet. | Wait 5–10 seconds and resubmit. The agent orchestrator that ships in our binary product already retries with backoff. |
| The chain ID you passed isn't in the registry. | Call |
MCP host can't see the tools | npx didn't run / wrong path. | Test in a terminal with |
Versioning
Follows semver. 1.0.0-beta.1 is the first publicly published version. Breaking changes during beta will bump to -beta.N+1. After ~1 week of stable mainnet usage with no incidents, promotes to 1.0.0.
License
MIT — see LICENSE.
Links
UGF docs (protocol, not this MCP): https://universalgasframework.com
Anthropic MCP spec: https://modelcontextprotocol.io
Available Tools
19 toolsugf_authenticateA
Complete UGF login. Agent signs the nonce from ugf_get_nonce with its private key and passes the signature here. Returns JWT for agent to cache.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | EVM wallet address of the agent | |
| nonce | Yes | Nonce returned by ugf_get_nonce | |
| signature | Yes | Nonce signed by agent's private key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were provided, so the description must bear the full burden. It explains the authentication flow and output (JWT) but does not disclose side effects, required permissions, rate limits, or security implications (e.g., storing JWT securely).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a distinct purpose: stating the action, explaining the steps, and specifying the output. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential flow for a login tool: prerequisite (nonce from previous call), inputs, and output (JWT to cache). Without an output schema, it adequately describes what to expect, though error handling or status codes are not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes each parameter (address, nonce, signature) with 100% coverage. The description adds value by explaining that the nonce comes from ugf_get_nonce and the signature is the signed nonce, providing context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Complete UGF login' and explains the mechanism (sign nonce from ugf_get_nonce, pass signature, get JWT). It distinguishes from sibling tools like ugf_get_nonce by indicating it is the subsequent step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool should be used after ugf_get_nonce by stating 'Agent signs the nonce from ugf_get_nonce'. It does not explicitly state when not to use it, but the context of authentication flow is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_check_balanceA
Read on-chain balance for a wallet on a supported EVM chain. Pass token_address='native' for the chain's native token, or an ERC-20 contract address. Returns the raw balance in atoms (smallest unit) as a decimal string. Stateless RPC read — no keys required.
| Name | Required | Description | Default |
|---|---|---|---|
| payer_address | Yes | EVM wallet address to read | |
| token_address | Yes | ERC-20 contract address, or the literal string 'native' for the chain's native gas token | |
| chain_id | Yes | EVM chain ID — e.g. '1', '8453', '56' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses the tool is a stateless RPC read that requires no keys. It returns raw balance in atoms as a decimal string. Missing details on error handling or rate limits, but the core behavioral traits are well-covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: first states purpose, second covers parameter usage, third explains behavior and safety. Extremely concise with no redundant information, and the most important info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, no output schema, and no annotations, the description covers all essential aspects: what it does, how to use parameters, return format, and that it is stateless and keyless. Nothing crucial is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and includes descriptions. The description goes beyond the schema by clarifying the special value 'native' for token_address and explaining the return format (raw balance in smallest unit as decimal string). This adds meaningful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: reading on-chain balance for a wallet on a supported EVM chain. It specifies the verb 'read', the resource 'balance', and distinguishes from sibling tools (e.g., transaction submission tools) by focusing on a read-only balance query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing an EVM token balance and explicitly shows how to specify 'native' or an ERC-20 address. However, it does not compare with siblings like ugf_check_status or ugf_get_nonce, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_check_statusB
Poll UGF route status by digest. Returns current status and completion state.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | Route digest to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose whether the tool is read-only, requires authentication, or is safe to poll repeatedly. Only states it returns status and completion state, leaving the agent to infer behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with key action and what it returns. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and no output schema. Description covers the basic purpose but does not explain what 'UGF route status' means or how to interpret the response. Missing details on return format or whether polling is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of 'digest'. Description adds context that it checks 'by digest' and returns status. Baseline 3, as schema already fully describes the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it polls UGF route status by digest and returns status and completion state. Distinguishes from sibling tools like ugf_poll_status? Not explicitly, but the action is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like ugf_poll_status. No prerequisites mentioned, such as requiring a valid digest from a prior submission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_evm_confirm_user_txC
Confirm a user-broadcast destination EVM tx hash back to UGF.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | ||
| tx_hash | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether this is a read or write operation, side effects, or authorization requirements. 'Confirm' suggests mutation but is not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence but lacks essential detail. It is under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and unexplained parameters, the description is severely incomplete. It does not clarify what 'confirm' entails or how the tool integrates with the overall workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning for the two parameters (digest, tx_hash). Without any parameter explanation, the agent cannot determine what values to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb 'confirm' and a resource 'EVM tx hash', but the phrasing 'back to UGF' is unclear. It vaguely distinguishes from siblings which involve other operations like authentication or signing, but the exact purpose is ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like ugf_check_status or ugf_evm_wait_sponsorship. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_evm_wait_sponsorshipB
Wait until UGF sponsorship side is ready for a destination EVM tx. Agent then sends destination tx itself.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | ||
| max_attempts | No | ||
| interval_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions waiting but lacks details on polling behavior, timeout, error handling, or what happens if sponsorship is never ready. The parameters 'max_attempts' and 'interval_ms' imply polling, but the description does not clarify their role or behavior beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no extraneous text. The key information is front-loaded and every sentence is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a polling/wait with no output schema. The description lacks details on return values, error conditions, and how the agent should proceed after the wait. For a blocking operation, more behavioral documentation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters. 'digest', 'max_attempts', and 'interval_ms' are left completely unexplained, forcing the agent to infer meaning from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: waiting for UGF sponsorship readiness for a destination EVM transaction, then the agent sends the tx. It uses specific verbs ('wait', 'sends') and distinguishes from sibling tools like 'ugf_evm_confirm_user_tx' and chain-specific wait tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool (before sending an EVM transaction) and hints at the post-usage step (agent sends tx). However, it doesn't explicitly exclude cases or name alternative tools, though the sibling set includes other chain-specific waits, making the context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_get_nonceA
Fetch the UGF login nonce for a wallet address. Agent signs this nonce externally then calls ugf_authenticate.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | EVM wallet address of the agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the nonce is fetched for login and requires external signing, but lacks details on idempotency, side effects, or authentication requirements for the tool itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. Clearly structured with the action and the follow-up step. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple nonce fetch tool with one parameter, the description covers purpose and next step. However, it does not describe the return value format or whether the nonce is time-sensitive, which could be important. No output schema to supplement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description repeats schema info ('wallet address') without adding new semantics beyond the schema's description. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it fetches a UGF login nonce for a wallet address, using specific verb and resource. Distinguishes from siblings by referencing the follow-up tool ugf_authenticate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (before authentication) and the next step (agent signs nonce then calls ugf_authenticate). However, does not mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_get_registryA
Fetch UGF's live payment token registry. Returns the list of supported payment coins (e.g. USDC, $U, ETH) and the chains each can be paid on, including token + vault contract addresses. Use this to discover viable routes without doing a quote.
| Name | Required | Description | Default |
|---|---|---|---|
| invalidate_cache | No | If true, force a fresh fetch from the gateway instead of using the SDK's local cache. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. It mentions caching behavior via the invalidate_cache parameter, but does not explicitly declare the operation as read-only or describe any side effects, rate limits, or idempotency. This is adequate but could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of three concise sentences: purpose, return details, and usage guidance. Every sentence adds value without redundancy. Front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers what the tool returns (list of supported coins, chains, addresses) and when to use it. Despite lacking an output schema, the description compensates with explicit examples of return content, making it complete for a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for its single parameter (invalidate_cache). The description adds value by explaining when to use the parameter ('force a fresh fetch from the gateway instead of using the SDK's local cache'), going beyond the schema's simple boolean description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the action verb 'Fetch' and clearly names the resource as 'UGF's live payment token registry'. It provides specific examples of return values (USDC, $U, ETH) and distinguishes it from sibling tools like ugf_quote and ugf_check_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use this to discover viable routes without doing a quote.' This gives clear context, though it does not provide explicit exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_poll_statusA
Poll UGF route until completed/failed/expired. Use after payment to confirm execution.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | ||
| max_attempts | No | Max poll attempts (default 30) | |
| interval_ms | No | Ms between polls (default 3000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that polling continues until terminal states, but lacks details on blocking behavior, error handling, or intermediate statuses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. First sentence states the action, second provides usage context. Highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple; description covers when to use and behavior. No output schema, but return value is implied. Fairly complete for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to parameters; the schema covers max_attempts and interval_ms but digest lacks description. With 67% schema coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool polls a UGF route until completed/failed/expired and is used after payment to confirm execution, specifying the verb and resource distinctly from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use after payment to confirm execution,' providing clear context for when to use the tool, though it does not exclude 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.
ugf_quoteB
Get a UGF quote for a specific payment coin and chain. Checks wallet balance against quote amount and returns whether the agent can proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| payer_address | Yes | EVM wallet address of the payer | |
| payment_coin | Yes | Token to pay with e.g. USDC, $U, ETH | |
| payment_chain | Yes | Chain ID to pay from e.g. 8453, 56 | |
| dest_chain_id | Yes | Destination chain ID | |
| dest_chain_type | Yes | Destination chain type | |
| tx_object | Yes | Destination transaction as JSON string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral info beyond schema: balance check and proceedability decision. However, lacks details on side effects, error handling, or whether it is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with key information. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core purpose and a key behavior, but missing output format, error cases, and prerequisites. Without output schema or annotations, description could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter descriptions already exist. Tool description adds no new meaning beyond what schema provides, meeting baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets a UGF quote for a specific payment coin and chain, and mentions checking balance and returning proceedability. Distinguishable from sibling tools like ugf_smart_quote, though no explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives such as ugf_smart_quote or other UGF tools. Lacks context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_set_tokenA
Restore a cached UGF JWT on the MCP client. Use this on subsequent sessions to skip re-signing the nonce.
| Name | Required | Description | Default |
|---|---|---|---|
| jwt | Yes | Cached JWT from a previous ugf_authenticate call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses restoring a cached token, implying non-destructive but doesn't state if it overwrites existing token. No annotations, but simplicity mitigates gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with action and purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple set operation with one required parameter. Lacks mention of output or error conditions, but no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes the JWT parameter as 'Cached JWT from a previous ugf_authenticate call'. Description adds minimal extra meaning beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action ('restore') and resource ('cached UGF JWT'), and distinguishes from sibling ugf_authenticate by mentioning skip re-signing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says use on subsequent sessions to skip re-signing, implying when to use and when not (use ugf_authenticate for initial signing).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_smart_quoteA
Auto-discover the best payment route. Fetches all wallet balances in parallel, gets quotes for every viable option, and returns ranked choices cheapest first. Agent just provides calldata and destination.
| Name | Required | Description | Default |
|---|---|---|---|
| payer_address | Yes | EVM wallet address of the payer | |
| dest_chain_id | Yes | Destination chain ID | |
| dest_chain_type | Yes | Destination chain type — evm, sol, or sui | |
| tx_object | Yes | Destination transaction as JSON string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It details that it fetches all wallet balances in parallel, gets quotes for all options, and returns ranked choices. This is transparent, though it omits whether the tool is read-only or if it has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the core purpose ('Auto-discover the best payment route') and then briefly explaining the process. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With all parameters documented and the description explaining the discovery process and output (ranked choices), the tool is fairly complete for its complexity. However, the lack of an output schema means the description could be more precise about the return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions. The description adds that the agent provides 'calldata and destination', which maps to tx_object and chain parameters, but does not offer additional semantic depth beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool auto-discovers the best payment route, fetches balances, gets quotes, and returns ranked cheapest first. This distinguishes it from the sibling ugf_quote, as it adds discovery logic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Agent just provides calldata and destination', indicating simple invocation. However, it does not explicitly state when not to use or contrast with alternatives like ugf_quote, leaving slight ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_sol_submit_user_sigB
Submit a locally-produced Solana user signature to UGF. Pair with ugf_sol_wait_user_sig_message.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | ||
| user_sig | Yes | Base64-encoded ed25519 signature over serialized_message |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits like idempotency, side effects, required prior steps, or error conditions. The user_sig parameter description in schema adds some context, but overall insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no wasted words, front-loaded with key verb and resource. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param submission tool with no output schema and no annotations, the description is too brief. It should explain what UGF does with the signature, possible outcomes, and context of the paired tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only user_sig has description). The tool description adds no meaning beyond the schema; 'digest' remains unexplained, and user_sig description is already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Submit', resource 'Solana user signature', target 'UGF', and points to sibling tool for pairing. However, it does not explain what the submission accomplishes or the subsequent behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions pairing with 'ugf_sol_wait_user_sig_message', which gives some context, but lacks any guidance on when to use this tool versus alternatives 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.
ugf_sol_wait_user_sig_messageB
Wait for the Solana user-sig message UGF prepared. Returns {serialized_message: base64}. Agent signs locally with its keypair via nacl.sign.detached, then calls ugf_sol_submit_user_sig.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | ||
| max_attempts | No | ||
| interval_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool awaits a message and returns a serialized message for local signing, and that the agent must then call another tool. This adds some behavioral context, but lacks details on polling behavior (max_attempts, interval_ms), error handling, and whether the operation is read-only or destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and efficiently conveys the core purpose and next steps. It is front-loaded with the action. However, it lacks structured details about parameters, which could be added without excessive length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and no annotations, the description is incomplete. It provides high-level workflow context but fails to explain param semantics, polling mechanics, timeouts, or failure modes, leaving significant gaps for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (digest, max_attempts, interval_ms). The agent has no guidance on their meaning or usage, requiring inference from the tool name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool waits for a Solana user-sig message prepared by UGF, specifies the return format (base64), and outlines the subsequent action (signing and calling ugf_sol_submit_user_sig). It effectively distinguishes itself from sibling tools by describing the workflow step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: before signing and submitting a user signature. It explicitly names the follow-up tool (ugf_sol_submit_user_sig), providing clear context. However, it does not specify scenarios where this tool should not be used or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_sui_execute_signed_blockB
Broadcast a dual-signed (user + sponsor) Sui transaction block via Sui RPC. Returns {tx_digest}.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_bytes | Yes | Base64 sponsor-prepared tx bytes | |
| user_sig | Yes | User signature string from local Sui keypair | |
| sponsor_sig | Yes | Sponsor signature string from UGF gateway | |
| rpc_url | No | Optional Sui RPC URL; falls back to env SUI_RPC_URL or mainnet fullnode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only mentions broadcasting and returning tx_digest but does not disclose whether the call is synchronous, if it waits for confirmation, error handling behavior, or any side effects, which are important for a transaction submission tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that immediately states the purpose and return value, with no extraneous information. Front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 4 parameters are fully described in schema and the return is specified as {tx_digest}, the description provides minimal context. For a complex operation like submitting a signed transaction, additional information on result handling or error cases would improve completeness, but it meets the baseline.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a description. The tool description adds no extra meaning beyond what is already in the schema, earning a baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (broadcast), the object (dual-signed Sui transaction block), and the return value ({tx_digest}), distinguishing it from sibling tools like ugf_sui_wait_sponsor_bytes which likely prepare the transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as prerequisites (e.g., having user_sig and sponsor_sig) or whether it should be called after ugf_sui_wait_sponsor_bytes. The description does not help an agent decide when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_sui_wait_sponsor_bytesA
Wait for UGF to prepare Sui sponsor tx_bytes + sponsor_sig (base64). Agent signs tx_bytes locally with its Sui Ed25519 keypair, then calls ugf_sui_execute_signed_block.
| Name | Required | Description | Default |
|---|---|---|---|
| digest | Yes | ||
| max_attempts | No | ||
| interval_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description bears full burden. It discloses the wait behavior and base64 encoding but does not describe failure modes, timeouts, or idempotency. Partially transparent but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with purpose. Could be slightly improved by hinting at parameter roles, but still concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides workflow linkage but missing explanation of output (tx_bytes and sponsor_sig), error handling, and parameter semantics. Adequate but leaves gaps given no output schema or annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0%; description does not explain any of the three parameters (digest, max_attempts, interval_ms). Agent must infer meaning from context. No added value beyond parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool waits for UGF to prepare sponsor tx_bytes and signature, and distinguishes from sibling ugf_sui_execute_signed_block by specifying the next step after signing. Specific verb 'wait' and resource 'Sui sponsor tx_bytes + sponsor_sig'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides workflow context: agent signs locally then calls sibling. This gives implicit guidance on when to use this tool (before signing and execution) but lacks explicit when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_vault_build_txA
Build unsigned EIP-1559 vault payment tx for local signing + broadcast. Returns {to, data, value, chainId, gasLimit, nonce, type, maxFeePerGas, maxPriorityFeePerGas} — all BigInts as strings. Agent signs + broadcasts, then calls ugf_vault_submit_signed.
| Name | Required | Description | Default |
|---|---|---|---|
| quote | Yes | ||
| payer_address | Yes | EVM address of the payer |
TDQS
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 indicates the tool returns an unsigned transaction (no submission), but fails to explicitly state non-destructive behavior. The description could be more transparent about state changes or permissions requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core purpose, followed by return format and workflow steps. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While no output schema exists, the description lists all return fields. Missing explanation of the quote parameter origin (though sibling tools like ugf_quote exist). Overall, it is adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only payer_address has a description). The description does not explain the quote object's fields (digest, payment_to, etc.) or how to obtain it. It adds marginal value by listing return fields, but doesn't fully compensate for the gap in parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool builds an unsigned EIP-1559 vault payment transaction for local signing and broadcast. It specifies the return fields (to, data, value, etc.) and explicitly distinguishes itself from the sibling tool ugf_vault_submit_signed by noting the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: 'Agent signs + broadcasts, then calls ugf_vault_submit_signed.' This tells the agent when to use this tool (before signing) and what step follows. It does not mention when not to use it, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_vault_submit_signedA
Submit proof of a locally-broadcast vault payment tx. Pair with ugf_vault_build_tx.
| Name | Required | Description | Default |
|---|---|---|---|
| quote | Yes | ||
| tx_hash | Yes | On-chain tx hash of the broadcast vault payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description bears full burden. It only states the action without disclosing behavioral traits like idempotency, authentication needs, or side effects, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and no wasted words. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks detail on the quote object structure, expected outcomes, or error conditions. For a tool with a nested parameter and no output schema, this is insufficient for an agent to fully understand behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with tx_hash already described. The description adds no extra meaning for the quote object, leaving its sub-properties unexplained. Adequate but not compensatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Submit proof') and resource ('locally-broadcast vault payment tx') and distinguishes itself by pairing with ugf_vault_build_tx, indicating a specific workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly pairs with ugf_vault_build_tx, providing clear usage context. Does not mention when not to use or alternatives, but the workflow guidance is valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_x402_build_typed_dataB
Build ERC-3009 x402 typed-data payload for local signing. Returns {domain, types, message, nonce, valid_after, valid_before}. Agent signs with signTypedData, then calls ugf_x402_submit_signed.
| Name | Required | Description | Default |
|---|---|---|---|
| quote | Yes | ||
| payer_address | Yes | EVM address of the payer (must match the wallet that will sign) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It describes the return object (domain, types, message, nonce, valid_after, valid_before) and next steps, but lacks information on side effects, permissions, or prerequisites (e.g., needing a quote). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences, ~150 characters) and front-loaded with the core purpose. Every sentence adds value, though it could benefit from slightly more detail on parameters or safety without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (ERC-3009, typed-data signing, multi-step process) and lack of output schema, the description is incomplete. It omits explanation of key concepts like 'quote,' valid_after/valid_before, and error conditions. It provides a sequence but not sufficient context for an agent to use it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with only payer_address having a description in the schema. The tool description does not elaborate on parameters; 'quote' is an object with five required fields but no explanation of its meaning in the x402 context. Baseline expects description to compensate, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool builds an ERC-3009 x402 typed-data payload for local signing, specifying the verb and resource. It distinguishes from sibling ugf_x402_submit_signed by describing it as a preparatory step, but could more explicitly differentiate from other build tools like ugf_vault_build_tx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description outlines a usage sequence: build payload, sign with signTypedData, then call ugf_x402_submit_signed. This provides context for when to use, but it does not mention when not to use or alternatives, leaving the agent to infer exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ugf_x402_submit_signedA
Submit a locally-signed x402 payload to UGF. Pair with ugf_x402_build_typed_data.
| Name | Required | Description | Default |
|---|---|---|---|
| quote | Yes | ||
| signature | Yes | Hex signature from signTypedData | |
| nonce | Yes | ||
| valid_after | Yes | ||
| valid_before | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description must disclose behavioral traits. It only describes the action without mentioning side effects, success/failure conditions, idempotency, or output behavior, leaving the agent without critical context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences, no redundant text. Front-loaded with the primary action, followed by a pairing hint. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complex nested schema, 5 required parameters, no output schema, and no annotations, the description is too brief. Missing details on input constraints, return values, and behavioral expectations reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, and the description adds no parameter-level information. Critical parameters like valid_after, valid_before, and nested quote fields are unexplained, requiring the agent to infer semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action 'Submit a locally-signed x402 payload to UGF', specifying verb and resource. Pairing reference differentiates from sibling tools like ugf_x402_build_typed_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to pair with ugf_x402_build_typed_data, indicating typical usage sequence. Does not mention when not to use or alternatives, but sufficient context for intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The tools are largely distinct by blockchain (EVM, Solana, Sui) and function (auth, balance, quote, submit). Paired operations like build/submit are clearly linked. Minor ambiguity exists between ugf_check_status and ugf_poll_status, but descriptions clarify that one polls until completion.
All tools start with 'ugf_' and use snake_case. Most follow a verb_noun pattern (e.g., ugf_check_balance, ugf_get_nonce). A few like ugf_authenticate omit the object, and ugf_smart_quote uses an adjective, but the overall pattern is predictable.
With 19 tools covering authentication, registry, balance, quoting, and payment operations across three blockchains plus EVM vault and x402, the count is well-scoped for the server's purpose. Each tool serves a clear role without bloat.
The tool surface covers the full lifecycle: discover (registry, balance), authenticate, quote, execute (per chain), and confirm. Missing are cancellation or withdrawal operations, but core payment workflows are complete.
Maintenance
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
Gasless cross-chain for AI agents: 25 nodes incl. Solana & native Bitcoin. One signature, no gas.
Cross-chain token swaps for autonomous agents on Base L2 and partner rails
Gasless, MEV-protected onchain token swaps for AI agents on 14 EVM chains, built on CoW Protocol.
Token swaps and honeypot/rug checks for AI agents on 8 chains, paid per-call in USDC via x402.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to interact with cryptocurrency ecosystems through wallet management, trading operations (swaps, DCA, limit orders), staking, and multi-chain support starting with Solana.37GPL 3.0
- AlicenseCqualityCmaintenanceEnables AI agents to interact with any EVM-compatible blockchain through natural language, supporting token swaps, cross-chain bridges, staking, lending, governance, gas optimization, and portfolio tracking across networks like Ethereum, BSC, Polygon, Arbitrum, and more.1006339Inno Setup
- AlicenseNot gradedqualityCmaintenanceEnables cross-chain transactions (swap, send, balance) on 10 blockchains from a single NEAR account, designed for AI agents and humans via MCP.6Apache 2.0
- AlicenseNot gradedqualityCmaintenanceDeFi execution layer for AI agents - swap, zap in/out of LP, route across AMMs on 5 EVM chains.1647MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/TychiWallet/ugf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server