Stargate Bridge MCP
# 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 |
|------|-------------|----------------|
| `list_chains` | Lists supported chains in a sorted Markdown table. | None |
| `list_bridgeable_tokens` | Lists bridgeable destinations for a source token. | `src_chain_key`, `src_token` |
| `get_quotes` | Fetches detailed quotes for a bridge route. | `src_chain_key`, `dst_chain_key`, `src_token`, `dst_token`, `src_amount`, `dst_amount_min` (optional: `src_address`, `dst_address`) |
| `bridge_transfer` | Executes a bridge transfer (uses first quote). | `src_chain_key`, `dst_chain_key`, `src_token`, `dst_token`, `src_amount`, `dst_amount_min` (optional: `dst_address`) |
## 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](https://docs.astral.sh/uv/) for dependency management (recommended; fallback to pip)
- A `.env` file with your Ethereum-compatible private key (e.g., `PRIVATE_KEY=0x...`). **Never commit this file!**
### Installation
1. Clone the repo:
```
git clone https://github.com/kukapay/stargate-bridge-mcp.git
cd stargate-bridge-mcp
```
2. Install dependencies with uv:
```
uv sync # Or uv add requests web3 python-dotenv "mcp[cli]"
```
3. Install to Claude Desktop:
Install the server as a Claude Desktop application:
```bash
uv run mcp install main.py --name "Stargate Bridge"
```
Configuration file as a reference:
```json
{
"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-mcp` with your actual installation path, and replace `your_private_key` with 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...efgh5678
```
**Note**: If it fails (e.g., insufficient gas), returns an error like `# Error\nStep 1 failed (reverted).`
## License
MIT License - see [LICENSE](LICENSE) for details.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.