Architecture
Condor runs two MCP servers:| Server | Purpose |
|---|---|
| hummingbot-mcp | Trading operations via Hummingbot API (27 tools) |
| condor-mcp | Local operations: notifications, routines, journals (9 tools) |
Hummingbot MCP Tools
Account Management
| Tool | Description |
|---|---|
setup_connector() | Add/remove exchange API credentials |
configure_server() | Switch between Hummingbot API servers |
Portfolio & Holdings
| Tool | Description |
|---|---|
get_portfolio_overview() | Unified view: balances, positions, LP, orders |
Trading Operations
| Tool | Description |
|---|---|
set_account_position_mode_and_leverage() | Configure perpetual trading settings |
search_history() | Query historical orders, positions, LP |
get_market_data() | Prices, candles, funding rates, order books |
Executor Management
The primary trading interface for agents:| Tool | Description |
|---|---|
manage_executors() | Create, search, stop trading executors |
order_executor- Single limit/market ordersposition_executor- Directional trades with triple barriergrid_executor- Multi-level grid tradingdca_executor- Dollar-cost averaginglp_executor- Liquidity provision
create, search, stop, get_logs
Bot Management
For advanced multi-strategy deployments:| Tool | Description |
|---|---|
manage_bots() | Deploy and control controller-based bots |
manage_controllers() | CRUD operations on controller templates |
Gateway (DEX Trading)
| Tool | Description |
|---|---|
explore_dex_pools() | Discover CLMM pools with filtering |
manage_gateway_swaps() | Execute DEX swaps |
manage_gateway_clmm() | Manage CLMM liquidity positions |
manage_gateway_container() | Control Gateway Docker container |
Market Intelligence
| Tool | Description |
|---|---|
explore_geckoterminal() | Free market data: networks, pools, OHLCV |
Condor MCP Tools
Notifications
| Tool | Description |
|---|---|
send_notification() | Send Telegram messages (Markdown/HTML) |
Routine Management
| Tool | Description |
|---|---|
manage_routines() | Discover, run, create, edit routines |
Trading Agent Operations
| Tool | Description |
|---|---|
manage_trading_agent() | Strategy CRUD, agent lifecycle (start/stop/pause) |
trading_agent_journal_read() | Read journal: recent entries, learnings, state |
trading_agent_journal_write() | Write to journal: actions, learnings, state |
Utilities
| Tool | Description |
|---|---|
manage_servers() | List accessible API servers |
get_user_context() | Current user info, active server, permissions |
manage_notes() | Key-value persistent storage |
Progressive Disclosure
Many tools support step-by-step discovery:Configuration
Server Settings
MCP servers read configuration from environment variables or~/.hummingbot_mcp/server.yml:
| Variable | Default | Description |
|---|---|---|
HUMMINGBOT_API_URL | http://localhost:8000 | API server URL |
HUMMINGBOT_USERNAME | admin | API username |
HUMMINGBOT_PASSWORD | admin | API password |
HUMMINGBOT_TIMEOUT | 30.0 | Request timeout (seconds) |
HUMMINGBOT_MAX_RETRIES | 3 | Retry attempts |
Runtime Configuration
Agents can switch servers at runtime:Error Handling
MCP servers provide contextual error messages:- Connection errors: Suggests checking server URL and Docker networking
- Auth errors: Prompts to verify credentials via
configure_server() - Validation errors: Shows required fields and valid values
Running MCP Servers
MCP servers are started automatically when agents launch via ACP. For manual testing:Adding Custom Tools
To add tools to an MCP server, create a function with the@mcp.tool() decorator:
server.py:

