Wraps the Codabench REST API so Claude can participate in ML competitions end to end. You get tools to search competitions, read rules and task specs, download datasets with streaming and SHA-256 verification, submit solutions through Codabench's three-step upload flow, poll submission status with backoff, and check leaderboards. Authentication uses a Codabench API token you grab from their Swagger UI or via curl. The generic codabench_request tool is locked to GET by default but you can flip CODABENCH_ALLOW_WRITE_RAW if you need it. Useful when you want Claude to explore benchmarks, prototype submissions, or iterate on a competition without leaving the chat.
MCP server for the Codabench REST API. Lets an AI agent drive a full participant ML-benchmark workflow: discover competitions, read rules, download data, submit, poll, read leaderboards.
Curated tools for the participant path:
search_competitions, get_competition, list_competition_phases,
get_phase, get_competition_rules, list_competition_tasks, get_taskdownload_dataset (streaming + SHA-256)list_my_submissions, get_submission, get_submission_logssubmit_to_phase (handles Codabench's 3-step upload flow)poll_submission (backoff + timeout + non-error "still_running")get_leaderboard, get_my_profilecodabench_request — generic REST escape hatch (GET-only by default)You need a Codabench API token. Two ways to get one:
api-token-auth endpoint → Try it outtoken value from the responsecurl -X POST https://www.codabench.org/api/api-token-auth/ \
-H "Content-Type: application/json" \
-d '{"username":"YOUR_USERNAME","password":"YOUR_PASSWORD"}'
The response is {"token": "..."}.
uvx codabench-mcp
To run the bleeding-edge main branch instead of the last release:
uvx --from git+https://github.com/harshitAgr/codabench-mcp codabench-mcp
Or for development:
git clone https://github.com/harshitAgr/codabench-mcp.git
cd codabench-mcp
uv sync
uv run codabench-mcp # requires CODABENCH_API_TOKEN
claude_desktop_config.json){
"mcpServers": {
"codabench": {
"command": "uvx",
"args": ["codabench-mcp"],
"env": {
"CODABENCH_API_TOKEN": "paste-your-token-here"
}
}
}
}
/plugin marketplace add harshitAgr/codabench-mcp
/plugin install codabench-mcp@codabench-mcp
Then export your token in the shell where you launch Claude Code:
export CODABENCH_API_TOKEN=paste-your-token-here
If you'd rather skip the plugin layer:
claude mcp add codabench \
--env CODABENCH_API_TOKEN=paste-your-token-here \
-- uvx codabench-mcp
| Variable | Required | Default | Purpose |
|---|---|---|---|
CODABENCH_API_TOKEN | yes | — | DRF token, sent as Authorization: Token <token> |
CODABENCH_BASE_URL | no | https://www.codabench.org | Override for tests |
CODABENCH_ALLOW_WRITE_RAW | no | 0 | Set to 1 to allow non-GET methods through codabench_request |
CODABENCH_MAX_DOWNLOAD_BYTES | no | 5368709120 (5 GB) | Cap for download_dataset |
uv sync
uv run pytest # unit tests, no network
uv run ruff check . # lint
uv run ruff format --check . # format check
MIT — see LICENSE.
mcp-name: io.github.harshitAgr/codabench-mcp
CODABENCH_API_TOKEN*secretDRF token for Codabench. Obtain via https://www.codabench.org/api/docs/ > api-token-auth > Try it out.
makafeli/n8n-workflow-builder
danishashko/make-mcp
lukisch/n8n-manager-mcp
io.github.us-all/airflow
io.github.infoinlet-marketplace/mcp-workflow