XTB-MCP服务器
一个暴露XTB交易API的MCP服务器,允许用户通过模型上下文协议与其XTB交易账户进行交互,以执行账户管理、市场数据获取和交易执行等操作。
服务介绍
XTBApiServer
这是一个使用 @sharplygroup/xtb-api-js 库暴露 XTB API 的 MCP 服务器。它允许您通过 Model Context Protocol 与您的 XTB 交易账户进行交互。
前提条件
- Node.js(版本16或更高)
- npm
- 一个 XTB 交易账户
安装
- 克隆此仓库:
git clone [repository_url]
- 导航到项目目录:
cd xtb-mcp-server
- 安装依赖项:
npm install
配置
- 在项目目录中创建一个
.env文件,并添加您的 XTB API 凭证:
DEMO_ACCOUNT=true
USER_ID=your_user_id
PASSWORD=your_password
注意: 将 your_user_id 和 your_password 替换为您的实际 XTB API 凭证。如果您使用的是真实账户,请将 DEMO_ACCOUNT 设置为 false。
运行服务器
- 构建 TypeScript 代码:
npm run build
- 运行服务器:
node build/index.js
使用 MCP 客户端连接
您可以使用任何 MCP 客户端,例如 MCP Inspector,来连接此服务器。
- 全局安装 MCP Inspector:
npm install -g @modelcontextprotocol/inspector
- 使用您的服务器运行 MCP Inspector:
npx @modelcontextprotocol/inspector node build/index.js
- 在 MCP Inspector UI 中,选择 "stdio" 作为传输类型并点击 "Connect"。
可用工具
该 MCP 服务器提供了以下工具:
账户操作
- getCurrentUserData: 返回关于账户货币和账户杠杆的信息。
- getMarginLevel: 返回各种账户指标。
计算操作
- getCommissionDef: 返回佣金和汇率的计算。
- 参数:
symbol(字符串),volume(数字)
- 参数:
- getMarginTrade: 返回给定工具和数量的预期保证金。
- 参数:
symbol(字符串),volume(数字)
- 参数:
- getProfitCalculation: 根据给定的交易数据计算估计利润。
- 参数:
closePrice(数字),cmd(数字),openPrice(数字),symbol(字符串),volume(数字)
- 参数:
市场数据操作
- getCalendar: 返回包含市场事件的日历。
- getChartLastRequest: 返回从开始日期到当前时间的图表信息。
- 参数:
info(任意)
- 参数:
- getChartRangeRequest: 返回给定开始和结束日期之间的图表信息。
- 参数:
info(任意)
- 参数:
- getTickPrices: 返回给定符号的当前报价数组,只返回自给定时间戳以来发生变化的报价。
- 参数:
level(数字),symbols(字符串[]),timestamp(数字)
- 参数:
- getTradingHours: 返回报价和交易时间。
- 参数:
symbols(字符串[])
- 参数:
新闻操作
- getNews: 返回在指定时间段内发送的交易服务器新闻。
- 参数:
end(数字),start(数字)
- 参数:
服务器操作
- getServerTime: 返回交易服务器上的当前时间。
- getVersion: 返回当前API版本。
- ping: 定期调用此函数足以刷新系统中所有组件的内部状态。
符号操作
- getAllSymbols: 返回用户可用的所有符号的数组。
- getSymbol: 返回用户可用的符号信息。
- 参数:
symbol(字符串)
- 参数:
交易操作
- getTrades: 返回用户的交易数组。
- 参数:
openedOnly(布尔值)
- 参数:
- getTradeRecords: 返回在
orders参数中列出的交易数组。- 参数:
orders(数字数组)
- 参数:
- getTradesHistory: 返回在指定时间段内关闭的用户交易数组。
- 参数:
end(数字),start(数字)
- 参数:
- getTradeStatus: 返回当前交易状态。
- 参数:
order(数字)
- 参数:
交易操作
- tradeTransaction: 开始一个交易事务。
- 参数:
tradeTransInfo(任意类型)
- 参数:
- tradeTransactionStatus: 返回当前交易状态。
- 参数:
order(数字)
- 参数:
命令执行
- executeCommand: 在服务器上执行命令。
- 参数:
command(字符串)
- 参数:
提示
以下提示可用:
- getAccountDataPrompt: 获取当前账户数据。
- getSymbolInfoPrompt: 获取特定符号的信息。
- 参数:
symbol(字符串)
- 参数:
免责声明
此MCP服务器仅作为示例提供,使用时需自担风险。请确保您理解XTB API以及使用真实交易账户与此服务器交互可能涉及的风险后再进行操作。