内容
# 星际门户桥接 MCP
一个MCP服务器,通过星际门户协议实现跨链代币转移。



## 功能特点
- **链发现**: 列出所有支持的区块链及其关键信息。
- **代币发现**: 跨链查找可桥接的代币。
- **报价获取**: 获取桥接报价,包括费用、预估时间和交易步骤。
- **自动桥接**: 使用私钥自动签名和广播交易执行转账。
- **MCP 集成**: 完全符合 MCP 规范,便于在 Claude、Cursor 或其他 MCP 客户端中使用。
| 工具 | 描述 | 关键参数 |
|------|-------------|----------------|
| `list_chains` | 列出支持的区块链,以排序的 Markdown 表格显示。 | 无 |
| `list_bridgeable_tokens` | 列出源代币的可桥接目的地。 | `src_chain_key`, `src_token` |
| `get_quotes` | 获取桥接路线的详细报价。 | `src_chain_key`, `dst_chain_key`, `src_token`, `dst_token`, `src_amount`, `dst_amount_min`(可选:`src_address`, `dst_address`) |
| `bridge_transfer` | 执行桥接转账(使用第一个报价)。 | `src_chain_key`, `dst_chain_key`, `src_token`, `dst_token`, `src_amount`, `dst_amount_min`(可选:`dst_address`) |
## 已知限制
目前仅支持 EVM 兼容链(例如以太坊、Polygon、Arbitrum)之间的跨链桥接。非 EVM 链(如 Solana)计划在未来支持。
## 快速入门
### 前提条件
- Python 3.10+
- [uv](https://docs.astral.sh/uv/) 用于依赖管理(推荐;备用方案为 pip)
- 包含以太坊兼容私钥的 `.env` 文件(例如 `PRIVATE_KEY=0x...`)。**请勿提交此文件!**
### 安装
1. 克隆仓库:
```
git clone https://github.com/kukapay/stargate-bridge-mcp.git
cd stargate-bridge-mcp
```
2. 使用 uv 安装依赖:
```
uv sync # 或 uv add requests web3 python-dotenv "mcp[cli]"
```
3. 安装到 Claude Desktop:
将服务器安装为 Claude Desktop 应用程序:
```bash
uv run mcp install main.py --name "星际门户桥接"
```
配置文件参考:
```json
{
"mcpServers": {
"星际门户桥接": {
"command": "uv",
"args": [ "--directory", "/path/to/stargate-bridge-mcp", "run", "main.py" ],
"env": { "PRIVATE_KEY": "your_private_key"}
}
}
}
```
将 `/path/to/stargate-bridge-mcp` 替换为实际安装路径,将 `your_private_key` 替换为钱包私钥。
## 使用示例
这些示例模拟了在 MCP 客户端(如 Claude Desktop)中的交互。每个示例包括自然语言提示、工具调用和示例输出。
### 1. 列出支持的区块链
**提示**: "显示星际门户支持的所有区块链以供桥接。"
**工具调用**: `list_chains()`
**示例输出** (Markdown 表格,按 chainKey 排序):
```
| chainKey | 名称 | 链类型 | 链 ID | 原生符号 |
|----------|------|------------|----------|---------------|
| 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 | 以太坊 | evm | 1 | ETH |
| ... (其他区块链)
```
### 2. 列出可桥接代币
**提示**: "我可以将哪些代币从以太坊桥接到其他链?"
**工具调用**: `list_bridgeable_tokens("ethereum", "0xA0b86a33E641b9E649bEe6b2D5D7b5b4D8f3a0a")` (以太坊上的 USDC)
**示例输出** (Markdown 表格,按 Chain Key 排序):
```
| 链密钥 | 符号 | 地址 |
|-----------|--------|---------|
| arbitrum | USDC | 0xA0b86a33E641b9E649bEe6b2D5D7b5b4D8f3a0a |
| avalanche | USDC | 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E |
| polygon | USDC | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 |
| ... (其他目的地)
```
### 3. 获取桥接报价
**提示**: "获取从以太坊桥接 10 USDC 到 Polygon,1% 滑点的报价。"
**工具调用**: `get_quotes("ethereum", "polygon", "0xA0b86a33E641b9E649bEe6b2D5D7b5b4D8f3a0a", "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", 10.0, 9.9)`
**示例输出** (简洁的 Markdown):
```
# 星际门户桥接报价
**源**: 以太坊 USDC 10.0 → **目标**: Polygon USDC
## 报价 1(stargate/v2/taxi)
- **预期接收**: 9.98 USDC
- **最小接收**: 9.90 USDC
- **预估时间**: 180s
- **费用**:
- 0.000050 ETH 在以太坊(消息)
### 步骤
- **步骤 1(桥接)**: 至 0x77b204... | 价值: 0.0100 ETH | 数据: 0xc7c7f5b3...
**注意**: 使用 `bridge_transfer` 执行(使用第一个报价)。
```
### 4. 执行桥接转账
**提示**: "执行从以太坊到 Polygon 的 10 USDC 桥接转账。"
**工具调用**: `bridge_transfer("ethereum", "polygon", "0xA0b86a33E641b9E649bEe6b2D5D7b5b4D8f3a0a", "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", 10.0, 9.9)`
**示例输出** (成功时;Markdown):
```
## 桥接转账成功
交易哈希:
- 步骤 1: 0x1234abcd...efgh5678
```
**注意**: 如果失败(例如,gas 不足),则返回错误,如 `# 错误\n步骤 1 失败(已回退)。`
## 许可证
MIT 许可证 - 参见 [LICENSE](LICENSE) 以获取详细信息。