Skip to content

MCP Server

BeekeeperML ships a Model Context Protocol (MCP) server that lets AI agents — Claude Code, Claude Desktop, or any MCP-compatible client — control training jobs directly without copy-pasting curl commands.

Install

Terminal window
pip install beekeeper-mcp

Or run it directly from the repo without installing:

Terminal window
cd /path/to/beekeeper
source venv/bin/activate
python -m beekeeper_mcp

Register with Claude Code

Run this once in your terminal:

Terminal window
claude mcp add beekeeper -s user \
-e BEEKEEPER_HOST=http://your-server:5000 \
-- beekeeper-mcp

If auth is enabled, add -e BEEKEEPER_API_KEY=your-api-key before --.

If beekeeper-mcp isn’t on your PATH after install, use the full path from which beekeeper-mcp.

Register with Claude Desktop

Add to ~/.claude/claude_desktop_config.json:

{
"mcpServers": {
"beekeeper": {
"command": "beekeeper-mcp",
"env": {
"BEEKEEPER_HOST": "http://your-server:5000",
"BEEKEEPER_API_KEY": "your-api-key"
}
}
}
}

Available Tools

ToolDescription
get_versionCheck MCP/server version compatibility — call this at session start
list_projectsList all projects and their status
get_projectFull project detail including current run state
get_project_instructionsPer-project agent instructions (goals, metrics, notes)
training_statusCurrent runs for a project
start_trainingStart a run, optionally specifying a branch
stop_trainingStop a specific run by ID
get_logsTail the log for a run
analyze_runSynthesized analysis of a run: TensorBoard metrics + log tail
get_statsSystem GPU/CPU/memory stats, plus GPU driver version and the max CUDA version it supports
get_capacityTraining slot capacity (total, running, available), resource load, and the same GPU platform info
list_branchesList remote branches for a project
switch_branchChange the project’s active branch
check_busyCheck if the server is busy (prefer get_capacity for new workflows)
create_projectCreate a new project, with optional output_paths for persistent artifact storage
update_projectUpdate project settings (branch, train file, TB dir, env vars, data directory, GPU management, etc.)
rename_projectRename a project; run history moves with it
delete_projectDelete a project
retry_setupRetry a failed project setup

Starting a Claude Session

Each project page has an API → Agent section with a ready-to-paste prompt. Paste it into Claude to orient the agent on the project:

You have the Beekeeper MCP server connected. Beekeeper manages ML training jobs on a remote GPU server.
Get oriented on the <project-name> project:
1. Call get_project_instructions("<project-name>") and read it fully
2. Call analyze_run("<project-name>") for current training state
3. Save key context (project name, primary metric, training goals) to your memory
4. Give me a status report: what's running, how it's performing, anything worth flagging

Per-Project Agent Instructions

Each project has an Agent Instructions field (visible in the edit page) where you can write goals, metric targets, and notes for the agent. The get_project_instructions tool returns this text, giving your agent project-specific context without you having to repeat it every session.

Example instructions:

Primary metric: mean_episode_reward (maximize)
Target: reach 500+ reward sustained over 100 episodes
Current best: 312 on branch experiment/ppo-tuning
Avoid: touching the reward shaping code in envs/custom_env.py — it's fragile
Next experiment: try reducing entropy_coef from 0.01 to 0.001