小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
1
最近更新:3个月前

一个暴露XTB交易API的MCP服务器,允许用户通过模型上下文协议与其XTB交易账户进行交互,以执行账户管理、市场数据获取和交易执行等操作。

XTBApiServer

这是一个利用 @sharplygroup/xtb-api-js 库暴露XTB API的MCP服务器。它允许您通过模型上下文协议与您的XTB交易账户进行交互。

前置条件

  • Node.js(版本16或更高)
  • npm
  • 一个XTB交易账户

安装

  1. 克隆此存储库:
    git clone [repository_url]
  2. 进入项目目录:
    cd xtb-mcp-server
  3. 安装依赖:
    npm install

配置

  1. 在项目目录中创建.env文件并添加您的XTB API凭据:
复制代码
DEMO_ACCOUNT=true
USER_ID=your_user_id
PASSWORD=your_password

注意:your_user_idyour_password替换为您的实际XTB API凭据。如果您使用的是真实账号,请将DEMO_ACCOUNT设置为false

启动服务器

  1. 构建TypeScript代码:
    npm run build
  2. 启动服务器:
    node build/index.js

使用MCP客户端连接

您可以使用任何MCP客户端(例如MCP Inspector)来连接此服务器。

  1. 全局安装MCP Inspector:
    npm install -g @modelcontextprotocol/inspector
  2. 使用您的服务器运行MCP Inspector:
    npx @modelcontextprotocol/inspector node build/index.js
  3. 在MCP Inspector界面中,选择“stdio”作为传输类型并单击“连接”。

可用工具

以下工具由这个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及其潜在风险,然后再将此服务器与真实交易账户一起使用。