Skip to main content
Glama
TychiWallet

Universal Gas Framework MCP Server

by TychiWallet

Universal Gas Framework MCP Server

npm license

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:

  1. Builds unsigned payloads

  2. Submits the agent's signed proofs

  3. 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@beta

That 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 --help

Requires 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@beta

Codex 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_block

Your 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

ugf_get_registry

List every supported payment coin + chains + token/vault addresses.

ugf_check_balance

Read on-chain balance for any EVM wallet/token/chain.

Auth

Tool

Purpose

ugf_get_nonce

Get the login nonce for a wallet address.

ugf_authenticate

Submit address + nonce + locally-produced signature → JWT.

ugf_set_token

Restore a cached JWT on a fresh session.

Quote

Tool

Purpose

ugf_quote

Explicit route — pick exact payment coin + chain.

ugf_smart_quote

Auto-discover the cheapest viable route across the agent's balances.

Pay (self-custody — no signer required)

Tool

Purpose

ugf_x402_build_typed_data

Return ERC-3009 typed-data for x402 payment. Agent signs locally.

ugf_x402_submit_signed

Submit the agent-produced x402 signature.

ugf_vault_build_tx

Return unsigned EIP-1559 vault payment tx. Agent signs + broadcasts locally.

ugf_vault_submit_signed

Submit the on-chain vault tx hash after the agent broadcasts.

Execute — EVM destination

Tool

Purpose

ugf_evm_wait_sponsorship

Wait until UGF has sponsored the destination side.

ugf_evm_confirm_user_tx

Confirm the agent-broadcast destination tx hash back to UGF.

Execute — Solana destination

Tool

Purpose

ugf_sol_wait_user_sig_message

Wait for UGF's prepared Solana message bytes.

ugf_sol_submit_user_sig

Submit the agent-produced ed25519 user signature.

Execute — Sui destination

Tool

Purpose

ugf_sui_wait_sponsor_bytes

Wait until UGF returns tx_bytes + sponsor_sig.

ugf_sui_execute_signed_block

Broadcast the dual-signed (user + sponsor) Sui block via Sui RPC.

Status

Tool

Purpose

ugf_check_status

Single-shot status check for a route digest.

ugf_poll_status

Poll until the route reaches a terminal state.


Environment variables

All optional. Public RPCs are used when not set.

Var

Default

Purpose

RPC_ETH

https://eth.llamarpc.com

Ethereum mainnet

RPC_OP

https://mainnet.optimism.io

Optimism

RPC_BNB

https://bsc-dataseed.binance.org

BNB chain

RPC_POLYGON

https://polygon-rpc.com

Polygon

RPC_OPBNB

https://opbnb-mainnet-rpc.bnbchain.org

opBNB

RPC_ARB

https://arb1.arbitrum.io/rpc

Arbitrum

RPC_AVAX

https://api.avax.network/ext/bc/C/rpc

Avalanche C-chain

RPC_BASE

https://mainnet.base.org

Base

SUI_RPC_URL

https://fullnode.mainnet.sui.io:443

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 ethers.Wallet, no Keypair.fromSecretKey, no mnemonic, no password

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@beta

Inside 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

Provider did not return EIP-1559 fee data

Payment chain is legacy gas (BNB, opBNB).

Pay from an EIP-1559 chain (Base, Ethereum, etc.) until the upstream SDK ships legacy-tx support.

Payment chain X temporarily disabled

BNB / opBNB blocked client-side for the same reason.

Same workaround as above.

Authentication required from gateway

Missing JWT.

Call ugf_get_nonce → sign locally → ugf_authenticate. Cache the returned JWT.

got 0 after a vault broadcast

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.

Unsupported payment chain

The chain ID you passed isn't in the registry.

Call ugf_get_registry first to see what's supported.

MCP host can't see the tools

npx didn't run / wrong path.

Test in a terminal with npx -y @tychilabs/ugf-mcp@beta --tools.


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.

Available Tools

19 tools
ugf_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEVM wallet address of the agent
nonceYesNonce returned by ugf_get_nonce
signatureYesNonce signed by agent's private key

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

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: '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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
payer_addressYesEVM wallet address to read
token_addressYesERC-20 contract address, or the literal string 'native' for the chain's native gas token
chain_idYesEVM chain ID — e.g. '1', '8453', '56'

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

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

Parameters4/5

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.

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

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
digestYesRoute digest to check

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
digestYes
tx_hashYes

TDQS

C2/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
digestYes
max_attemptsNo
interval_msNo

TDQS

B3.3/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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEVM wallet address of the agent

TDQS

A4/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 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
invalidate_cacheNoIf true, force a fresh fetch from the gateway instead of using the SDK's local cache.

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
digestYes
max_attemptsNoMax poll attempts (default 30)
interval_msNoMs between polls (default 3000)

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

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
payer_addressYesEVM wallet address of the payer
payment_coinYesToken to pay with e.g. USDC, $U, ETH
payment_chainYesChain ID to pay from e.g. 8453, 56
dest_chain_idYesDestination chain ID
dest_chain_typeYesDestination chain type
tx_objectYesDestination transaction as JSON string

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jwtYesCached JWT from a previous ugf_authenticate call

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
payer_addressYesEVM wallet address of the payer
dest_chain_idYesDestination chain ID
dest_chain_typeYesDestination chain type — evm, sol, or sui
tx_objectYesDestination transaction as JSON string

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
digestYes
user_sigYesBase64-encoded ed25519 signature over serialized_message

TDQS

B3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
digestYes
max_attemptsNo
interval_msNo

TDQS

B3.4/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 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_bytesYesBase64 sponsor-prepared tx bytes
user_sigYesUser signature string from local Sui keypair
sponsor_sigYesSponsor signature string from UGF gateway
rpc_urlNoOptional Sui RPC URL; falls back to env SUI_RPC_URL or mainnet fullnode

TDQS

B3.3/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 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
digestYes
max_attemptsNo
interval_msNo

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteYes
payer_addressYesEVM address of the payer

TDQS

A4/5.0
Behavior3/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 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteYes
tx_hashYesOn-chain tx hash of the broadcast vault payment

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

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteYes
payer_addressYesEVM address of the payer (must match the wallet that will sign)

TDQS

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

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteYes
signatureYesHex signature from signTypedData
nonceYes
valid_afterYes
valid_beforeYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

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/TychiWallet/ugf-mcp'

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