Stargate Bridge MCP
Enables bridging tokens to and from Ethereum via the Stargate protocol, including quote fetching and automated transfers.
Enables bridging tokens to and from Polygon via the Stargate protocol, including quote fetching and automated transfers.
Planned support for bridging tokens to and from Solana via the Stargate protocol (not yet implemented).
Click on "Deploy 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., "@Stargate Bridge MCPGet quotes for bridging 10 USDC from Ethereum to Polygon."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Stargate Bridge MCP
An MCP server that enables cross-chain token transfers via the Stargate protocol.
Features
Chain Discovery: List all supported blockchains with key details.
Token Discovery: Find bridgeable tokens across chains.
Quote Fetching: Get real-time bridge quotes with fees, estimates, and transaction steps.
Automated Bridging: Execute transfers with automatic signing and broadcasting using your private key.
MCP Integration: Fully compliant with MCP spec for easy use in Claude, Cursor, or other MCP clients.
Tool | Description | Key Parameters |
| Lists supported chains in a sorted Markdown table. | None |
| Lists bridgeable destinations for a source token. |
|
| Fetches detailed quotes for a bridge route. |
|
| Executes a bridge transfer (uses first quote). |
|
Related MCP server: bridge-rates-mcp
Known Limitations
Currently supports cross-chain bridging only between EVM-compatible chains (e.g., Ethereum, Polygon, Arbitrum). Non-EVM chains like Solana are planned for future support.
Quick Start
Prerequisites
Python 3.10+
uv for dependency management (recommended; fallback to pip)
A
.envfile with your Ethereum-compatible private key (e.g.,PRIVATE_KEY=0x...). Never commit this file!
Installation
Clone the repo:
git clone https://github.com/kukapay/stargate-bridge-mcp.git cd stargate-bridge-mcpInstall dependencies with uv:
uv sync # Or uv add requests web3 python-dotenv "mcp[cli]"Install to Claude Desktop:
Install the server as a Claude Desktop application:
uv run mcp install main.py --name "Stargate Bridge"Configuration file as a reference:
{ "mcpServers": { "Stargate Bridge": { "command": "uv", "args": [ "--directory", "/path/to/stargate-bridge-mcp", "run", "main.py" ], "env": { "PRIVATE_KEY": "your_private_key"} } } }Replace
/path/to/stargate-bridge-mcpwith your actual installation path, and replaceyour_private_keywith your wallet private key.
Usage Examples
These examples simulate interactions in an MCP client like Claude Desktop. Each includes a natural language prompt, the tool call, and sample output.
1. List Supported Chains
Prompt: "Show me all the chains supported by Stargate for bridging."
Tool Call: list_chains()
Sample Output (Markdown table, sorted by chainKey):
| chainKey | Name | Chain Type | Chain ID | Native Symbol |
|----------|------|------------|----------|---------------|
| arbitrum | Arbitrum One | evm | 42161 | ETH |
| avalanche | Avalanche C-Chain | evm | 43114 | AVAX |
| base | Base | evm | 8453 | ETH |
| bnbchain | BNB Smart Chain | evm | 56 | BNB |
| ethereum | Ethereum | evm | 1 | ETH |
| ... (additional chains)2. List Bridgeable Tokens
Prompt: "What tokens can I bridge USDC from Ethereum to other chains?"
Tool Call: list_bridgeable_tokens("ethereum", "0xA0b86a33E641b9E649bEe6b2D5D7b5b4D8f3a0a") (USDC on Ethereum)
Sample Output (Markdown table, sorted by Chain Key):
| Chain Key | Symbol | Address |
|-----------|--------|---------|
| arbitrum | USDC | 0xA0b86a33E641b9E649bEe6b2D5D7b5b4D8f3a0a |
| avalanche | USDC | 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E |
| polygon | USDC | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 |
| ... (additional destinations)3. Get Bridge Quotes
Prompt: "Get quotes for bridging 10 USDC from Ethereum to Polygon with 1% slippage."
Tool Call: get_quotes("ethereum", "polygon", "0xA0b86a33E641b9E649bEe6b2D5D7b5b4D8f3a0a", "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", 10.0, 9.9)
Sample Output (Concise Markdown):
# Stargate Bridge Quotes
**Src**: ETHEREUM USDC 10.0 → **Dst**: POLYGON USDC
## Quote 1 (stargate/v2/taxi)
- **Expected Receive**: 9.98 USDC
- **Min Receive**: 9.90 USDC
- **Est. Time**: 180s
- **Fees**:
- 0.000050 ETH on ethereum (message)
### Steps
- **Step 1 (bridge)**: To 0x77b204... | Value: 0.0100 ETH | Data: 0xc7c7f5b3...
**Note**: Use `bridge_transfer` to execute (uses first quote).4. Execute Bridge Transfer
Prompt: "Execute the bridge for 10 USDC from Ethereum to Polygon."
Tool Call: bridge_transfer("ethereum", "polygon", "0xA0b86a33E641b9E649bEe6b2D5D7b5b4D8f3a0a", "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", 10.0, 9.9)
Sample Output (On success; Markdown):
## Bridge Transfer Successful
Transaction hashes:
- Step 1: 0x1234abcd...efgh5678Note: If it fails (e.g., insufficient gas), returns an error like # Error\nStep 1 failed (reverted).
License
MIT License - see LICENSE for details.
Available Tools
4 toolsbridge_transferA
Execute a cross-chain token bridge transfer using the Stargate protocol.
This tool fetches a quote internally (using provided chains and default addresses), constructs and signs transactions using the private key from the .env file, broadcasts them sequentially to the source chain, and waits for confirmations. It handles approvals and bridge steps. Source address is derived from PRIVATE_KEY. Destination address defaults to source if not provided.
Parameters:
- src_chain_key (str): Source chain key (e.g., 'ethereum').
- dst_chain_key (str): Destination chain key (e.g., 'polygon').
- src_token (str): Source token contract address.
- dst_token (str): Destination token contract address.
- src_amount (float): Human-readable amount to bridge (e.g., 1.0).
- dst_amount_min (float): Minimum expected destination amount for slippage (e.g., 0.99).
- dst_address (Optional[str]): Destination wallet address. If omitted, uses source address from PRIVATE_KEY.
Returns:
- str: Markdown-formatted string with success message including transaction hashes for each step, or an error message if any step fails (e.g., invalid key, no quote, RPC failure, or transaction revert).
| Name | Required | Description | Default |
|---|---|---|---|
| dst_token | Yes | ||
| src_token | Yes | ||
| src_amount | Yes | ||
| dst_address | No | ||
| dst_chain_key | Yes | ||
| src_chain_key | Yes | ||
| dst_amount_min | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 and does so thoroughly. It discloses the internal flow: fetches a quote, signs transactions using the private key from .env, broadcasts sequentially, waits for confirmations, handles approvals, derives the source address from PRIVATE_KEY, and defaults destination address to source. It also lists error cases and return format.
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: purpose sentence, process paragraph, parameter list, and return explanation. It is verbose but every sentence adds value. Some redundancy exists with the schema parameter list, but the extra semantics justify the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-step bridge transfer) and absence of annotations, the description is remarkably complete. It covers the execution flow, key derivation, approvals, sequential broadcasting, confirmation waits, return format, and potential error conditions, leaving few open questions for an agent.
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%, but the description compensates by providing meaningful context for each parameter, including examples (e.g., 'ethereum', 'polygon'), clarifying that src_amount is human-readable, dst_amount_min is for slippage, and dst_address defaults to the source address if omitted.
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 opens with a specific verb+resource: 'Execute a cross-chain token bridge transfer using the Stargate protocol.' This clearly distinguishes it from sibling tools (list_chains, list_bridgeable_tokens, get_quotes) which are informational and not execution-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool (to actually execute a bridge transfer) and states that it fetches a quote internally, signaling that a separate get_quotes call may not be necessary. However, it does not explicitly say when NOT to use this tool or compare it to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quotesA
Fetch quotes for a cross-chain token bridge transfer using the Stargate API.
This tool retrieves all available bridge routes, including expected destination amounts, fees, estimated times, and transaction steps for each route. It accepts human-readable amounts (floats) and converts them internally using token decimals. If src_address is not provided, it uses the address derived from the PRIVATE_KEY in .env. If dst_address is not provided, it defaults to src_address.
Parameters:
- src_chain_key (str): Source chain key (e.g., 'ethereum').
- dst_chain_key (str): Destination chain key (e.g., 'polygon').
- src_token (str): Source token contract address (e.g., '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48').
- dst_token (str): Destination token contract address.
- src_amount (float): Human-readable amount to bridge (e.g., 1.0 for 1 USDC).
- dst_amount_min (float): Minimum expected destination amount for slippage (human-readable, e.g., 0.99).
- src_address (Optional[str]): Source wallet address (e.g., '0x...'). If omitted, uses address from PRIVATE_KEY.
- dst_address (Optional[str]): Destination wallet address. If omitted, uses src_address.
Returns:
- str: Concise Markdown-formatted string listing all quotes with key details and steps. If no quotes available, returns an error message in Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| dst_token | Yes | ||
| src_token | Yes | ||
| src_amount | No | ||
| dst_address | No | ||
| src_address | No | ||
| dst_chain_key | Yes | ||
| src_chain_key | Yes | ||
| dst_amount_min | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden. It discloses important traits: internal decimal conversion for human-readable amounts, default addresses derived from PRIVATE_KEY, and Markdown return format including error cases. These go beyond schema basics, though it omits permission requirements or side-effect statements.
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 detailed but efficiently structured: a one-line summary, then behavioral notes, then a parameter list, then a returns note. Every sentence adds value, and the parameter explanations are necessary given the tool's complexity. 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?
The description covers input semantics, defaults, output format, and error handling. It assumes valid chain keys and tokens come from sibling tools (list_chains/list_bridgeable_tokens), which is reasonable. The output schema (string) is addressed by noting Markdown formatting, so return value expectations are set without overspecifying.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fully compensates. Each parameter is explained with format, examples, and defaults: src_chain_key shows 'ethereum', src_amount is described as human-readable with example, and optional addresses include fallback behavior. This provides far more semantic meaning than 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 opening sentence clearly states 'Fetch quotes for a cross-chain token bridge transfer using the Stargate API,' providing a specific verb (fetch), resource (quotes), and context (bridge transfer). This distinguishes it from siblings like bridge_transfer (execution) and list_chains (chain info), so the purpose is unambiguous and differentiated.
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 as a pre-transfer step by describing retrieval of routes and quotes, but it never explicitly contrasts with bridge_transfer or states when not to use it. There is no guidance on alternatives, only implied context that this is the 'quote' stage before execution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bridgeable_tokensA
Retrieve a list of bridgeable destination chains and tokens for a given source chain and token.
This tool directly queries the Stargate /tokens API with srcChainKey and srcToken parameters to get available destination tokens that can be bridged to from the source.
Parameters:
- src_chain_key (str): Source chain key (e.g., 'ethereum').
- src_token (str): Source token contract address (e.g., '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' for USDC on Ethereum).
Returns:
- str: Markdown table with columns: Chain Key, Symbol, Address for bridgeable destinations (excluding source chain).
| Name | Required | Description | Default |
|---|---|---|---|
| src_token | Yes | ||
| src_chain_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the tool directly queries the Stargate /tokens API, returns a Markdown table, and excludes the source chain from results—useful behavioral details. It does not mention potential rate limits or errors, but for a read-only listing tool, the transparency is adequate.
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 separate sections for parameters and return value. Every sentence adds value, and the examples and return format are presented without unnecessary verbosity.
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 enums, no nested objects), the description covers all essential aspects: what it does, how to use it, and what it returns. The output schema is not shown, but the description explicitly describes the return format as a Markdown table, so no critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only provides type 'string' for both parameters with no descriptions. The description compensates fully by naming each parameter and giving concrete examples ('ethereum' for chain, a USDC contract address for token), which is essential for correct invocation.
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: 'Retrieve a list of bridgeable destination chains and tokens for a given source chain and token.' It specifies both the resource (bridgeable tokens) and the scope (given source chain and token), and it is distinct from sibling tools like list_chains, get_quotes, and bridge_transfer.
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: you would use this tool when you need to see available bridging destinations from a specific source chain and token. It does not explicitly name alternatives or exclusion criteria, but the purpose is clear enough to guide selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chainsA
Retrieve a list of all blockchain networks supported by the Stargate protocol for cross-chain bridging.
This tool fetches the comprehensive list of chains from the Stargate API and formats it as a Markdown table.
Parameters:
- None
Returns:
- str: Markdown table with columns: Name, Chain Type, Chain ID, Chain Key, Native Symbol.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that it fetches from the Stargate API and returns a formatted Markdown table, which is useful. However, it doesn't explicitly state that it's a read-only operation, mention potential network dependencies, or describe error 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 concise, front-loaded with the main purpose, and includes only relevant details: the API source and return format. 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?
For a simple zero-parameter tool, the description is complete: it states what it does, where the data comes from, and exactly what the return value looks like. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema coverage is 100% and the baseline is 4. The description explicitly confirms 'Parameters: None' and adds a clear return format, adding value beyond the empty 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 states a specific verb ('Retrieve') and resource ('list of all blockchain networks supported by Stargate protocol'), clearly distinguishing it from siblings like list_bridgeable_tokens and bridge_transfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: whenever chain metadata is needed for cross-chain bridging. It doesn't explicitly mention exclusions, but the context is unambiguous and no alternatives are needed for this simple listing operation.
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.
4 tool updates
v0.1.0- First observed
bridge_transfer - First observed
get_quotes - First observed
list_bridgeable_tokens - First observed
list_chains
TDQS
Scored across 4 tools
Each tool has a distinct role in the bridging workflow: listing chains, listing bridgeable tokens for a source, fetching quotes, and executing transfers. There is no overlap; even though bridge_transfer internally fetches a quote, its purpose is execution, distinct from get_quotes which only retrieves options.
All tool names follow a consistent verb_noun pattern in snake_case: list_* for discovering chains and tokens, get_quotes for fetching quotes, and bridge_transfer for execution. This makes the API predictable and easy to navigate.
With exactly 4 tools, the server is well-scoped for its purpose. It provides the necessary discovery, quoting, and execution capabilities without unnecessary bloat, fitting comfortably within the ideal 3-15 tool range.
The tool set covers the full cross-chain bridging lifecycle: discover supported chains, identify bridgeable token destinations, obtain quotes with slippage parameters, and execute the transfer. No critical operations are missing for the stated purpose, and the workflow is complete without dead ends.
Maintenance
Related MCP Connectors
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
Stargate - 42 tools for cross-chain transfers and bridge data
LayerZero V2 MCP: EndpointV2 quotes, OFT transfers, Stargate V2, Value Transfer API, DVNs.
Related MCP Servers
AlicenseCqualityCmaintenanceAn MCP server providing unified access to blockchain operations, bridging, swapping, and crypto trading strategies for AI agents.37179GPL 3.0- AlicenseNot gradedqualityDmaintenanceAn MCP server that delivers real-time cross-chain bridge rates and optimal transfer routes to onchain AI agents.4 npm5MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables cross-chain token swapping between different blockchains using 1inch Fusion+ API, along with portfolio management tools for tracking assets across chains.1-
- AlicenseAqualityDmaintenanceAn MCP server that tracks stablecoin peg integrity across multiple blockchains.44MIT