Paloma DEX MCP Server
Manages environment variables for secure configuration, particularly for storing private keys and contract addresses needed for trading operations
Enables trading on Ethereum Mainnet (Chain ID: 1) through Paloma DEX, allowing token purchases, sales, balance checks, and price queries
Supports trading operations on Optimism (Chain ID: 10) through Paloma DEX, with tools for buying/selling tokens and checking balances
Provides trading capabilities on Polygon (Chain ID: 137) through Paloma DEX, with support for cross-chain token exchanges
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., "@Paloma DEX MCP Serverget my PUSD balance on Arbitrum"
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.
Paloma DEX MCP Server
A Model Context Protocol (MCP) server that enables AI agents to interact with Paloma DEX across 7 EVM chains. Built with FastMCP framework for modern MCP implementations.
Overview
This MCP server provides AI agents with tools to access blockchain data and prepare for decentralized trading operations on Paloma DEX. The server supports cross-chain functionality across Ethereum, Arbitrum, Optimism, Base, BSC, Polygon, and Gnosis chains.
Related MCP server: EVM MCP Server
Features
Available Tools
Blockchain Data Access
get_account_info: Get account address and native token balances across all chainsget_pusd_balance: Get PUSD token balance on a specific chainget_chain_info: Get detailed information about a specific blockchainlist_supported_chains: List all supported chains with their configurationsget_address_balances: Get balances for any Ethereum address across all chains
ETF Trading Tools
get_etf_tokens: Get available ETF tokens on a specific chainget_etf_price: Get buy and sell prices for an ETF token (by EVM address)get_etf_price_by_symbol: Get ETF price by token symbol (recommended)get_etf_price_by_paloma_denom: Get ETF price by Paloma denominationget_etf_balance: Get ETF token balance for a wallet addressbuy_etf_token: Buy ETF tokens using input tokens (simulation)sell_etf_token: Sell ETF tokens back to base currency (simulation)
Chain Support
Supports all 7 EVM chains used by Paloma DEX:
Ethereum Mainnet (Chain ID: 1)
Arbitrum One (Chain ID: 42161)
Optimism (Chain ID: 10)
Base (Chain ID: 8453)
BNB Smart Chain (Chain ID: 56)
Polygon (Chain ID: 137)
Gnosis (Chain ID: 100)
Key Capabilities
Multi-Chain Data Access: Query balances and chain information across all 7 supported chains
ETF Trading Support: Complete ETF token ecosystem integration with Paloma DEX API
FastMCP Framework: Built with modern MCP implementation for better performance
Web3 Integration: Direct blockchain interaction via Web3 clients
Transaction Simulation: Safe simulation of trading operations before execution
Error Handling: Comprehensive error management and validation
Address Validation: Ethereum address format validation
Contract Integration: Integration with PUSD and ETF connector contracts
Installation
Clone the repository:
git clone https://github.com/Cieloc/mcpPADEX.git cd mcpPADEXInstall dependencies using uv:
uv sync
Configuration
Set up environment variables:
cp .env.example .envConfigure your
.envfile with the following required variables:# REQUIRED: Your private key for transaction signing # WARNING: Keep this secure and never commit to version control PRIVATE_KEY=your_private_key_here # Contract addresses for each chain (obtain from Paloma DEX) PUSD_TOKEN_ETH= PUSD_CONNECTOR_ETH= ETF_CONNECTOR_ETH= # ... (repeat for all chains) # Optional: Moralis API key for enhanced features MORALIS_SERVICE_API_KEY=your_moralis_api_key_hereObtain contract addresses from Paloma DEX documentation or team for:
PUSD token addresses
PUSD connector addresses
ETF connector addresses
Usage
Running the Server
uv run padex.pyThe server will start and listen for MCP protocol messages via stdin/stdout.
Tool Examples
Get Account Information
{
"tool": "get_account_info",
"arguments": {}
}Get PUSD Balance
{
"tool": "get_pusd_balance",
"arguments": {
"chain_id": "1"
}
}Get Chain Information
{
"tool": "get_chain_info",
"arguments": {
"chain_id": "42161"
}
}List All Supported Chains
{
"tool": "list_supported_chains",
"arguments": {}
}Get Address Balances
{
"tool": "get_address_balances",
"arguments": {
"address": "0x742d35Cc6648C4532b6C4EC000e40fd94aea4966"
}
}Get Available ETF Tokens
{
"tool": "get_etf_tokens",
"arguments": {
"chain_id": "1"
}
}Get ETF Token Price (by EVM address)
{
"tool": "get_etf_price",
"arguments": {
"chain_id": "1",
"etf_token_address": "0x1234567890123456789012345678901234567890"
}
}Get ETF Price by Symbol (Recommended)
{
"tool": "get_etf_price_by_symbol",
"arguments": {
"symbol": "PAGOLD"
}
}Get ETF Price by Paloma Denomination
{
"tool": "get_etf_price_by_paloma_denom",
"arguments": {
"paloma_denom": "factory/paloma18xrvj2ffxygkmtqwf3tr6fjqk3w0dgg7m6ucwx/palomagold"
}
}Get ETF Token Balance
{
"tool": "get_etf_balance",
"arguments": {
"chain_id": "1",
"etf_token_address": "0x1234567890123456789012345678901234567890",
"wallet_address": "0x742d35Cc6648C4532b6C4EC000e40fd94aea4966"
}
}Buy ETF Tokens (Simulation)
{
"tool": "buy_etf_token",
"arguments": {
"chain_id": "1",
"etf_token_address": "0x1234567890123456789012345678901234567890",
"input_token_address": "native",
"input_amount": "1.0",
"slippage": 2.0
}
}Sell ETF Tokens (Simulation)
{
"tool": "sell_etf_token",
"arguments": {
"chain_id": "1",
"etf_token_address": "0x1234567890123456789012345678901234567890",
"etf_amount": "10.0"
}
}Architecture
Core Components
padex.py: Main MCP server implementation using FastMCP frameworkmain.py: Simple entry point (Hello World)FastMCP Framework: Modern MCP server implementation with lifecycle management
Chain Configuration: Complete configuration for all 7 supported chains
Web3 Clients: Individual Web3 connections for each blockchain
Architecture Pattern
The server uses FastMCP's lifespan context management:
@asynccontextmanager
async def paloma_dex_lifespan(server: FastMCP) -> AsyncIterator[PalomaDEXContext]:
# Initialize Web3 clients and resources
yield context
# Cleanup resourcesSecurity Considerations
⚠️ Important Security Notes:
Private keys are stored in environment variables
Ensure your
.envfile is never committed to version controlThe
.gitignorefile excludes.envby defaultConsider using more secure key management for production use
Dependencies
mcp[cli]: Model Context Protocol with FastMCP framework
web3: Ethereum blockchain interaction
eth-account: Private key and transaction signing
eth-abi: ABI encoding for contract calls
httpx: HTTP client for API interactions
python-dotenv: Environment variable management
API Integrations
The server integrates with:
Blockchain RPC Endpoints: Direct connection to each supported chain
ERC-20 Token Contracts: For PUSD and ETF token balance queries
Paloma DEX API: Live integration for ETF token data and pricing
ETF Connector Contracts: Smart contracts for ETF trading operations
Development
Project Structure
mcpPADEX/
├── padex.py # Main FastMCP server implementation
├── padex_old.py # Previous implementation (backup)
├── main.py # Simple entry point
├── pyproject.toml # Project dependencies
├── .env # Environment variables (not committed)
├── .gitignore # Git ignore rules
├── MCP_DOCUMENTATION.md # MCP protocol reference
├── MCP_PYTHON_SDK_REFERENCE.md # FastMCP SDK reference
├── mcp-llms-full-reference.txt # Complete MCP reference
└── README.md # This fileAdding New Features
The server uses FastMCP decorators for easy extension:
@mcp.tool()
async def new_tool(ctx: Context, param: str) -> str:
"""Tool description"""
# Implementation
return result
@mcp.resource("resource://pattern/{id}")
async def new_resource(id: str) -> str:
"""Resource description"""
# Implementation
return dataContributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is open source. Please check the license file for details.
Disclaimer
This software is provided "as is" without warranty. Trading cryptocurrencies involves risk of loss. Use at your own risk and ensure you understand the implications of automated trading before deployment.
Support
For questions about Paloma DEX integration, consult the Paloma DEX documentation or reach out to the Paloma team.
For MCP-related questions, see the Model Context Protocol documentation.
Available Tools
21 toolsadd_liquidityB
Add liquidity to a trading pool using the Trader contract.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
token0_address: Address of first token
token1_address: Address of second token
token0_amount: Amount of first token in wei
token1_amount: Amount of second token in wei
Returns:
JSON string with liquidity addition transaction details.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| token0_address | Yes | ||
| token1_address | Yes | ||
| token0_amount | Yes | ||
| token1_amount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is 'add liquidity' which implies a write/mutation operation, but doesn't disclose critical behavioral traits: whether this requires token approvals first, gas costs, transaction finality, slippage considerations, or what happens if pool doesn't exist. The return format is mentioned but without details on error cases or transaction status.
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 efficiently structured with a clear purpose statement followed by well-organized parameter documentation. Every sentence earns its place: the first establishes context, the Args section documents all inputs, and the Returns section sets expectations. No redundant information or unnecessary elaboration.
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 5-parameter mutation tool with no annotations and no output schema, the description provides adequate but incomplete coverage. It documents all parameters well and mentions the return format, but lacks critical behavioral context about prerequisites, costs, and error conditions. The agent would need additional knowledge about DeFi protocols to use this tool safely.
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%, so the description must compensate - and it does well by documenting all 5 parameters with clear explanations. It adds crucial semantic context beyond schema titles: chain IDs are enumerated, token amounts are in wei, and the token address parameters are clearly identified. The only minor gap is lack of format details for addresses (e.g., checksummed, 0x-prefixed).
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 ('Add liquidity') and resource ('to a trading pool using the Trader contract'), which is specific and unambiguous. It distinguishes from sibling tools like 'remove_liquidity' by specifying the direction of liquidity movement. However, it doesn't explicitly differentiate from other trading-related tools like 'execute_token_swap' beyond the verb 'add'.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like token approval via 'approve_token_spending'), when liquidity addition is appropriate versus other trading actions, or any constraints on pool selection. The agent must infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_token_spendingA
Approve token spending for trading (two-step approval process).
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
token_address: Address of token to approve
spender_address: Address that will spend the tokens (typically Trader contract)
amount: Amount to approve in wei (defaults to unlimited)
Returns:
JSON string with approval transaction details.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| token_address | Yes | ||
| spender_address | Yes | ||
| amount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that this is a 'two-step approval process' (implying it initiates but doesn't complete approval) and mentions typical spender usage ('typically Trader contract'), which adds behavioral context. However, it doesn't cover critical aspects like required permissions, gas costs, transaction finality, or error conditions.
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 efficiently structured with a purpose statement followed by well-organized Arg and Return sections. Every sentence adds value: the first sets context, and the parameter explanations are essential given the lack of schema descriptions.
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 mutation tool with no annotations and no output schema, the description does well on parameters but lacks completeness. It doesn't explain the return value format beyond 'JSON string with approval transaction details', nor does it cover error handling, security implications, or integration with the two-step process 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?
Schema description coverage is 0%, so the description must compensate fully. It provides clear semantics for all 4 parameters: chain_id (with enumerated values), token_address, spender_address (with typical usage), and amount (with default behavior and units). This adds significant value beyond the bare 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 specific action ('Approve token spending') and resource ('for trading'), distinguishing it from siblings like check_token_allowance (which checks existing approvals) or execute_token_swap (which performs trades). It also mentions the 'two-step approval process', adding unique context.
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 context ('for trading') and mentions a 'two-step approval process', suggesting when this tool fits into a workflow. However, it doesn't explicitly state when to use it versus alternatives like check_token_allowance or what prerequisites are needed, keeping it from a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buy_etf_tokenA
Buy ETF tokens using input tokens (simulation only - no actual transaction).
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
etf_token_address: Address of the ETF token to buy
input_token_address: Address of token to spend (use 'native' for ETH/BNB/MATIC/xDAI)
input_amount: Amount of input token to spend (in token units, e.g. '1.5')
slippage: Slippage tolerance as percentage (default: 2.0)
Returns:
JSON string with transaction simulation details.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| etf_token_address | Yes | ||
| input_token_address | Yes | ||
| input_amount | Yes | ||
| slippage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a simulation ('no actual transaction'), specifies what it returns ('JSON string with transaction simulation details'), and mentions default values ('slippage: default: 2.0'). However, it doesn't cover potential errors, rate limits, or authentication 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?
The description is efficiently structured with a clear purpose statement followed by well-organized parameter explanations. Every sentence adds value, and the information is front-loaded with the most important constraint ('simulation only') stated first.
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 5-parameter simulation tool with no annotations and no output schema, the description provides good coverage of inputs, behavior, and return format. However, it doesn't explain what the simulation details include or potential failure modes, leaving some gaps for the agent to infer.
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?
With 0% schema description coverage, the description fully compensates by providing clear semantic explanations for all 5 parameters: chain ID options, address meanings, 'native' token convention, amount units, and slippage definition. Each parameter's purpose is explained beyond what the bare schema provides.
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: 'Buy ETF tokens using input tokens (simulation only - no actual transaction).' It specifies the verb ('buy'), resource ('ETF tokens'), and key constraint ('simulation only'), but doesn't explicitly differentiate from sibling tools like 'sell_etf_token' or 'execute_token_swap' beyond the buy/sell distinction.
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 context through the 'simulation only' constraint and parameter explanations, but doesn't provide explicit guidance on when to use this tool versus alternatives like 'sell_etf_token' or 'execute_token_swap'. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_token_allowanceA
Check token allowance for a specific owner and spender.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
token_address: Address of the token
owner_address: Address of the token owner
spender_address: Address of the spender (typically Trader contract)
Returns:
JSON string with allowance information.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| token_address | Yes | ||
| owner_address | Yes | ||
| spender_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool checks allowance and returns JSON, but lacks details on error handling, rate limits, authentication needs, or whether it's read-only (though implied by 'check'). For a tool with no annotations, this leaves significant behavioral 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?
The description is well-structured with a purpose statement followed by Args and Returns sections. It's front-loaded and efficient, though the 'Args' and 'Returns' labels are slightly redundant given the schema context. Every sentence adds value without waste.
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 annotations, 0% schema coverage, and no output schema, the description does a decent job covering purpose and parameters. However, it lacks details on return structure (beyond 'JSON string'), error cases, or operational constraints, making it incomplete for a tool with four required parameters and no structured output.
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%, so the description must compensate. It provides clear semantic meaning for all four parameters (e.g., 'chain_id' with specific values, 'owner_address' as token owner, 'spender_address' as typically Trader contract), adding essential context beyond the bare schema. However, it doesn't specify formats (e.g., address validation) or optionality.
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 specific action ('check token allowance') and identifies the key resources (owner and spender). It distinguishes this tool from siblings like 'approve_token_spending' (which sets allowance) and 'get_address_balances' (which checks balances rather than allowances).
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 context by specifying 'typically Trader contract' for the spender, suggesting when this tool might be relevant. However, it doesn't explicitly state when to use this vs. alternatives like 'get_address_balances' or 'approve_token_spending', nor does it provide exclusion criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_token_swapB
Execute a token swap using the Trader contract.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
from_token_address: Address of token to swap from
to_token_address: Address of token to swap to
amount_wei: Amount to swap in wei format
Returns:
JSON string with swap transaction details.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| from_token_address | Yes | ||
| to_token_address | Yes | ||
| amount_wei | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool executes a swap and returns transaction details, but lacks critical information: it doesn't specify if this is a read-only or destructive operation (likely destructive), authentication requirements, rate limits, error handling, or what the JSON response contains. For a financial transaction tool, this is a significant gap.
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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by a clear 'Args' and 'Returns' section. Every sentence earns its place by providing essential information without redundancy or fluff.
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 complexity (financial transaction with 4 parameters), no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like safety, authentication, or error cases, and the return value is vaguely described as 'JSON string with swap transaction details' without specifying structure. This leaves critical gaps for agent usage.
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 substantial meaning beyond the input schema, which has 0% description coverage. It explains each parameter's purpose: chain_id with specific values, from/to token addresses, and amount in wei format. This compensates well for the schema's lack of descriptions, though it could provide more context (e.g., wei as smallest unit).
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: 'Execute a token swap using the Trader contract.' It specifies the action (execute), resource (token swap), and mechanism (Trader contract). However, it doesn't explicitly differentiate from sibling tools like 'validate_trade_quote' or 'get_token_price_estimate', which might be related but serve different purposes.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., token approval via 'approve_token_spending'), timing (e.g., after validation), or differences from sibling tools like 'buy_etf_token' or 'sell_etf_token'. This leaves the agent without context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoB
Get account information including address and balances across all chains.
Returns:
JSON string with account address and native token balances on all supported chains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the return format ('JSON string with account address and native token balances on all supported chains'), which is helpful. However, it lacks details on potential errors, rate limits, authentication requirements, or whether this is a read-only operation (though implied by 'Get'). The description adds some value but leaves gaps in behavioral 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?
The description is highly concise and well-structured. It uses two sentences: the first states the tool's purpose, and the second specifies the return format. Every sentence adds value without redundancy, making it easy to parse and understand quickly.
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 no parameters, no annotations, and no output schema, the description provides a basic but incomplete picture. It explains what the tool returns, which is essential, but lacks details on error handling, authentication, or how it differs from sibling tools. For a read operation in a context with many similar tools, more guidance would improve 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?
The tool has 0 parameters, and schema description coverage is 100%. With no parameters to document, the description appropriately focuses on the tool's output. It adds meaningful context about what information is returned, which compensates for the lack of parameter details. This meets the baseline expectation for a parameterless tool.
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: 'Get account information including address and balances across all chains.' It specifies the verb ('Get'), resource ('account information'), and scope ('across all chains'). However, it doesn't explicitly differentiate from sibling tools like 'get_address_balances' or 'get_address_balance_single_chain', which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. With sibling tools like 'get_address_balances' and 'get_address_balance_single_chain' available, there's no indication of how this tool differs in scope or use case. The description only states what it does, not when it should be selected over other options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_address_balancesA
Get balances for a specific address across all chains (concurrent execution).
Args:
address: Ethereum address to check balances for
timeout_seconds: Timeout for the entire operation (default: 30 seconds)
Returns:
JSON string with balance information across all chains.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits: concurrent execution across chains, timeout parameter with default, and JSON return format. However, it lacks details on error handling, rate limits, authentication needs, or what 'balance information' specifically includes (e.g., token types, amounts).
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 front-loaded with core purpose, followed by structured Args and Returns sections. Every sentence adds value: the first states purpose and concurrency, Args explain parameters, Returns specifies output format. No wasted words, efficiently organized.
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 annotations and no output schema, the description provides basic completeness for a read operation with 2 parameters. It covers purpose, parameters, and return format, but lacks details on output structure (e.g., chain-specific balances), error cases, or performance considerations, leaving gaps for agent invocation.
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%, so the description must compensate. It adds meaningful semantics: 'address' is an Ethereum address for balance checking, and 'timeout_seconds' defines operation timeout with a default. This clarifies beyond schema types, though it could specify address format (e.g., 0x-prefixed) or timeout implications.
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 specific action ('Get balances') and resource ('for a specific address across all chains'), with the parenthetical 'concurrent execution' adding operational detail. It distinguishes from sibling 'get_address_balance_single_chain' by specifying 'across all chains' versus single-chain focus.
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 context by specifying 'across all chains' and 'concurrent execution,' which helps differentiate from the single-chain sibling tool. However, it lacks explicit guidance on when to use this versus alternatives like 'get_account_info' or 'get_etf_balance,' and does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_address_balance_single_chainA
Get balance for a specific address on a single chain (faster).
Args:
address: Ethereum address to check balances for
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
Returns:
JSON string with balance information for the specified chain.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | ||
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that this is a read operation ('Get balance') and hints at performance ('faster'), but lacks details on rate limits, authentication needs, error handling, or what the JSON return structure contains. It adds some behavioral context but leaves 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?
The description is well-structured and front-loaded: the first sentence states the purpose and key advantage, followed by clear Args and Returns sections. Every sentence adds value—no fluff or repetition. It's appropriately sized for a tool with two parameters.
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 (2 parameters, no output schema, no annotations), the description is moderately complete. It covers purpose, parameters, and return format, but lacks behavioral details like error cases or performance specifics. Without annotations or output schema, it should ideally explain more about the JSON return structure or usage limits.
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 explicitly documents both parameters in the Args section, adding meaning beyond the schema (which has 0% description coverage). It specifies that 'address' is an Ethereum address and 'chain_id' accepts specific numeric values (1, 10, etc.), compensating fully for the schema's lack of descriptions. However, it doesn't explain parameter formats or constraints beyond the listed chain IDs.
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 verb ('Get balance') and resource ('for a specific address on a single chain'), distinguishing it from sibling tools like 'get_address_balances' (which likely covers multiple chains) and 'get_account_info' (broader scope). The parenthetical '(faster)' further differentiates it by highlighting a performance advantage.
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 clear context for when to use this tool: for checking balances on a single chain with speed. It implies an alternative (a slower multi-chain tool, possibly 'get_address_balances'), though it doesn't explicitly name it or state when not to use this tool. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_available_trading_tokensB
Get available tokens for trading on a specific chain.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
Returns:
JSON string with available trading tokens and their information.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it returns JSON with token information. It lacks details on rate limits, authentication needs, error handling, pagination, or whether this is a read-only operation (implied by 'Get' but not explicit). This is inadequate for a tool with potential complexity in a trading environment.
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 appropriately sized with a clear purpose statement followed by structured 'Args' and 'Returns' sections. It's front-loaded and efficient, though the 'Returns' section could be slightly more informative given no output schema.
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 single-parameter tool with no annotations and no output schema, the description is minimally adequate. It covers the parameter well but lacks details on return structure, error cases, or behavioral traits, leaving gaps in understanding how to interpret results or handle failures.
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 significant value beyond the input schema, which has 0% coverage. It explains 'chain_id' as 'Chain ID' with specific examples (1, 10, 56, etc.), clarifying the parameter's purpose and expected values, which compensates well for the schema's lack of 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 clearly states the verb 'Get' and resource 'available tokens for trading on a specific chain', which is specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_supported_chains' or 'get_etf_tokens', which might have overlapping functionality in a trading context.
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 no guidance on when to use this tool versus alternatives like 'list_supported_chains' or 'get_etf_tokens'. It mentions a specific chain context but doesn't explain prerequisites, exclusions, or comparative use cases with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chain_infoB
Get detailed information about a specific chain.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
Returns:
JSON string with chain configuration and status.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns 'JSON string with chain configuration and status,' which gives some output context, but lacks details on permissions, rate limits, error handling, or whether it's a read-only operation. For a tool with zero annotation coverage, this leaves significant behavioral 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?
The description is well-structured and front-loaded with the core purpose, followed by clear 'Args' and 'Returns' sections. Every sentence earns its place by directly contributing to understanding the tool's function, parameters, and output, with no wasted words or 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?
Given the tool's low complexity (1 parameter, no nested objects) and lack of output schema, the description is adequate but has gaps. It covers the basic purpose and parameter semantics effectively, but without annotations or output schema, it misses behavioral details like error cases or response structure, making it minimally viable but not fully comprehensive.
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 meaningful context beyond the input schema, which has 0% description coverage. It specifies that 'chain_id' accepts numeric IDs like '1, 10, 56, 100, 137, 8453, 42161,' providing concrete examples that clarify the parameter's expected format and valid values, which compensates well for the schema's lack of documentation.
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 as 'Get detailed information about a specific chain' with a specific verb ('Get') and resource ('chain'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'list_supported_chains' or 'get_account_info', which would require more specific language about what kind of 'detailed information' is provided.
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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_supported_chains' (which might list chains without details) or 'get_account_info' (which might focus on account data rather than chain configuration), leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_balanceB
Get ETF token balance for a wallet address.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
etf_token_address: Address of the ETF token
wallet_address: Wallet address to check (defaults to server wallet)
Returns:
JSON string with ETF token balance information.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| etf_token_address | Yes | ||
| wallet_address | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool reads balance information (implied safe operation) and specifies a default for 'wallet_address', adding useful context. However, it lacks details on error handling, rate limits, authentication needs, or what the JSON return includes (e.g., balance units, timestamps), leaving gaps for a mutation-free 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?
The description is well-structured and front-loaded with the core purpose, followed by parameter and return details. It uses bullet-like sections ('Args:', 'Returns:') for clarity. However, the 'Args' section could be more concise by integrating details into the main text, and some redundancy exists (e.g., repeating 'ETF token' in parameter names).
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 annotations, 0% schema coverage, and no output schema, the description is moderately complete. It covers the purpose, parameters, and return format at a high level. However, it lacks specifics on the JSON structure (e.g., keys like 'balance' or 'decimals'), error cases, or how it differs from similar balance-checking tools, making it adequate but with clear gaps for a 3-parameter 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 description coverage is 0%, so the description must compensate. It adds meaning by explaining each parameter: 'chain_id' with enumerated values (1, 10, etc.), 'etf_token_address' as the token's address, and 'wallet_address' with its default. This clarifies beyond the schema's basic types, though it doesn't detail format constraints (e.g., address validation) or optionality nuances.
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: 'Get ETF token balance for a wallet address.' It specifies the verb ('Get'), resource ('ETF token balance'), and target ('wallet address'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_address_balance_single_chain' or 'get_pusd_balance', which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_address_balance_single_chain' (which might handle general token balances) or 'get_pusd_balance' (for a specific token), leaving the agent to infer usage context. The default behavior for 'wallet_address' is noted, but no broader usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_priceB
Get buy and sell prices for an ETF token.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
etf_token_address: Address of the ETF token
Returns:
JSON string with buy and sell prices for the ETF token.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| etf_token_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does and the return format ('JSON string with buy and sell prices'), but lacks details on permissions, rate limits, error handling, or whether it's a read-only operation. For a financial data tool, this is a significant gap in transparency.
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 well-structured and front-loaded with the core purpose, followed by clear sections for arguments and returns. Each sentence earns its place by providing essential information without redundancy. The bullet-point style enhances readability while maintaining brevity.
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 moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and parameters but lacks behavioral details like error cases or performance expectations. Without annotations or output schema, more context on return structure or usage scenarios would improve 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?
The description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'chain_id' accepts specific numeric values (1, 10, etc.) and 'etf_token_address' is the address of the ETF token, clarifying their roles. This compensates well for the schema's lack of descriptions, though it doesn't detail format constraints like address validation.
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: 'Get buy and sell prices for an ETF token.' It specifies the verb ('Get') and resource ('buy and sell prices for an ETF token'), making the function unambiguous. However, it doesn't explicitly differentiate from siblings like 'get_etf_price_by_paloma_denom' or 'get_etf_price_by_symbol', which appear to serve similar purposes with different inputs.
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 no guidance on when to use this tool versus alternatives. It mentions the required arguments but doesn't explain why to choose this over siblings like 'get_etf_price_by_symbol' or 'get_token_price_estimate', nor does it specify prerequisites or exclusions. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_price_by_paloma_denomB
Get ETF price by Paloma denomination.
Args:
paloma_denom: Paloma denomination (e.g., factory/paloma18xrvj2ffxygkmtqwf3tr6fjqk3w0dgg7m6ucwx/palomagold)
Returns:
JSON string with ETF price data.
| Name | Required | Description | Default |
|---|---|---|---|
| paloma_denom | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns 'JSON string with ETF price data,' which adds some value beyond the basic purpose. However, it lacks critical details such as whether this is a read-only operation, potential error conditions, rate limits, or authentication requirements. For a tool with zero annotation coverage, this is 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?
The description is appropriately sized and front-loaded, with the purpose stated first, followed by clear sections for 'Args' and 'Returns.' Each sentence earns its place by providing essential information without redundancy. The structure is efficient and easy to parse.
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 moderate complexity (1 parameter, no output schema, no annotations), the description is partially complete. It covers the purpose and parameter semantics well but lacks usage guidelines and behavioral details like error handling or data format specifics. Without an output schema, the return value description ('JSON string with ETF price data') is vague, leaving gaps in understanding the tool's full context.
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 significant meaning beyond the input schema, which has 0% description coverage. It explains that 'paloma_denom' is a 'Paloma denomination' and provides an example ('factory/paloma18xrvj2ffxygkmtqwf3tr6fjqk3w0dgg7m6ucwx/palomagold'), clarifying the parameter's format and usage. This compensates well for the schema's lack of documentation, though it doesn't detail all possible values or constraints.
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: 'Get ETF price by Paloma denomination.' It specifies the verb ('Get') and resource ('ETF price'), and distinguishes it from sibling tools like 'get_etf_price' and 'get_etf_price_by_symbol' by focusing on Paloma denomination. However, it doesn't explicitly contrast with these siblings in the description text, so it's not a perfect 5.
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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_etf_price' or 'get_etf_price_by_symbol', nor does it specify scenarios where Paloma denomination is required over other identifiers. Without this context, users must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_price_by_symbolA
Get ETF price by token symbol from Paloma DEX.
Args:
symbol: ETF token symbol (e.g., PAGOLD, PABTC2X, PACBOA)
Returns:
JSON string with ETF price data.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool fetches price data from a DEX and returns JSON, but lacks details on error handling, rate limits, authentication needs, or whether it's read-only (implied by 'Get' but not explicit). It adds some context but misses key behavioral traits.
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 front-loaded with the core purpose, followed by structured Args and Returns sections. It's efficient with zero waste, though the JSON return format could be slightly more detailed (e.g., sample structure) without losing 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?
Given no annotations, no output schema, and low schema coverage, the description is moderately complete. It covers purpose and parameters well but lacks output details (beyond 'JSON string'), error cases, and behavioral context like rate limits or authentication, leaving gaps for a tool with no structured support.
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 0% description coverage, so the description must compensate fully. It clearly explains the 'symbol' parameter as 'ETF token symbol' with concrete examples (PAGOLD, PABTC2X, PACBOA), adding essential meaning beyond the bare 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 specific action ('Get ETF price'), resource ('by token symbol'), and source ('from Paloma DEX'), distinguishing it from siblings like 'get_etf_price' (which likely uses different parameters) and 'get_etf_price_by_paloma_denom' (which uses a different identifier type).
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 context by specifying 'by token symbol' and providing examples (e.g., PAGOLD, PABTC2X), which helps differentiate from 'get_etf_price_by_paloma_denom'. However, it lacks explicit when-not-to-use guidance or direct alternatives, such as clarifying when to use this versus 'get_etf_price'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_tokensB
Get available ETF tokens on a specific chain.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
Returns:
JSON string with available ETF tokens and their information.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns 'JSON string with available ETF tokens and their information,' which is helpful, but lacks details on permissions, rate limits, error handling, or whether it's a read-only operation. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. The 'Args' and 'Returns' sections are structured clearly, though the formatting could be more streamlined. Every sentence adds value, with 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?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the purpose and parameter semantics well but lacks behavioral details and usage guidelines. Without annotations or output schema, it should provide more context on what the JSON return includes and how to interpret it.
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 meaningful context for the single parameter 'chain_id' by listing specific values (1, 10, 56, 100, 137, 8453, 42161), which compensates for the 0% schema description coverage. This goes beyond the schema's basic 'string' type and provides practical usage information, though it doesn't explain what these IDs represent (e.g., Ethereum, Polygon).
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 as 'Get available ETF tokens on a specific chain,' which includes a specific verb ('Get') and resource ('ETF tokens') with scope ('on a specific chain'). However, it doesn't explicitly differentiate from sibling tools like 'get_available_trading_tokens' or 'get_chain_info,' which could cause confusion about when to use this specific tool versus others.
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 no guidance on when to use this tool versus alternatives. It mentions 'on a specific chain' but doesn't clarify if this is for ETF tokens only versus other token types or how it differs from similar tools like 'get_available_trading_tokens.' No exclusions, prerequisites, or explicit alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pusd_balanceB
Get PUSD token balance on specified chain.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
Returns:
JSON string with PUSD balance information.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the return format ('JSON string with PUSD balance information') but lacks details on permissions, rate limits, error handling, or whether this is a read-only operation. For a tool with no annotation coverage, this is insufficient behavioral disclosure.
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 well-structured and concise, with no wasted words. It front-loads the purpose, then clearly lists arguments and returns in separate sections, making it easy to parse. Every sentence 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?
Given the tool's low complexity (one parameter, no nested objects) and lack of annotations/output schema, the description is adequate but has gaps. It covers the parameter semantics well but misses usage guidelines and behavioral details like authentication or error responses, making it minimally viable.
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 significant value beyond the input schema, which has 0% description coverage. It explains 'chain_id' as 'Chain ID' and provides a list of valid values (1, 10, 56, 100, 137, 8453, 42161), which compensates for the schema's lack of documentation. With only one parameter, this is effectively complete.
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: 'Get PUSD token balance on specified chain.' It uses a specific verb ('Get') and identifies the resource ('PUSD token balance'), but doesn't differentiate from similar sibling tools like 'get_address_balance_single_chain' or 'get_etf_balance' beyond mentioning the specific token (PUSD).
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 is provided on when to use this tool versus alternatives. The description doesn't mention sibling tools like 'get_address_balance_single_chain' (which might handle multiple tokens) or 'get_etf_balance' (for ETF tokens), nor does it specify prerequisites such as authentication or account context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_price_estimateA
Get real-time price estimate for token swap.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
input_token_address: Address of token to trade from
output_token_address: Address of token to trade to
input_amount: Amount of input token in wei format
Returns:
JSON string with price estimate and trading information.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| input_token_address | Yes | ||
| output_token_address | Yes | ||
| input_amount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'real-time price estimate' and returns 'JSON string with price estimate and trading information,' but fails to disclose critical behaviors such as rate limits, authentication requirements, error conditions, or whether the estimate is guaranteed or approximate. For a financial tool with zero annotation coverage, this leaves significant gaps in understanding its operational characteristics.
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 efficiently structured with a clear purpose statement followed by bullet-point-style sections for Args and Returns. Every sentence adds value without redundancy, and it is appropriately sized for a tool with four parameters. The front-loaded purpose statement immediately conveys the tool's function.
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 complexity (financial estimation with 4 parameters), no annotations, and no output schema, the description is moderately complete. It covers the basic purpose and parameters but lacks details on behavioral traits, error handling, and output structure beyond 'JSON string.' For a tool in this context, more information on reliability, latency, or example outputs would enhance 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?
The description adds meaningful semantics beyond the input schema, which has 0% description coverage. It clarifies that chain_id uses specific numeric values (1, 10, 56, etc.), input_amount is in 'wei format,' and parameters relate to token addresses for trading. This compensates well for the schema's lack of descriptions, though it could elaborate on format details like address validation or wei conversion examples.
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 specific action ('Get real-time price estimate') and resource ('for token swap'), distinguishing it from sibling tools like execute_token_swap (which performs the swap) and get_etf_price (which focuses on ETF tokens). It precisely communicates the tool's function without being vague or tautological.
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 for obtaining price estimates before executing swaps, but does not explicitly state when to use this tool versus alternatives like execute_token_swap or validate_trade_quote. It provides basic context (real-time estimates) but lacks explicit guidance on prerequisites, exclusions, or comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_chainsB
List all supported chains with their configurations.
Returns:
JSON string with all supported chain information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the tool returns a JSON string with all supported chain information, which is useful context about the output format. However, it doesn't cover other behavioral aspects like rate limits, error conditions, or whether it's a read-only operation (implied but not explicit), leaving some 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?
The description is extremely concise and well-structured, consisting of only two sentences that directly state the purpose and output. Every sentence earns its place by providing essential information without any fluff or redundancy, making it easy to parse and understand quickly.
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 complexity (simple list operation with no parameters) and the lack of annotations and output schema, the description is somewhat complete but has room for improvement. It explains what the tool does and the return format, but for a tool with no structured output schema, it could benefit from more details on the JSON structure or example output to enhance usability.
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 tool has 0 parameters, and the schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for such cases is 4, as the description doesn't need to compensate for any parameter gaps. It appropriately focuses on the tool's purpose and output without redundant parameter information.
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: 'List all supported chains with their configurations.' It specifies the verb ('List') and resource ('supported chains'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_chain_info', which might retrieve details for a specific chain, so it doesn't reach the highest score.
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 no guidance on when to use this tool versus alternatives. For example, it doesn't clarify if this should be used for a general overview versus 'get_chain_info' for specific chain details, or mention any prerequisites or contexts for usage. This lack of comparative or contextual advice limits its helpfulness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_liquidityB
Remove liquidity from a trading pool using the Trader contract.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
token0_address: Address of first token
token1_address: Address of second token
liquidity_amount: Amount of liquidity tokens to remove in wei
Returns:
JSON string with liquidity removal transaction details.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| token0_address | Yes | ||
| token1_address | Yes | ||
| liquidity_amount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a removal operation (implying mutation/destruction of assets) and mentions it returns transaction details, but doesn't disclose critical behavioral traits: whether this requires specific permissions, gas costs, irreversible nature, confirmation requirements, rate limits, or what happens to the removed tokens. For a financial transaction tool with zero annotation coverage, this is a significant gap.
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 appropriately sized and well-structured with clear sections (purpose, args, returns). Every sentence earns its place, though the 'Args:' and 'Returns:' labels could be slightly more integrated. It's front-loaded with the core purpose and efficiently documents parameters without unnecessary elaboration.
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 this is a 4-parameter mutation tool with no annotations and no output schema, the description is moderately complete. It covers the basic operation and parameters well, but lacks critical context about behavioral implications (safety, permissions, consequences) and doesn't describe the return value structure beyond 'JSON string with transaction details'. For a financial operation, more completeness would be expected.
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?
With 0% schema description coverage, the description fully compensates by providing clear parameter semantics beyond the schema. It explains what each parameter represents (chain ID with specific values, token addresses, liquidity amount in wei), adding crucial context that the bare schema titles lack. The only minor gap is not specifying format requirements for addresses beyond 'Address'.
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 specific action ('Remove liquidity') and resource ('from a trading pool using the Trader contract'), distinguishing it from siblings like 'add_liquidity' (opposite operation) and other trading tools. It provides a complete verb+resource+method statement that leaves no ambiguity about the tool's function.
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 no guidance on when to use this tool versus alternatives. While it's clear this is for removing liquidity, there's no mention of prerequisites (e.g., needing existing liquidity positions), conditions for use, or relationship to other tools like 'check_token_allowance' that might be needed first. The agent must infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sell_etf_tokenA
Sell ETF tokens back to base currency (simulation only - no actual transaction).
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
etf_token_address: Address of the ETF token to sell
etf_amount: Amount of ETF tokens to sell (in token units, e.g. '10.5')
Returns:
JSON string with transaction simulation details.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| etf_token_address | Yes | ||
| etf_amount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing critical behavioral traits: this is a simulation-only operation (no actual transaction occurs), it returns JSON with transaction simulation details, and it involves selling tokens back to base currency. However, it doesn't mention rate limits, authentication needs, or error handling.
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 perfectly structured with a clear purpose statement upfront, followed by well-organized parameter explanations and return value description. Every sentence adds value with zero wasted words, making it easy to parse quickly.
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 3-parameter tool with no annotations and no output schema, the description provides good coverage of purpose, parameters, and behavioral context (simulation-only nature). It could improve by mentioning authentication requirements or error scenarios, but it's substantially complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining all three parameters: chain_id with specific network examples, etf_token_address as the token address, and etf_amount with units clarification. It adds meaningful context beyond the bare schema, though it doesn't specify format requirements (e.g., address validation).
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 specific action ('sell ETF tokens back to base currency'), identifies the resource (ETF tokens), and distinguishes it from sibling tools like 'buy_etf_token' by specifying the opposite direction of the transaction. The simulation-only disclaimer adds important context.
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 through the 'simulation only' context and distinguishes from actual transactions, but doesn't explicitly state when to use this versus alternatives like 'execute_token_swap' or 'buy_etf_token'. No guidance on prerequisites or error conditions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_trade_quoteA
Validate a trade against max spread and liquidity requirements.
Args:
chain_id: Chain ID (1, 10, 56, 100, 137, 8453, 42161)
input_token_address: Address of token to trade from
output_token_address: Address of token to trade to
input_amount: Amount of input token in wei format
Returns:
JSON string with trade validation results.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | ||
| input_token_address | Yes | ||
| output_token_address | Yes | ||
| input_amount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions validation criteria (max spread, liquidity) but doesn't explain what happens during validation (e.g., whether it's a simulation, if it modifies state, rate limits, or error conditions). For a tool with 4 parameters and no annotation coverage, this leaves significant behavioral 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?
The description is well-structured with clear sections (purpose, args, returns) and uses minimal sentences that each add value. It could be slightly more concise by integrating the args list more seamlessly, but overall it's efficiently written without 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?
Given 4 parameters, no annotations, and no output schema, the description does a good job with parameters but has gaps in behavioral context and output details. It mentions returns a 'JSON string with trade validation results' but doesn't describe what those results contain. For a validation tool with moderate complexity, this is adequate but incomplete.
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 substantial meaning beyond the input schema, which has 0% description coverage. It provides specific details for chain_id (listing valid values: 1, 10, 56, 100, 137, 8453, 42161), clarifies input_amount format ('in wei format'), and explains what each token address represents. This fully compensates for the schema's lack of documentation.
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 specific action ('validate a trade') and the criteria ('against max spread and liquidity requirements'), distinguishing it from sibling tools like execute_token_swap or get_token_price_estimate which perform different functions. It uses precise terminology that conveys the tool's unique purpose.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a quote first), exclusions, or how it relates to sibling tools like execute_token_swap or get_token_price_estimate. Usage context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
21 tool updates
v1.0.0- Changed
add_liquidity1 field changed- added
Input schema / titleAdded value: +"add_liquidityArguments"
- Changed
approve_token_spending1 field changed- added
Input schema / titleAdded value: +"approve_token_spendingArguments"
- Changed
buy_etf_token1 field changed- added
Input schema / titleAdded value: +"buy_etf_tokenArguments"
- Changed
check_token_allowance1 field changed- added
Input schema / titleAdded value: +"check_token_allowanceArguments"
- Changed
execute_token_swap1 field changed- added
Input schema / titleAdded value: +"execute_token_swapArguments"
- Changed
get_account_info1 field changed- added
Input schema / titleAdded value: +"get_account_infoArguments"
- Changed
get_address_balance_single_chain1 field changed- added
Input schema / titleAdded value: +"get_address_balance_single_chainArguments"
- Changed
get_address_balances1 field changed- added
Input schema / titleAdded value: +"get_address_balancesArguments"
- Changed
get_available_trading_tokens1 field changed- added
Input schema / titleAdded value: +"get_available_trading_tokensArguments"
- Changed
get_chain_info1 field changed- added
Input schema / titleAdded value: +"get_chain_infoArguments"
- Changed
get_etf_balance1 field changed- added
Input schema / titleAdded value: +"get_etf_balanceArguments"
- Changed
get_etf_price1 field changed- added
Input schema / titleAdded value: +"get_etf_priceArguments"
- Changed
get_etf_price_by_paloma_denom1 field changed- added
Input schema / titleAdded value: +"get_etf_price_by_paloma_denomArguments"
- Changed
get_etf_price_by_symbol1 field changed- added
Input schema / titleAdded value: +"get_etf_price_by_symbolArguments"
- Changed
get_etf_tokens1 field changed- added
Input schema / titleAdded value: +"get_etf_tokensArguments"
- Changed
get_pusd_balance1 field changed- added
Input schema / titleAdded value: +"get_pusd_balanceArguments"
- Changed
get_token_price_estimate1 field changed- added
Input schema / titleAdded value: +"get_token_price_estimateArguments"
- Changed
list_supported_chains1 field changed- added
Input schema / titleAdded value: +"list_supported_chainsArguments"
- Changed
remove_liquidity1 field changed- added
Input schema / titleAdded value: +"remove_liquidityArguments"
- Changed
sell_etf_token1 field changed- added
Input schema / titleAdded value: +"sell_etf_tokenArguments"
- Changed
validate_trade_quote1 field changed- added
Input schema / titleAdded value: +"validate_trade_quoteArguments"
21 tool updates
- First observed
add_liquidity - First observed
approve_token_spending - First observed
buy_etf_token - First observed
check_token_allowance - First observed
execute_token_swap - First observed
get_account_info - First observed
get_address_balance_single_chain - First observed
get_address_balances - First observed
get_available_trading_tokens - First observed
get_chain_info - First observed
get_etf_balance - First observed
get_etf_price - First observed
get_etf_price_by_paloma_denom - First observed
get_etf_price_by_symbol - First observed
get_etf_tokens - First observed
get_pusd_balance - First observed
get_token_price_estimate - First observed
list_supported_chains - First observed
remove_liquidity - First observed
sell_etf_token - First observed
validate_trade_quote
TDQS
Most tools have distinct purposes with clear boundaries, such as add_liquidity vs. remove_liquidity or execute_token_swap vs. validate_trade_quote. However, some overlap exists in ETF price retrieval tools (get_etf_price, get_etf_price_by_paloma_denom, get_etf_price_by_symbol), which could cause confusion despite their different input parameters.
All tools follow a consistent verb_noun naming pattern using snake_case, such as add_liquidity, check_token_allowance, and get_account_info. The naming is predictable and readable throughout the set, with no deviations in style or convention.
With 21 tools, the count is borderline high for a DEX server, potentially overwhelming for agents. While the tools cover various aspects like liquidity, trading, balances, and ETFs, some consolidation might improve usability without losing functionality.
The tool set provides comprehensive coverage for a DEX domain, including liquidity management (add/remove), trading (swap, validate, price estimates), account/balance queries, ETF operations (buy/sell/price/balance), and chain/token information. No obvious gaps are present, supporting full workflows from approval to execution.
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
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
HiveCapital MCP Server — autonomous investment layer for AI agents
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server enabling AI agents to interact with the Solana blockchain for DeFi operations like checking balances, transferring tokens, executing swaps, and fetching price data.2922MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI agents to interact with 30+ Ethereum-compatible blockchain networks, providing services like token transfers, contract interactions, and ENS resolution through a unified interface.28127382MIT
- -licenseNot gradedqualityNot gradedmaintenanceComprehensive Model Context Protocol server that enables AI agents to interact with 30+ Ethereum-compatible blockchain networks, supporting token transfers, smart contract interactions, and ENS name resolution through a unified interface.1-
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables AI assistants and applications to interact with decentralized exchanges (DEXs), allowing users to get quotes for token swaps and execute swap transactions.3141MIT
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/VolumeFi/mcpPADEX'
If you have feedback or need assistance with the MCP directory API, please join our Discord server