IG.com MCP服务器
一个模型上下文协议(MCP)服务器,为ChatGPT和其他AI代理提供对IG.com交易API的访问。该服务器支持与IG.com进行自然语言交互,用于交易操作、市场数据检索、账户管理等。
特性
- 🔐 安全认证:通过工具调用或环境变量登录
- 💼 账户管理:查看余额、账户和账户详细信息
- 📈 市场数据:实时和历史价格数据
- 📊 交易操作:下订单、管理职位和工作订单
- 🔍 仪器搜索:按名称或关键字搜索交易工具
- 📋 收看列表:管理和查看监视列表
- 🔧 通用API调用方:灵活访问任何IG API端点
- 🚀 铁路准备就绪:预先配置,便于在铁路上部署
先决条件
- Node.js 18+或Docker
- 具有API访问权限的IG.com帐户
- IG.com API密钥(从 IG实验室)
入门指南
本地开发
- 克隆存储库:
git clone
cd ig-mcp-server- 安装依赖项:
npm install- 设置环境变量 (可选,但推荐):
cp .env.example .env
# Edit .env with your IG credentials或设置环境变量:
export IG_API_KEY=your_api_key
export IG_USERNAME=your_username
export IG_PASSWORD=your_password
export IG_API_URL=https://api.ig.com/gateway/deal- 构建项目:
npm run build- 运行服务器:
npm start或者用于自动重新加载的开发:
npm run devIG.com API设置
- 登录您的IG.com帐户
- 引导到 我的账户 > 设置 > API密钥
- 生成新的API密钥
- 注意API密钥、用户名和密码
- 如果您启用了2FA,请在身份验证时将6位代码附加到密码中
使用ChatGPT
配置
将MCP服务器添加到您的ChatGPT配置中:
{
"mcpServers": {
"ig": {
"command": "node",
"args": ["/path/to/ig-mcp-server/dist/index.js"],
"env": {
"IG_API_KEY": "your_api_key",
"IG_USERNAME": "your_username",
"IG_PASSWORD": "your_password"
}
}
}
}认证
如果未通过环境变量设置凭据,ChatGPT将提示您输入登录详细信息:
- 使用
ig_login使用您的凭据的工具 - 服务器将验证并存储会话
- 会话保持活动状态,直到注销或过期
可用工具
认证
ig_login:使用IG.com API进行身份验证ig_logout:注销并清除会话
账户管理
ig_get_accounts:获取所有帐户ig_get_account_balance:获取特定账户的余额
交易
ig_place_order:下达新的交易订单ig_get_positions:获取所有头寸(开放和关闭)ig_get_open_positions:只获取空缺职位ig_close_position:关闭现有职位ig_get_working_orders:获取待处理/工作订单ig_delete_working_order:删除工作订单
市场数据
ig_get_market_data:获取工具的当前市场数据ig_search_instruments:搜索仪器ig_get_historical_prices:获取历史价格数据
收看列表
ig_get_watchlists:获取所有观察名单ig_get_watchlist_markets:将市场列入观察名单
通用API访问
ig_call_api:直接调用任何IG API端点
铁路部署
选项1:使用Railway CLI
- 安装铁路CLI:
npm i -g @railway/cli- 登录铁路:
railway login- 初始化铁路项目:
railway init- 设置环境变量:
railway variables set IG_API_KEY=your_api_key
railway variables set IG_USERNAME=your_username
railway variables set IG_PASSWORD=your_password
railway variables set IG_API_URL=https://api.ig.com/gateway/deal- 部署:
railway up选项2:使用铁路仪表板
- 创建新项目 上 铁路
- 连接您的GitHub存储库
- 添加环境变量 在铁路仪表板中:
- IG_API_KEY - IG_USERNAME - IG_PASSWORD - IG_API_URL (可选,默认为实时API)
- 部署:Railway将自动检测Dockerfile并部署
选项3:使用Docker
附带的Dockerfile可以与任何兼容Docker的平台一起使用:
docker build -t ig-mcp-server .
docker run --env-file .env ig-mcp-server铁路部署说明
⚠️ 重要:MCP服务器通过以下方式通信 stdio(标准输入/标准输出)不是HTTP。铁路部署主要是为了保持服务运行。代理通过MCP客户端进行本地连接,而不是通过HTTP端点。
看 铁路_部署.md 详细的铁路部署指南。
安全考虑
⚠️ 重要安全注意事项:
- 凭证:永远不要将凭据提交到版本控制。使用环境变量或Railway的安全变量存储。
- 会话管理:会话存储在每个连接的内存中。生产:
- 考虑实施会话加密 - 根据您的安全要求添加会话到期时间 - 使用基于连接的隔离(已实现)
- 公共访问:此服务器旨在与ChatGPT的MCP集成一起使用,而不是作为可公开访问的API。确保适当的网络隔离。
- API密钥:定期轮换API密钥,并在可能的情况下使用只读密钥进行非交易操作。
🔒 生产安全设置
对于 可公开访问的部署 (如铁路),实现严格的安全:
# Require credentials via environment variables only (no tool calls)
REQUIRE_ENV_CREDENTIALS=true
# Add MCP server API key for access control
MCP_SERVER_API_KEY=your_secure_random_key看 安全.md 获取全面的安全指南。
API 参考
IG.com API文档
API完整文档可在 labs.ig.com.
使用的常见端点
- 认证:
POST /session - 账户:
GET /accounts - 职位:
GET /positions - 订单:
POST /positions/otc - 市场数据:
GET /markets/{epic} - 历史价格:
GET /prices/{epic}/{resolution}/{from}/{to}
错误处理
服务器返回用户友好的消息和详细的调试信息:
{
"message": "User-friendly error message",
"data": { ... },
"debug": {
"status": 401,
"statusText": "Unauthorized",
"response": { ... }
}
}发展
项目结构
ig-mcp-server/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── ig-client.ts # IG API client
│ ├── session-manager.ts # Session management
│ └── types.ts # TypeScript types
├── dist/ # Compiled JavaScript
├── Dockerfile # Docker configuration
├── package.json
├── tsconfig.json
└── README.md建筑
npm run build代码检查
npm run lint发展模式
npm run dev故障排除
身份验证问题
- 验证您的API密钥、用户名和密码是否正确
- 如果使用2FA,请将代码附加到密码中
- 检查您是否使用了正确的API URL(直播与演示)
连接问题
- 确保服务器正在运行且可访问
- 检查IG API的网络连接
- 验证环境变量是否设置正确
会话过期
- IG会话最初有效期为6小时
- 会话随着活动而延长
- 如果遇到身份验证错误,请尝试重新登录
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
对于问题和疑问:
- IG API文件: labs.ig.com
- IG支持:有关API相关问题,请联系IG.com支持
- MCP文件: 模型上下文协议
免责声明
此软件用于教育和开发目的。交易涉及风险。在使用实时交易之前,始终使用模拟账户进行彻底测试。作者不对任何经济损失负责。
