项目简介
Hummingbot MCP 服务端是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在将 Hummingbot 强大的自动化加密货币交易能力暴露给大语言模型 (LLM) 客户端,如 Claude 和 Gemini CLI。通过标准化的 JSON-RPC 协议,LLM 客户端可以调用服务器提供的工具来管理交易账户、执行订单、获取市场数据以及部署和管理交易机器人,实现智能化、自动化的交易策略。
主要功能点
- 账户与连接器管理: 配置和管理多个 Hummingbot API 服务器连接,设置交易所连接器及其凭据。
- 交易与仓位管理: 支持市价单、限价单的创建、查询和取消,管理杠杆和仓位模式。
- 市场数据获取: 实时获取交易对价格、K线数据、订单簿深度和永续合约的资金费率。
- 交易机器人部署与管理: 探索、创建、修改和删除交易策略控制器及其配置,部署和监控交易机器人,并管理其运行状态。
- 会话管理与错误处理: 提供会话管理能力,并输出详细的错误信息以帮助诊断连接和认证问题。
安装步骤
选项1: 使用 'uv' (推荐开发环境)
- 安装 'uv' (如果尚未安装):
在终端运行以下命令:
curl -LsSf https://astral.sh/uv/install.sh | sh - 克隆仓库并安装依赖:
git clone https://github.com/hummingbot/mcp cd mcp uv sync - 创建 '.env' 文件:
cp .env.example .env - 编辑 '.env' 文件,填入你的 Hummingbot API 凭据:
HUMMINGBOT_API_URL=http://localhost:8000 HUMMINGBOT_USERNAME=admin HUMMINGBOT_PASSWORD=admin
选项2: 使用 Docker (推荐生产环境)
- 创建 '.env' 文件:
touch .env - 编辑 '.env' 文件,填入你的 Hummingbot API 凭据:
重要提示: 如果在 Docker 中运行 MCP 服务器,且 Hummingbot API 运行在宿主机上:HUMMINGBOT_API_URL=http://localhost:8000 HUMMINGBOT_USERNAME=admin HUMMINGBOT_PASSWORD=admin- Linux: 在运行 Docker 命令时使用 '--network host'。
- Mac/Windows: 将 'HUMMINGBOT_API_URL' 修改为 'http://host.docker.internal:8000'。
- 拉取 Docker 镜像:
后续 MCP 客户端的配置将直接启动这个 Docker 镜像。docker pull hummingbot/hummingbot-mcp:latest
服务器配置 (供MCP客户端连接)
MCP 客户端(如 Claude Code 或 Gemini CLI)需要配置 MCP 服务器的连接信息。以下是两种常见的配置方式,其中包含了 MCP 服务器的启动命令及其参数。
请将以下 JSON 配置添加到你的 MCP 客户端设置中,替换 '/path/to/mcp' 为你的 MCP 仓库实际路径,并根据你的操作系统选择合适的 Docker 配置。
示例配置 (uv 方式):
用于连接通过 'uv' 启动的 MCP 服务器。
{ "hummingbot-mcp": { "type": "stdio", "command": "uv", "args": [ "--directory", "/path/to/mcp", // 替换为 MCP 仓库的实际路径,例如 "/home/user/mcp" "run", "main.py" ] } }
参数说明:
- 'type': 连接类型,'stdio' 表示标准输入输出。
- 'command': 启动 MCP 服务器的命令,这里是 'uv'。
- 'args': 'uv' 命令的参数,'--directory' 指定 MCP 仓库路径,'run main.py' 执行主程序。
示例配置 (Docker 方式 - Linux):
用于连接在 Linux 宿主机上使用 '--network host' 启动的 Docker 版 MCP 服务器。
{ "hummingbot-mcp": { "type": "stdio", "command": "docker", "args": [ "run", "--rm", "-i", "--network", "host", "--env-file", "/path/to/mcp/.env", // 替换为 .env 文件的实际路径,例如 "/home/user/mcp/.env" "-v", "$HOME/.hummingbot_mcp:/root/.hummingbot_mcp", "hummingbot/hummingbot-mcp:latest" ] } }
参数说明:
- 'command': 启动 Docker 容器的命令,这里是 'docker'。
- 'args': 'docker run' 命令的参数,包括:
- '--rm': 容器退出时自动删除。
- '-i': 保持标准输入流开放,允许 MCP 客户端交互。
- '--network host': 允许容器访问宿主机的网络。
- '--env-file': 加载环境变量文件。
- '-v': 挂载卷,用于持久化服务器配置。
- 'hummingbot/hummingbot-mcp:latest': 使用最新版 Hummingbot MCP Docker 镜像。
示例配置 (Docker 方式 - Mac/Windows):
用于连接在 Mac/Windows 宿主机上启动的 Docker 版 MCP 服务器。
{ "hummingbot-mcp": { "type": "stdio", "command": "docker", "args": [ "run", "--rm", "-i", "--env-file", "/path/to/mcp/.env", // 替换为 .env 文件的实际路径,例如 "/c/Users/user/mcp/.env" "-v", "$HOME/.hummingbot_mcp:/root/.hummingbot_mcp", "hummingbot/hummingbot-mcp:latest" ] } }
参数说明:
- 与 Linux Docker 配置类似,但无需 '--network host'。请确保 '.env' 文件中 'HUMMINGBOT_API_URL' 设置为 'http://host.docker.internal:8000'。
示例配置 (Docker Compose 方式 - 连接已有容器):
如果已通过 Docker Compose 部署了 Hummingbot API 和 MCP 服务器,可配置客户端连接到正在运行的 'hummingbot-mcp' 容器。
{ "hummingbot-mcp": { "type": "stdio", "command": "docker", "args": [ "exec", "-i", "hummingbot-mcp", // 替换为你的 MCP 容器名称,例如 "my-hummingbot-mcp-container" "uv", "run", "main.py" ] } }
参数说明:
- 'command': 'docker' 命令。
- 'args': 'docker exec' 命令的参数,用于在运行中的 'hummingbot-mcp' 容器内执行 'uv run main.py'。
基本使用方法
一旦 MCP 客户端配置完成并连接到 Hummingbot MCP 服务器,你可以通过 LLM 客户端的对话界面来调用服务器提供的各种工具。
例如:
- 列出可用交易所: 向 LLM 提问:“列出所有支持的交易所连接器。” LLM 可能会调用 'setup_connector()' 工具并返回结果。
- 设置 Binance 连接器: 向 LLM 提问:“我想设置 Binance 连接器,需要什么凭据?” LLM 可能会调用 'setup_connector(connector='binance')'。 获取到所需凭据字段后,再提供凭据:“这是我的 Binance API Key 和 Secret Key。” LLM 可能会调用 'setup_connector(connector='binance', credentials={'binance_api_key': '...', 'binance_secret_key': '...'})'。
- 查看账户余额: 向 LLM 提问:“我的投资组合余额是多少?” LLM 可能会调用 'get_portfolio_balances()'。
- 下限价买单: 向 LLM 提问:“在 Binance 交易对 BTC-USDT 上以 60000 的价格买入 0.001 BTC。” LLM 可能会调用 'place_order(connector_name='binance', trading_pair='BTC-USDT', trade_type='BUY', amount=0.001, price=60000, order_type='LIMIT')'。
- 部署策略机器人: 向 LLM 提问:“部署一个名为 'my_spot_bot' 的交易机器人,使用 'directional_trading_strategy' 配置。” LLM 可能会调用 'deploy_bot_with_controllers(bot_name='my_spot_bot', controllers_config=['directional_trading_strategy'])'。
- 管理 API 服务器连接: 使用 'configure_api_servers' 工具来添加、修改、删除或切换默认的 Hummingbot API 服务器连接。
通过这些交互,LLM 客户端能够理解你的自然语言指令,并将其转化为对 MCP 服务器工具的调用,从而实现与 Hummingbot 的无缝交互。
信息
分类
AI与计算