Freqtrade MCP服务器

一个连接AI代理与Freqtrade加密货币交易机器人REST API的TypeScript MCP服务器。

  • by furkankoykiran
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 furkankoykiran/freqtrade-mcp

使用说明

@伊拉克/自由贸易mcp

用于Freqtrade的TypeScript MCP服务器-通过其REST API将AI代理(Claude、Cursor、Cline)连接到您的加密交易机器人。

与官方合作建造 MCP TypeScript SDK,它暴露了 15工具 涵盖账户统计、交易管理、市场数据、配对列表控制、交易执行和机器人生命周期——所有这些都可以从任何兼容MCP的客户端访问。


特性

类别 工具
账户 get_profit_stats, get_balance, get_performance
交易 get_open_trades, get_trade, get_trade_history
市场数据 get_market_data
配对列表 get_whitelist, get_blacklist, add_to_blacklist, remove_from_blacklist
执行 execute_trade, force_exit_trade
生命周期 start_bot, stop_bot, reload_config, get_bot_info, get_locks, delete_lock

先决条件

  1. Freqtrade 在启用REST API的情况下运行(请参阅 Freqtrade REST API文档)
  2. Node.js 18+ (node --version)

启用Freqtrade REST API

将以下内容添加到您的Freqtrade config.json:

"api_server": {
  "enabled": true,
  "listen_ip_address": "127.0.0.1",
  "listen_port": 8080,
  "verbosity": "error",
  "enable_openapi": false,
  "jwt_secret_key": "change-this-to-a-random-32-char-string",
  "username": "Freqtrader",
  "password": "YourStrongPassword"
}

安装

选项1——直接使用npx运行(无需安装)

FREQTRADE_PASSWORD=yourpassword npx @furkankoykiran/freqtrade-mcp

选项2——从npm全局安装

npm install -g @furkankoykiran/freqtrade-mcp
FREQTRADE_PASSWORD=yourpassword freqtrade-mcp

选项3——从GitHub软件包安装

npm install -g @furkankoykiran/freqtrade-mcp --registry=https://npm.pkg.github.com
FREQTRADE_PASSWORD=yourpassword freqtrade-mcp

选项4——从源代码构建

git clone https://github.com/furkankoykiran/freqtrade-mcp.git
cd freqtrade-mcp
npm install
npm run build
node build/index.js

配置

服务器完全通过环境变量配置,不需要配置文件。

变量 默认值 描述
FREQTRADE_API_URL http://127.0.0.1:8080 Freqtrade API服务器的基本URL
FREQTRADE_USERNAME Freqtrader 您的Freqtrade配置中的API用户名
FREQTRADE_PASSWORD (空) API密码- 必需的

复制 .env.example 到 .env 并填写您对当地发展的价值观。


MCP客户端安装

克劳德桌面版

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "freqtrade": {
      "command": "npx",
      "args": ["-y", "@furkankoykiran/freqtrade-mcp"],
      "env": {
        "FREQTRADE_API_URL": "http://127.0.0.1:8080",
        "FREQTRADE_USERNAME": "Freqtrader",
        "FREQTRADE_PASSWORD": "YourStrongPassword"
      }
    }
  }
}

VS代码(点击/继续)

添加到MCP服务器设置中:

{
  "freqtrade": {
    "command": "npx",
    "args": ["-y", "@furkankoykiran/freqtrade-mcp"],
    "env": {
      "FREQTRADE_API_URL": "http://127.0.0.1:8080",
      "FREQTRADE_USERNAME": "Freqtrader",
      "FREQTRADE_PASSWORD": "YourStrongPassword"
    }
  }
}

从源代码构建

{
  "freqtrade": {
    "command": "node",
    "args": ["/absolute/path/to/freqtrade-mcp/build/index.js"],
    "env": {
      "FREQTRADE_API_URL": "http://127.0.0.1:8080",
      "FREQTRADE_USERNAME": "Freqtrader",
      "FREQTRADE_PASSWORD": "YourStrongPassword"
    }
  }
}

可用工具

账户

get_profit_stats

检索当前损益统计数据:总利润、盈亏比、最佳配对、提款、交易量等。

get_balance

检索所有货币的当前账户余额,包括自由、已使用和总金额。

get_performance

检索每对交易绩效指标,包括利润和交易计数。

参数 类型 必填 说明
pair string 否 筛选到特定对(例如。 BTC/USDT)

交易

get_open_trades

检索所有当前活跃的交易,包括入场价格、当前利润、赌注金额和持续时间。

get_trade

通过ID检索特定交易的详细信息。

参数 类型 必填 说明
trade_id number 是 数字交易ID

get_trade_history

使用可选分页检索已关闭的交易历史记录。

参数 类型 必填 说明
limit number 否 要返回的最大交易数(最多500)
offset number No 分页偏移

市场数据

get_market_data

检索交易对的实时OHLCV烛台数据。

参数 类型 必填 说明
pair string Yes 交易对(例如。 BTC/USDT)
timeframe enum 是 1m, 5m, 15m, 30m, 1h, 4h, 1d等等。
limit number No 蜡烛数量(最多500支)

配对列表

get_whitelist / get_blacklist

检索当前白名单/黑名单。

add_to_blacklist

将交易对添加到黑名单中。

参数 类型 必填 说明
pair string 是 配对到黑名单(例如。 ETH/USDT)

remove_from_blacklist

从黑名单中删除交易对。

参数 类型 必填 说明
pair string 是 配对删除

交易执行

execute_trade

绕过战略信号,强行进入交易。机器人在进入后管理位置。

参数 类型 必填 说明
pair string Yes 交易对(例如。 BTC/USDT)
side long/short 是 交易方向
stake_amount number No 权益货币金额
price number No 限价(市价订单省略)
order_type limit/market 否 订单类型

自然语言示例:

  • “购买100美元比特币” → pair=BTC/USDT, side=long, stake_amount=100
  • “2000年做空ETH/USDT” → pair=ETH/USDT, side=short, price=2000

force_exit_trade

强行退出公开交易。支持完全退出和部分退出。

参数 类型 必填 说明
trade_id number Yes 要退出的交易ID
order_type limit/market 否 退出订单类型(默认:市场)
amount number No 部分退出金额

机器人生命周期

start_bot / stop_bot

启动或停止交易机器人。

reload_config

从磁盘重新加载机器人配置,而无需重新启动进程。

get_bot_info

检索机器人版本和上一个策略运行周期的时间戳。

get_locks

检索所有活动交易锁。

delete_lock

按ID删除特定交易锁。

参数 类型 必填 说明
lock_id number Yes 锁定要删除的ID

发展

# Clone and install
git clone https://github.com/furkankoykiran/freqtrade-mcp.git
cd freqtrade-mcp
npm install

# Run in development mode (auto-reloads on change)
cp .env.example .env
# Edit .env with your Freqtrade credentials
npm run dev

# Type-check
npm run typecheck

# Lint
npm run lint

# Build for production
npm run build

MCP检验员测试

npx @modelcontextprotocol/inspector node build/index.js

在Inspector UI中设置环境变量,并验证是否列出了所有15个工具。


贡献

欢迎捐款。请阅读 贡献指南 并在提交重大更改的pull请求之前打开一个问题。


许可证

麻省理工学院——见 许可证.