交易模拟器MCP服务器
一个MCP服务器,它使像Claude这样的AI模型能够与交易模拟器API互动,以检查余额、查看价格和执行带有自动链检测的交易。
服务介绍
交易模拟器 MCP 服务器
一个用于与交易模拟器 API 交互的 MCP(模型上下文协议)服务器。此服务器使像 Claude 这样的 AI 模型能够通过与 MCP 兼容的接口查询余额、查询价格和执行交易。
功能
此 MCP 服务器通过结构化的工具调用提供对交易模拟器操作的访问:
-
账户操作
- 获取代币余额
- 获取投资组合信息
- 查看交易历史
-
价格操作
- 获取代币价格
- 获取代币信息
- 查看价格历史
-
交易操作
- 在代币之间执行交易
- 获取潜在交易的报价
- 智能代币检测,自动处理链参数
-
竞赛操作
- 检查竞赛状态
- 查看排行榜排名
智能代币处理
交易模拟器 MCP 包含一个智能代币检测系统,简化了交易执行:
-
自动链检测:在使用常见代币执行交易时,系统会自动识别适当的区块链(EVM/SVM)和特定链(ETH, BASE 等)参数。
-
同链优化:当在同一链上交易代币时,系统会自动配置同链交易参数。
-
跨链回退:如果由于代币位于不同链而导致同链交易失败,系统将优雅地回退到显式参数或服务器端检测。
-
常见代币支持:系统包含一个不断增长的常见代币列表及其地址和链信息。
认证
交易模拟器 API 使用 Bearer 令牌认证,需要在 Authorization 头中传递一个 API 密钥作为 Bearer 令牌。
示例:
Authorization: Bearer your_api_key_here
设置
-
克隆仓库
git clone https://github.com/yourusername/trading-simulator-mcp.git cd trading-simulator-mcp -
安装依赖
npm install -
配置您的 API 凭证(请参阅下面的配置部分)
-
构建项目
npm run build -
启动服务器
npm run start
配置
您有两种方法来配置交易模拟器 MCP 服务器:
方法 1:直接在 Cursor/Claude 中配置(推荐)
推荐的方法是在您的 Cursor 或 Claude Desktop 配置中直接提供环境变量。这种方法更安全,并且不需要 .env 文件。
- 当通过配置提供这些环境变量时,服务器将自动使用它们。
- 请参阅下面的“添加到 Cursor”和“添加到 Claude Desktop”部分以获取具体的设置说明。
方法 2:使用 .env 文件(备用)
如果您更喜欢使用 .env 文件,或者直接从命令行运行服务器:
-
创建一个包含您的 API 凭证的
.env文件cp .env.example .env -
使用您的 API 密钥编辑
.env文件TRADING_SIM_API_KEY=your_api_key_here TRADING_SIM_API_URL=http://localhost:3000 DEBUG=false -
通过设置受限权限来保护您的 .env 文件
chmod 600 .env
环境变量优先级
交易模拟器 MCP 服务器使用以下环境变量优先级顺序:
- 直接从 JSON 配置提供的环境变量
- 来自 .env 文件的环境变量(如果存在且第1项不可用)
- 可选变量的默认值(例如,API_URL 默认为 "http://localhost:3000")
添加到 Cursor
要将此 MCP 服务器添加到 Cursor 中:
- 先使用
npm run build构建项目 - 在 Cursor 中,转到 设置 > MCP 服务器
- 点击“添加服务器”
- 使用以下设置配置服务器:
- 名称:
Trading Simulator MCP(或您喜欢的任何名称) - 类型:
command - 命令:
node - 参数:
/path/to/trading-sim-mcp/dist/index.js(使用完整路径) - 环境变量:
TRADING_SIM_API_KEY:您的 API 密钥TRADING_SIM_API_URL:API 服务器 URL(可选)DEBUG:true(可选,用于额外的日志记录)
- 名称:
- 点击“保存”
在 Cursor 配置中使用环境变量
为了更安全,您可以通过在主目录下的 .cursor/mcp.json 文件中配置 Cursor:
{
"mcpServers": {
"trading-simulator-mcp": {
"name": "Trading Simulator MCP",
"type": "command",
"command": "node",
"args": ["/path/to/trading-simulator-mcp/dist/index.js"],
"env": {
"TRADING_SIM_API_KEY": "your_api_key_here",
"TRADING_SIM_API_URL": "http://localhost:3000",
"DEBUG": "true"
}
}
}
}
这种方法消除了对 .env 文件的需求。
添加到 Claude Desktop
要将此 MCP 服务器添加到 Claude Desktop:
-
先使用
npm run build构建项目 -
找到您的 Claude Desktop 配置文件:
- 在 macOS 上:
~/Library/Application Support/Claude/claude_desktop_config.json - 在 Windows 上:
%APPDATA%\Claude\claude_desktop_config.json - 在 Linux 上:
~/.config/Claude/claude_desktop_config.json
- 在 macOS 上:
-
创建或编辑
claude_desktop_config.json文件,内容如下:{ "mcpServers": { "trading-simulator-mcp": { "name": "Trading Simulator MCP", "type": "command", "command": "node", "args": [ "/path/to/trading-simulator-mcp/dist/index.js" ], "env": { "TRADING_SIM_API_KEY": "your_api_key_here", "TRADING_SIM_API_URL": "http://localhost:3000", "DEBUG": "true" } } } } -
将
/path/to/trading-simulator-mcp/dist/index.js替换为您的编译后的服务器文件的完整路径- 示例:
/Users/username/trading-simulator-mcp/dist/index.js
- 示例:
-
保存配置文件并重启 Claude Desktop
如果您遇到 Claude Desktop 的问题,请检查日志文件:
- 在 macOS 上:
~/Library/Logs/Claude/ - 在 Windows 上:
%USERPROFILE%\AppData\Local\Claude\Logs\ - 在 Linux 上:
~/.local/share/Claude/logs/
重要开发注意事项
在开发MCP服务器时,请使用console.error()而不是console.log()进行所有调试和日志记录。Claude桌面应用程序和Cursor通过stdout与服务器通信,因此任何console.log()语句都会干扰这种通信并导致JSON解析错误。
MCP 工具
服务器提供了以下MCP工具:
账户工具
get_balances- 获取您的团队的代币余额get_portfolio- 获取您的团队的投资组合信息get_trades- 获取您的团队的交易历史
价格工具
get_price- 获取代币的当前价格get_token_info- 获取关于代币的详细信息get_price_history- 获取代币的历史价格数据
交易工具
execute_trade- 在两个代币之间执行交易- 自动检测并为常见代币分配链参数
- 支持无需明确指定链参数的同链交易
- 对于跨链场景优雅地回退
get_quote- 获取潜在交易的报价
竞赛工具
get_competition_status- 获取当前竞赛的状态get_leaderboard- 获取竞赛排行榜
常见代币
系统包含一个COMMON_TOKENS结构,该结构将代币地址映射到各自的链上。这使得在执行交易时能够自动检测链参数。
当前常见的代币包括:
Solana (SVM)
- USDC:
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v - SOL:
So11111111111111111111111111111111111111112
Ethereum (EVM)
- USDC:
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 - WETH:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Base (EVM)
- USDC:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - ETH:
0x4200000000000000000000000000000000000006
要添加更多常见代币,您可以在types.ts文件中扩展COMMON_TOKENS对象。
安全注意事项
- 您的API密钥应保持安全,切勿在客户端代码中共享或暴露
- 在生产环境中连接API时始终使用HTTPS
- API密钥具有执行交易的全部权限,因此请相应地保护它