io.github.hummingbot/mcp
平台与服务by hummingbot
一个暴露 Hummingbot API 的 MCP server,可用于自动化多交易所交易、策略执行与账户联动。
什么是 io.github.hummingbot/mcp?
一个暴露 Hummingbot API 的 MCP server,可用于自动化多交易所交易、策略执行与账户联动。
README
MCP Hummingbot Server
An MCP (Model Context Protocol) server that enables Claude and Gemini CLI to interact with Hummingbot for automated cryptocurrency trading across multiple exchanges.
Installation & Configuration
Option 1: Using uv (Recommended for Development)
-
Install uv (if not already installed):
bashcurl -LsSf https://astral.sh/uv/install.sh | sh -
Clone and install dependencies:
bashgit clone https://github.com/hummingbot/mcp cd mcp uv sync -
Create a .env file:
bashcp .env.example .env -
Edit the .env file with your Hummingbot API credentials:
envHUMMINGBOT_API_URL=http://localhost:8000 HUMMINGBOT_USERNAME=admin HUMMINGBOT_PASSWORD=admin -
Configure in Claude Code or Gemini CLI:
json{ "mcpServers": { "hummingbot-mcp": { "type": "stdio", "command": "uv", "args": [ "--directory", "/path/to/mcp", "run", "main.py" ] } } }Note: Make sure to replace
/path/to/mcpwith the actual path to your MCP directory.
Option 2: Using Docker (Recommended for Production)
-
Create a .env file:
bashtouch .env -
Edit the .env file with your Hummingbot API credentials:
envHUMMINGBOT_API_URL=http://localhost:8000 HUMMINGBOT_USERNAME=admin HUMMINGBOT_PASSWORD=adminImportant: When running the MCP server in Docker and connecting to a Hummingbot API on your host:
- Linux: Use
--network host(see below) to allow the container to accesslocalhost:8000 - Mac/Windows: Change
HUMMINGBOT_API_URLtohttp://host.docker.internal:8000
- Linux: Use
-
Pull the Docker image:
bashdocker pull hummingbot/hummingbot-mcp:latest -
Configure in Claude Code or Gemini CLI:
For Linux (using --network host):
json{ "mcpServers": { "hummingbot-mcp": { "type": "stdio", "command": "docker", "args": [ "run", "--rm", "-i", "--network", "host", "--env-file", "/path/to/mcp/.env", "-v", "$HOME/.hummingbot_mcp:/root/.hummingbot_mcp", "hummingbot/hummingbot-mcp:latest" ] } } }For Mac/Windows:
json{ "mcpServers": { "hummingbot-mcp": { "type": "stdio", "command": "docker", "args": [ "run", "--rm", "-i", "--env-file", "/path/to/mcp/.env", "-v", "$HOME/.hummingbot_mcp:/root/.hummingbot_mcp", "hummingbot/hummingbot-mcp:latest" ] } } }(Remember to set
HUMMINGBOT_API_URL=http://host.docker.internal:8000in your.envfile)Note: Make sure to replace
/path/to/mcpwith the actual path to your MCP directory.
Cloud Deployment with Docker Compose
For cloud deployment where both Hummingbot API and MCP server run on the same server:
-
Create a .env file:
bashtouch .env -
Edit the .env file with your Hummingbot API credentials:
envHUMMINGBOT_API_URL=http://localhost:8000 HUMMINGBOT_USERNAME=admin HUMMINGBOT_PASSWORD=admin -
Create a docker-compose.yml:
yamlservices: hummingbot-api: container_name: hummingbot-api image: hummingbot/hummingbot-api:latest ports: - "8000:8000" volumes: - ./bots:/hummingbot-api/bots - /var/run/docker.sock:/var/run/docker.sock environment: - USERNAME=admin - PASSWORD=admin - BROKER_HOST=emqx - DATABASE_URL=postgresql+asyncpg://hbot:hummingbot-api@postgres:5432/hummingbot_api networks: - emqx-bridge depends_on: - postgres mcp-server: container_name: hummingbot-mcp image: hummingbot/hummingbot-mcp:latest stdin_open: true tty: true env_file: - .env environment: - HUMMINGBOT_API_URL=http://hummingbot-api:8000 depends_on: - hummingbot-api networks: - emqx-bridge # Include other services from hummingbot-api docker-compose.yml as needed emqx: container_name: hummingbot-broker image: emqx:5 restart: unless-stopped environment: - EMQX_NAME=emqx - EMQX_HOST=node1.emqx.local - EMQX_CLUSTER__DISCOVERY_STRATEGY=static - EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.local] - EMQX_LOADED_PLUGINS="emqx_recon,emqx_retainer,emqx_management,emqx_dashboard" volumes: - emqx-data:/opt/emqx/data - emqx-log:/opt/emqx/log - emqx-etc:/opt/emqx/etc ports: - "1883:1883" - "8883:8883" - "8083:8083" - "8084:8084" - "8081:8081" - "18083:18083" - "61613:61613" networks: emqx-bridge: aliases: - node1.emqx.local healthcheck: test: [ "CMD", "/opt/emqx/bin/emqx_ctl", "status" ] interval: 5s timeout: 25s retries: 5 postgres: container_name: hummingbot-postgres image: postgres:15 restart: unless-stopped environment: - POSTGRES_DB=hummingbot_api - POSTGRES_USER=hbot - POSTGRES_PASSWORD=hummingbot-api volumes: - postgres-data:/var/lib/postgresql/data ports: - "5432:5432" networks: - emqx-bridge healthcheck: test: ["CMD-SHELL", "pg_isready -U hbot -d hummingbot_api"] interval: 10s timeout: 5s retries: 5 networks: emqx-bridge: driver: bridge volumes: emqx-data: { } emqx-log: { } emqx-etc: { } postgres-data: { } -
Deploy:
bashdocker compose up -d -
Configure in Claude Code or Gemini CLI to connect to existing container:
json{ "mcpServers": { "hummingbot-mcp": { "type": "stdio", "command": "docker", "args": [ "exec", "-i", "hummingbot-mcp", "uv", "run", "main.py" ] } } }Note: Replace
hummingbot-mcpwith your actual container name. You can find the container name by running:bashdocker ps
Server Configuration
On first run, the server creates a default configuration from environment variables (or uses http://localhost:8000 with default credentials). Configuration is stored in ~/.hummingbot_mcp/server.yml.
Using the configure_server Tool
# Show the current server configuration
configure_server()
# Update the host and port
configure_server(host="192.168.1.100", port=8001)
# Update credentials
configure_server(username="admin", password="secure_password")
# Update everything at once
configure_server(
name="production",
host="prod-server",
port=8000,
username="admin",
password="secure_password"
)
Only the provided parameters are changed; omitted ones keep their current values. The client automatically reconnects after any update.
Environment Variables
The following environment variables can be set in your .env file for the MCP server:
| Variable | Default | Description |
|---|---|---|
HUMMINGBOT_API_URL | http://localhost:8000 | Initial default API server URL (used only on first run) |
HUMMINGBOT_USERNAME | admin | Initial username (used only on first run) |
HUMMINGBOT_PASSWORD | admin | Initial password (used only on first run) |
HUMMINGBOT_TIMEOUT | 30.0 | Connection timeout in seconds |
HUMMINGBOT_MAX_RETRIES | 3 | Maximum number of retry attempts |
HUMMINGBOT_RETRY_DELAY | 2.0 | Delay between retries in seconds |
HUMMINGBOT_LOG_LEVEL | INFO | Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
Note: After initial setup, use the configure_server tool to update the server connection. Environment variables are only used to create the initial default configuration.
Requirements
- Python 3.11+
- Running Hummingbot API server
- Valid Hummingbot API credentials
Available Tools
The MCP server provides tools for:
Server Management
- configure_server: View or update the active Hummingbot API server connection
- No parameters: show current server config
- Any parameters: update and reconnect
- Configuration persists in
~/.hummingbot_mcp/server.yml
Trading & Account Management
- Account management and connector setup
- Portfolio balances and distribution
- Order placement and management
- Position management
- Market data (prices, order books, candles)
- Funding rates
- Bot deployment and management
- Controller configuration
Development
To run the server in development mode:
uv run main.py
To run tests:
uv run pytest
Troubleshooting
The MCP server now provides comprehensive error messages to help diagnose connection and authentication issues:
Connection Errors
If you see error messages like:
❌ Cannot reach Hummingbot API at <url>- The API server is not running or not accessible❌ Authentication failed when connecting to Hummingbot API- Incorrect username or password❌ Failed to connect to Hummingbot API- Generic connection failure
The error messages will include:
- The exact URL being used
- Your configured username (password is masked)
- Specific suggestions on how to fix the issue
- References to tools like
configure_server
Common Solutions
-
API Not Running:
- Ensure your Hummingbot API server is running
- Verify the API is accessible at the configured URL
-
Wrong Credentials:
- Use
configure_servertool to update server credentials - Or check your
.envfile configuration
- Use
-
Wrong URL:
- Use
configure_servertool to update the server URL - For Docker on Mac/Windows, use
host.docker.internalinstead oflocalhost
- Use
-
Docker Network Issues:
- On Linux, use
--network hostin your Docker configuration - On Mac/Windows, use
host.docker.internal:8000as the API URL
- On Linux, use
Error Prevention
The MCP server will:
- Not retry on authentication failures (401 errors) - it will immediately tell you the credentials are wrong
- Retry on connection failures with helpful messages about what might be wrong
- Provide context about whether you're running in Docker and suggest appropriate fixes
- Guide you to the right tools (
configure_server) to fix issues
常见问题
io.github.hummingbot/mcp 是什么?
一个暴露 Hummingbot API 的 MCP server,可用于自动化多交易所交易、策略执行与账户联动。
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
MCP服务构建器
by alirezarezvani
从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。
✎ 帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。