persistenceone-bridgekitty
OfficialEnables bidirectional cross-chain bridging between Solana and EVM-compatible chains, allowing for native SOL transfers, wallet balance inquiries, and transaction status tracking.
BridgeKitty π±
Cross-chain bridge aggregator MCP server for AI agents. One server, 5 bridge backends, best routes across EVM, Solana, and Cosmos chains.
BridgeKitty gives AI agents (Claude, Cursor, GPT, or any MCP-compatible AI) the ability to find and execute cross-chain bridge transfers β with automatic route optimization, fee comparison, balance checks, and safety warnings.
Latest npm release: @persistenceone/bridgekitty@0.3.9
What's New in v0.3.9
XPRT tools extracted β staking, rewards, and farming tools moved to the standalone
xprt-farming-toolkitpackagePersistence Interop backend removed β BridgeKitty is now a focused bridge aggregator across 5 backends (deBridge, Relay, LI.FI, Across, Squid)
Slimmer surface area β fewer tools, clearer scope for agents
sign_and_sendparameter β agents can now sign and broadcast transactions directly using locally-stored wallet keysFull EVM signing support β works with all EVM backends (Across, Relay, LI.FI, Squid, deBridge) + Persistence Interop (EIP-712)
Simulation fix β ERC20 bridges now work on fresh wallets (previously blocked by premature simulation)
Solana signing β coming in next release
Solana support β bidirectional bridging EVM β Solana (native SOL delivery, not wrapped)
Cosmos support β EVM β Persistence/Cosmos Hub via Squid (Axelar)
Protocol fee transparency β deBridge fixFee, operating expenses, and total cost visible in every quote
Balance warnings β warns when wallet can't cover bridge amount + protocol fees + gas
XPRT staking β stake/unstake/claim rewards directly from the MCP server
Farming multiplier β tracks your staking tier (1x β 3x β 5x) from the rewards API
Quote auto-refresh β expired quotes automatically re-fetched on execute (60s expiry)
ERC-20 approvals β always generated for token bridges (Relay + deBridge)
Bridge status tracking β on-chain fallback when provider API hasn't indexed yet
Related MCP server: LI.FI MCP Server
Supported Bridges
Backend | Type | Chains | Strength |
deBridge (DLN) | Direct | EVM + Solana | Fast intent-based fills, Solana support |
Relay | Direct | EVM + Solana | No protocol fee, gas-optimized |
LI.FI | Aggregator | EVM | Widest coverage (30+ bridges, any-to-any swap) |
Across | Direct | EVM | Fastest fills (~6s), same-token bridging |
Squid (Axelar) | Aggregator | EVM + Cosmos | Only option for EVM β Cosmos routes |
Bridge Directions
Direction | Backends | Status |
EVM β EVM | All 5 | β Production |
EVM β Solana | deBridge, Relay | β Production |
Solana β EVM | deBridge | β Production |
EVM β Cosmos | Squid | β Production |
Quick Start
npx (zero install)
npx @persistenceone/bridgekittyClaude Code
Add to your MCP config (~/.claude/claude_code_config.json):
{
"mcpServers": {
"bridgekitty": {
"command": "npx",
"args": ["@persistenceone/bridgekitty"]
}
}
}Cursor IDE
Add to Cursor's MCP settings (Settings > MCP Servers):
{
"bridgekitty": {
"command": "npx",
"args": ["@persistenceone/bridgekitty"]
}
}Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"bridgekitty": {
"command": "npx",
"args": ["@persistenceone/bridgekitty"]
}
}
}Wallet Setup
BridgeKitty can manage wallets for autonomous bridging. Run wallet_setup to create wallets for EVM, Cosmos, and Solana β or provide your own addresses in quotes.
Wallet config is stored in ~/.bridgekitty/.env (or the directory you run from). Keys never leave the local machine.
Variable | Description |
| EVM private key (hex) |
| BIP-39 mnemonic (derives EVM, Cosmos, Solana keys) |
| Solana private key (base58) |
Transaction Signing
By default, bridge_execute returns unsigned transactions for the agent or user to sign externally.
Set sign_and_send: true to enable autonomous signing β BridgeKitty will use the wallet keys stored in ~/.bridgekitty/.env to handle the full flow:
Approval β sends ERC-20 approval transaction (if needed)
Re-build β re-fetches the bridge transaction with updated nonce (if approval was sent)
Simulate β runs
eth_estimateGaspre-flight checkSign β signs the transaction with the local private key
Broadcast β submits to the chain and returns the tx hash + explorer link
Optional API Keys
Variable | Description |
| LI.FI API key (higher rate limits) |
| deBridge API key |
| Squid integrator ID |
MCP Tools
Core Bridge Tools
Tool | Description |
| Get competitive quotes from all backends. Shows fees, time estimates, balance warnings. |
| Build transaction(s) from a quote. Handles approvals, auto-refreshes expired quotes. Set |
| Track bridge progress. On-chain fallback when API hasn't indexed yet. |
| List supported chains with provider coverage. |
| Search tokens on a chain. |
Multi-hop & Discovery
Tool | Description |
| Multi-hop route resolution when no direct route exists. |
| Agent onboarding guide with examples and tool usage. |
| Guided onboarding flow for first-time users. |
Wallet Tools
Tool | Description |
| Create wallets for EVM, Cosmos, Solana from a single mnemonic. |
| Import an existing wallet from a mnemonic or private key. |
| Show configured wallet addresses and key source. |
| Check balances across all chains with USD prices (CoinGecko). |
XPRT staking & farming has moved to the standalone
xprt-farming-toolkitpackage.
Example: Bridge USDC from Base to Arbitrum
Default (unsigned transactions)
Agent: "Bridge 100 USDC from Base to Arbitrum"
β bridge_get_quote: Gets quotes from deBridge, Relay, LI.FI, Across
β Shows: best rate, fees, estimated time, balance check
β bridge_execute: Builds approval tx + bridge tx
β Agent signs and sends both transactions
β bridge_status: Tracks until destination confirmedWith sign_and_send (autonomous signing)
Agent: "Bridge 100 USDC from Base to Arbitrum"
β bridge_get_quote: Gets quotes from all backends
β bridge_execute with sign_and_send: true
β Auto-signs approval tx + bridge tx using local wallet keys
β Returns tx hash + explorer link
β bridge_status: Tracks until destination confirmedArchitecture
Agent β MCP Tools β Routing Engine β [deBridge, Relay, LI.FI, Across, Squid]
β
Quote Cache (60s) + Circuit Breaker
β
Best Quote β buildTransaction
β
ββββββββββββ΄βββββββββββ
β β
Unsigned TX Signed + Broadcast
(default) (sign_and_send)Routing Engine: Parallel quotes from all backends, ranked by output amount
Circuit Breaker: Auto-skips failing backends, gradual recovery
Token Registry: 45+ verified tokens with canonical addresses per chain
Gas Estimator: Chain-aware gas cost estimation with multi-RPC failover
Balance Checker: Validates token + native balance for fees before execution
Fee Transparency: Protocol fees (deBridge fixFee, operating expenses) surfaced in every quote
Security
Exact-amount approvals only (never unlimited)
Transaction simulation before execution
Verified token registry prevents address spoofing
No private keys in MCP protocol β agents sign transactions externally
sign_and_senduses locally-stored keys only (never transmitted over the network)Circuit breaker prevents cascading failures
Error messages sanitized (no key/path leakage)
.envfile permission checks + overwrite protection
Known Limitations
Solana β EVM returns a serialized transaction for external signing (no auto-execute)
Relay status tracking may show "unknown" for completed cross-chain bridges
Solana SPL tokens not yet shown in
wallet_balance(only native SOL)Cosmos β EVM bridging not yet supported (only EVM β Cosmos)
License
MIT
Available Tools
12 toolsbridge_chainsA
List supported chains for cross-chain bridging. Shows which providers support each chain. Chains are deduplicated and grouped by ecosystem: EVM, Cosmos, and Solana. Use 'search' parameter to filter by chain name. Use this to discover available routes before calling bridge_get_quote.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Filter chains by name (e.g. 'base', 'arb') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses key behaviors: lists supported chains, deduplicates, groups by ecosystem, and shows provider support. Lacks output format details but sufficient for a read-only list 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?
Three sentences, front-loaded with the core purpose, and efficient wording. Could be slightly more concise but no unnecessary content.
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 simplicity (one optional param, no output schema), the description covers purpose, filtering, grouping, deduplication, and usage sequence. Lacks output structure but adequate for a listing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one optional parameter 'search' described. The description adds value by explaining its purpose (filter by name) and giving examples, going beyond the schema's bare 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 tool lists supported chains for cross-chain bridging, specifies deduplication and grouping by ecosystem, and differentiates from sibling tools like bridge_get_quote by indicating it's for discovering routes before getting a quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use the 'search' parameter for filtering and recommends using this tool before bridge_get_quote to discover available routes, providing clear usage context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_executeA
Get the unsigned transaction data to execute a cross-chain bridge transfer. Supports all providers: LI.FI, Squid Router, deBridge, Across, Relay, Persistence Interop. By default returns unsigned transaction(s) for the agent/user to sign and send. Set sign_and_send=true to sign and broadcast using the locally-stored wallet key (requires wallet_setup). Preconditions: Call bridge_get_quote first and pass the quoteId. Ensure sufficient gas on source chain. If an approval is needed (unsigned mode), send the approvalTransaction first, then the main transaction. After execution, use bridge_status with the returned trackingId to monitor progress.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | Yes | Quote ID from bridge_get_quote result | |
| slippage | No | Max slippage tolerance (0.005 = 0.5%). Applied by backends during quoting; reserved for future per-execution override. | |
| sign_and_send | No | If true, sign and broadcast the transaction server-side using the wallet key from wallet_setup. Supports EVM chains and Persistence Interop. Solana falls back to unsigned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even without annotations, the description thoroughly discloses behavior: returns unsigned transaction(s) by default, optional signing with wallet key, preconditions (sufficient gas, approval flow), and post-use monitoring (bridge_status). It also notes a limitation: 'Solana falls back to unsigned.' This is highly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense paragraph but efficiently structured: main purpose first, then details. Every sentence adds valueβpreconditions, modes, approval flow, post-execution step. No redundant or vague statements. Slightly long but appropriate for a complex tool.
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?
No output schema exists, so the description must explain return values and workflow. It mentions 'unsigned transaction(s)', approval transaction sequencing, and a trackingId for bridge_status. It covers preconditions, execution modes, and post-execution monitoring, making it complete for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful context: explains that slippage has a default and is reserved for future overrides, describes sign_and_send behavior across chains, and clarifies that quoteId comes from bridge_get_quote. This exceeds the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get the unsigned transaction data to execute a cross-chain bridge transfer.' It specifies the supported providers and distinguishes from siblings like bridge_get_quote (quote) and bridge_status (monitoring). The verb 'execute' and resource 'bridge transfer' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit preconditions: 'Call bridge_get_quote first and pass the quoteId.' It also explains when to use sign_and_send vs unsigned mode, and mentions handling approval transactions. While it doesn't explicitly state when not to use the tool, the context is clear for an AI agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_get_quoteA
Get the best cross-chain bridge quote across multiple providers (LI.FI, Squid Router, deBridge, Across, Relay, Persistence Interop). Supports EVM chains, Cosmos chains (Persistence, Cosmos Hub), and Solana. Accepts token symbols (e.g. 'USDC', 'ETH', 'WBTC', 'XPRT', 'ATOM') or contract addresses (0x...). Symbols are resolved to verified canonical addresses only β no unverified tokens. Returns ranked options by output amount, speed, and fees. Includes failedProviders array showing which providers didn't return quotes and why. Preconditions: None for quoting. Use bridge_execute to act on a quote. Error codes: 'Token resolution failed' (unknown symbol), 'Rate limited' (too many requests), 'Validation error' (invalid params).
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in human-readable units (e.g. '100' for 100 USDC) | |
| toChain | Yes | Destination chain | |
| toToken | Yes | Token to receive β symbol (e.g. 'USDC', 'ETH') or contract address (0x...). Symbols resolve to verified canonical addresses only. | |
| fromChain | Yes | Source chain (e.g. 'ethereum', 'base', 'arbitrum', or chain ID like '1', '8453') | |
| fromToken | Yes | Token to send β symbol (e.g. 'USDC', 'ETH', 'WBTC') or contract address (0x...). Symbols resolve to verified canonical addresses only. | |
| providers | No | Optional: only query specific providers (e.g. ['squid', 'lifi']). Default: query all. | |
| toAddress | No | Recipient address (defaults to fromAddress) | |
| preference | No | Optimize for lowest cost or fastest delivery | fastest |
| fromAddress | Yes | Sender wallet address (0x... for EVM, base58 for Solana) |
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 discloses that symbols resolve to verified canonical addresses only, includes a failedProviders array, lists error codes, and mentions the return format (ranked options by output amount, speed, fees). It does not mention auth needs or rate limits, but the error code 'Rate limited' hints at rate limiting. Overall, good transparency for a non-destructive query 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 main purpose. It covers supported chains, token resolution, return format, preconditions, and error codes in a logical order. Every sentence adds value, though the list of providers could be shortened. Still, it is appropriately sized for the complexity.
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 (9 parameters, cross-chain, multiple providers) and no output schema, the description covers inputs, behavior, and outputs adequately. It describes the return as ranked options by output amount, speed, and fees, plus a failedProviders array. While it lacks detailed output structure, it provides enough context for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description adds meaningful context beyond the schema: explains that amounts are in human-readable units, fromChain accepts names or IDs, symbols resolve to verified addresses, providers optional defaults to all, and fromAddress format depends on chain. This extra detail justifies a score of 4.
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 gets the best cross-chain bridge quote across multiple providers, listing specific providers and supported chains. It differentiates itself from sibling tools like bridge_execute (to act on a quote) and bridge_quote_multi (implied alternative). The inclusion of error codes adds to clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Preconditions: None for quoting' and 'Use bridge_execute to act on a quote', providing clear when-to-use guidance. However, it does not distinguish from bridge_quote_multi or mention when to avoid using this tool (e.g., for historical data). The guidance is sufficient for the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridgekitty_helpA
Get help and guidance on using BridgeKitty. Topics: overview (default), bridging, farming, wallet, troubleshooting. Returns structured guides with recommended tool sequences and common pitfalls.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Help topic: 'overview', 'bridging', 'farming', 'wallet', or 'troubleshooting' | overview |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It states that the tool returns structured guides with recommended tool sequences and common pitfalls, which adds behavioral context. However, it does not disclose any potential side effects (though unlikely for a help tool), auth requirements, or rate limits. The description adds modest value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with no wasted words. It front-loads the purpose, then lists topics and output characteristics. Every sentence provides essential 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 simplicity (one parameter, no output schema, no annotations), the description is complete. It explains what the tool does, which topics are available, and what kind of output to expect. There is no missing information that would hinder correct 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 input schema has 100% coverage with a clear description for the 'topic' parameter. The tool description adds additional context about what the returned guides contain (structured guides with sequences and pitfalls), which enhances understanding beyond the enum values.
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 provides help and guidance on BridgeKitty, listing specific topics (overview, bridging, farming, wallet, troubleshooting). It differentiates itself from sibling tools that perform actions (e.g., bridge_execute, wallet_import).
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 lists topics and indicates the default topic is 'overview'. It implies using this tool for guidance before using other tools, but does not explicitly state when not to use it or provide alternatives. However, the sibling tools are all actions, so the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_quote_multiA
Get quotes for multi-hop routes across supported EVM chains. Resolves optimal path internally -- e.g., ETH on Base to USDC on Arbitrum may route through WBTC. Returns the full route as ordered hops with per-hop detail. Note: For Cosmos destinations (Persistence, Cosmos Hub), use xprt_farm_boost or bridge_get_quote with Squid Router.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in human-readable units (e.g. '100' for 100 USDC) | |
| toChain | Yes | Destination chain (e.g. 'arbitrum', 'bsc', or chain ID) | |
| toToken | Yes | Token to receive -- symbol (e.g. 'USDC', 'ETH') or contract address (0x...) | |
| optimize | No | Optimize for lowest cost or fastest delivery | cheapest |
| fromChain | Yes | Source chain (e.g. 'base', 'ethereum', or chain ID like '8453') | |
| fromToken | Yes | Token to send -- symbol (e.g. 'USDC', 'ETH') or contract address (0x...) | |
| fromAddress | Yes | Sender wallet address (0x...) |
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 reveals that the tool resolves optimal paths internally and returns ordered hops with per-hop detail. However, it omits details like latency, error behavior, or whether quotes are estimates.
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: three sentences plus a short note. It front-loads the purpose, gives an example, states the return format, and adds a crucial usage caveat. No 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 the absence of output schema and annotations, the description covers the main purpose, example, return structure, and alternative tools. It could be enhanced by mentioning that quotes are non-binding estimates, but overall it equips the agent with essential 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?
All 7 parameters are fully described in the input schema (100% coverage). The tool description adds no additional parameter-level information beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get quotes for multi-hop routes across supported EVM chains' and provides an illustrative example. It distinguishes from Cosmos-specific tools by directing users to alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises against using this tool for Cosmos destinations, directing users to xprt_farm_boost or bridge_get_quote. However, it does not clarify when to prefer this over bridge_get_quote for EVM single-hop routes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_statusA
Check the status of a cross-chain bridge transfer. Supports all providers: LI.FI, Squid Router, deBridge, Across, Relay, Persistence Interop. Provide the tracking ID from bridge_execute, or a transaction hash with provider name. Returns: status (pending/in_progress/completed/failed), source/destination tx hashes, elapsed time, and estimated remaining time.
| Name | Required | Description | Default |
|---|---|---|---|
| txHash | No | Source chain transaction hash | |
| toChain | No | Destination chain ID (needed with txHash for LI.FI) | |
| provider | No | Bridge provider (e.g. 'lifi', 'persistence') | |
| fromChain | No | Source chain ID (needed with txHash for LI.FI) | |
| trackingId | No | Tracking ID from bridge_execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return values (status, tx hashes, times) and notes support for all providers. No annotations provided, so description carries burden; it implies a read-only operation without stating explicitly, which is acceptable for a status check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, usage instructions, return summary. Front-loaded and free of fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains return values. Covers all necessary usage aspects for a status check tool with multiple optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds significant meaning by explaining the two usage modes (trackingId alone vs txHash+provider+chains) and detailing return fields. This goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks the status of a cross-chain bridge transfer, lists supported providers, and specifies how to identify the transfer (tracking ID or tx hash + provider). This distinguishes it from siblings like bridge_execute or bridge_get_quote.
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?
Provides explicit instructions on when to use (after bridge_execute) and how to provide identifiers (trackingId or txHash+provider). Does not explicitly state when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_tokensA
List popular tokens available for bridging on a given chain. Returns verified token symbols, contract addresses, and decimals. Supports EVM chains and Cosmos chains (Persistence, Cosmos Hub). Use token symbols or addresses from this list in bridge_get_quote.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain name or ID (e.g. 'base', '8453') | |
| search | No | Filter by token name or symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool returns 'verified token symbols, contract addresses, and decimals' and supports specific chains. It is transparent about the output format and scope, though it does not mention rate limits or error handling, which is acceptable for a read-only list 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 consists of two concise sentences with no redundancy. The first sentence states purpose and output, the second adds supported chains and a usage hint. Every sentence is essential and well-structured.
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 simplicity (2 parameters, no output schema, no nested objects), the description adequately covers purpose, output format, supported chains, and downstream usage. It does not mention pagination or limits, but for a list of popular tokens, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (chain, search). The description adds no new parameter-specific information beyond the schema; it only provides broader context about output usage. Therefore, it meets the baseline expectation for a tool with high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List popular tokens available for bridging on a given chain' with a specific verb (List) and resource (tokens for bridging). It distinguishes from sibling tools like bridge_chains (lists chains) and bridge_get_quote (gets quotes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs 'Use token symbols or addresses from this list in bridge_get_quote', guiding the agent on how to use the output. It also mentions supported chains (EVM, Persistence, Cosmos Hub). However, it doesn't provide when-not-to-use or alternative tools beyond the implicit differentiation from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_balanceA
Check wallet balances across EVM, Cosmos, and Solana chains. Returns native token balances AND key ERC-20 token balances (USDC, USDT, WETH, WBTC, cbBTC, BTCB) by default. Uses multiple RPCs with automatic failover. Returns per-token balance, USD value (via CoinGecko), and total portfolio value. Call this before any bridging or farming operation to verify sufficient funds and gas.
| Name | Required | Description | Default |
|---|---|---|---|
| chains | No | Chains to check (default: all). Options: ethereum, optimism, bsc, polygon, arbitrum, avalanche, base, linea, scroll, zksync, mantle, blast, persistence, solana | |
| tokens | No | Custom tokens to check per chain, e.g. { "base": [{ "address": "0x...", "symbol": "FOO", "decimals": 18 }] } | |
| includeUsd | No | Include USD valuations for each balance (default: true). Uses CoinGecko prices, cached for 60s. | |
| includeTokens | No | Include ERC-20 token balances (USDC, USDT, WETH, WBTC, cbBTC, BTCB). Default: true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses automatic RPC failover, multiple chains, default tokens, and USD valuation via CoinGecko with caching. No destructive behavior is implied, which is appropriate for a read-only 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 three sentences long, each providing essential information: what the tool does, what it returns, and when to use it. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently explains return values (per-token balance, USD value, total portfolio value) and mentions important behavior like RPC failover and caching. For a wallet balance tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 4 parameters with descriptions (100% coverage). The description adds value by explaining default behavior (default tokens, CoinGecko with 60s cache) and the purpose of the tool. It reinforces and augments schema 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 checks wallet balances across EVM, Cosmos, and Solana chains, returns native and key ERC-20 token balances, and provides USD values. It distinguishes from siblings by mentioning bridging operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this before any bridging or farming operation to verify sufficient funds and gas,' providing clear when-to-use. It doesn't explicitly mention alternatives, but context from sibling tools suggests this is the balance check tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_importA
Import existing keys. Alternative: edit ~/.bridgekitty/.env directly (MNEMONIC=, PRIVATE_KEY=0x). Mnemonic gives EVM + Persistence + Solana; privateKey alone gives EVM only. Use wallet_status to check current state.
| Name | Required | Description | Default |
|---|---|---|---|
| mnemonic | No | 12 or 24 word BIP-39 mnemonic phrase | |
| overwrite | No | Set true to overwrite existing keys (back up first!) | |
| privateKey | No | 0x-prefixed hex EVM private key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It reveals important traits: overwrite behavior with a backup warning, and the multi-chain vs EVM-only outcome based on parameter choice. This transparently informs the agent of consequences, though it could mention whether the operation is reversible or requires permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of four concise sentences, each adding unique value. It front-loads the core purpose and immediately provides an alternative, then explains parameter outcomes, and ends with a follow-up action. 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 no output schema and three optional parameters, the description adequately covers what the tool does, the effects of inputs, and a post-action suggestion. It lacks explicit mention of return value or error conditions, but for a state-modifying tool, the behavioral and usage guidance is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining what each key type provides ('Mnemonic gives EVM + Persistence + Solana; privateKey alone gives EVM only'), which goes beyond the schema's parameter descriptions. This semantic enrichment justifies a 4.
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: 'Import existing keys.' It also distinguishes itself by detailing the effects of different inputs (mnemonic vs privateKey) and mentions an alternative method (editing .env). This provides unambiguous purpose and differentiation from sibling tools like wallet_setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly offers an alternative method ('edit ~/.bridgekitty/.env directly') and advises checking state with wallet_status. While it doesn't list explicit when-not conditions, this guidance effectively helps the agent choose between methods and verify outcomes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_setupA
Create wallets for all supported chains (EVM, Cosmos, Solana). Keys saved to ~/.bridgekitty/.env. Use wallet_status first to check if already configured.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the side effect: 'Keys saved to ~/.bridgekitty/.env'. No annotations exist, so description carries full burden. Could be more explicit about overwrite behavior or idempotency, but the hint to check wallet_status mitigates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded action. Every sentence adds value: first states purpose, second adds behavioral context and usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides prerequisite (check wallet_status) and side effect (file save). For a setup tool with no parameters and no output schema, it covers key aspects. Lacks idempotency detail but is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so description does not need to add param info. The baseline for 0 params is 4, and the description covers the tool's operation without needing parameter details.
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 'Create' and the specific resource 'wallets for all supported chains (EVM, Cosmos, Solana)'. It distinguishes the tool from sibling tools like wallet_status and wallet_import by specifying the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to 'Use wallet_status first to check if already configured', providing clear when-to-use context and directing to a sibling tool for pre-conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_statusA
Check if a wallet is configured. Returns wallet address, key status, and config file location. Call this FIRST before wallet_setup or wallet_import.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the tool is a read-only status check and lists return values. While it doesn't specify behavior when wallet is not configured, the description is sufficiently transparent for a simple status 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?
Two short sentences, no fluff. Purpose and usage guideline are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and low complexity, the description provides sufficient context: purpose, return info, and order of operations relative to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (no parameters), baseline is 3. Description does not add parameter details, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks wallet configuration and returns specific fields (address, key status, config file location). It also distinguishes from siblings by advising to call this first before wallet_setup or wallet_import.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call this tool first before wallet_setup or wallet_import, providing clear when-to-use and alternatives context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xprt_onboardA
Personalized onboarding for XPRT farming. Detects current wallet state and returns an ordered action plan to go from your current position to actively farming XPRT rewards.
| 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 full burden. It explains the tool detects state and returns a plan, implying a read-only operation. However, it does not detail potential side effects, prerequisites (e.g., wallet existence), or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both essential and front-loaded with the purpose. No wasted words while conveying the personalized and state-aware nature of the tool.
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 zero params, the description adequately covers what the tool does and what it returns. It could be more complete by mentioning that a wallet context is required, but overall it is sufficient.
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 zero parameters, schema coverage is 100%. The description adds value by explaining the tool automatically uses the current wallet state, so no parameters are needed. This exceeds the baseline expectation.
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 it provides personalized onboarding for XPRT farming by detecting wallet state and returning an action plan. It uses specific verbs and resource, distinguishing it from sibling tools like bridge and wallet utilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the user wants to start farming XPRT rewards, but does not explicitly exclude other scenarios or mention prerequisites like having a wallet connected. Context is clear but lacks exclusions.
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.
12 tool updates
v0.3.1- Added
bridge_chains - Added
bridge_execute - Added
bridge_get_quote - Added
bridge_quote_multi - Added
bridge_status - Added
bridge_tokens - Added
bridgekitty_help - Added
wallet_balance - Added
wallet_import - Added
wallet_setup - Added
wallet_status - Added
xprt_onboard
12 tool updates
- Removed
bridge_chains - Removed
bridge_execute - Removed
bridge_get_quote - Removed
bridge_quote_multi - Removed
bridge_status - Removed
bridge_tokens - Removed
bridgekitty_help - Removed
wallet_balance - Removed
wallet_import - Removed
wallet_setup - Removed
wallet_status - Removed
xprt_onboard
12 tool updates
v0.3.9- First observed
bridge_chains - First observed
bridge_execute - First observed
bridge_get_quote - First observed
bridge_quote_multi - First observed
bridge_status - First observed
bridge_tokens - First observed
bridgekitty_help - First observed
wallet_balance - First observed
wallet_import - First observed
wallet_setup - First observed
wallet_status - First observed
xprt_onboard
TDQS
Each tool targets a distinct operation: bridging (chains, tokens, quotes, execution, status, multi-hop), wallet (setup, import, status, balance), help, and onboarding. No overlapping purposes.
Most tools follow a clear verb_noun pattern with underscores (bridge_chains, wallet_balance). Minor inconsistency: 'xprt_onboard' inverts the order, but it's still readable and the overall naming is coherent.
12 tools is appropriate for a bridge and wallet server. It covers essential operations without being overwhelming, fitting the domain well.
Core bridging workflow (chains, tokens, quote, execute, status) and wallet management (setup, import, balance) are covered. Minor gap: no tool to list supported providers explicitly, but bridge_chains provides that info indirectly.
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
Multi-aggregator swap router for AI agents on Base. 10 bps fee. MCP-native, non-custodial.
Agent MCP for DeFi: cross-chain LINQ fan-out, AMM quotes/swaps, bridge, AI. Solana+EVM. Free+x402.
Li.Fi MCP: cross-chain aggregation β quotes, routes, status, chains, tokens, execution.
Li.Fi tools over MCP: cross-chain quotes, routes, execution status, chains, tokens, balances.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that delivers real-time cross-chain bridge rates and optimal transfer routes to onchain AI agents.155MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with LI.FI's cross-chain infrastructure, providing access to blockchain networks, token data, bridges, and transaction services through a standardized protocol.-
- FlicenseNot gradedqualityDmaintenanceEnables cross-chain cryptocurrency swap quotes and operations using the deBridge DLN protocol. Provides read-only access to swap estimates, supported chains, token information, and order status tracking across multiple blockchain networks.1-
- AlicenseAqualityCmaintenanceProvides cross-chain bridge and swap tools for AI agents using the Relay Protocol to interact with multiple blockchain networks. It enables agents to query supported chains, obtain transaction quotes, and generate unsigned transaction data for token transfers and swaps.10604MIT
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/persistenceOne/bridgekitty'
If you have feedback or need assistance with the MCP directory API, please join our Discord server