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