codabench-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@codabench-mcpsearch for competitions about natural language processing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
codabench-mcp
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.
Features
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)
Related MCP server: kaggle-mcp
Authentication
You need a Codabench API token. Two ways to get one:
1. Swagger UI (recommended)
Find the
api-token-authendpoint → Try it outPOST your username/password
Copy the
tokenvalue from the response
2. curl
curl -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": "..."}.
Install
uvx codabench-mcpTo run the bleeding-edge main branch instead of the last release:
uvx --from git+https://github.com/harshitAgr/codabench-mcp codabench-mcpOr for development:
git clone https://github.com/harshitAgr/codabench-mcp.git
cd codabench-mcp
uv sync
uv run codabench-mcp # requires CODABENCH_API_TOKENConfigure an MCP client
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"codabench": {
"command": "uvx",
"args": ["codabench-mcp"],
"env": {
"CODABENCH_API_TOKEN": "paste-your-token-here"
}
}
}
}Claude Code (plugin marketplace)
/plugin marketplace add harshitAgr/codabench-mcp
/plugin install codabench-mcp@codabench-mcpThen export your token in the shell where you launch Claude Code:
export CODABENCH_API_TOKEN=paste-your-token-hereClaude Code (manual)
If you'd rather skip the plugin layer:
claude mcp add codabench \
--env CODABENCH_API_TOKEN=paste-your-token-here \
-- uvx codabench-mcpEnvironment variables
Variable | Required | Default | Purpose |
| yes | — | DRF token, sent as |
| no |
| Override for tests |
| no |
| Set to |
| no |
| Cap for |
Development
uv sync
uv run pytest # unit tests, no network
uv run ruff check . # lint
uv run ruff format --check . # format checkLicense
MIT — see LICENSE.
mcp-name: io.github.harshitAgr/codabench-mcp
Available Tools
16 toolscodabench_requestA
Generic Codabench REST escape hatch. Use when no curated tool fits. Path must start with '/api/'. By default only GET/HEAD/OPTIONS are allowed; start the server with CODABENCH_ALLOW_WRITE_RAW=1 to permit POST/PUT/PATCH/DELETE.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | ||
| path | Yes | ||
| params | No | ||
| body | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses default allowed methods and requirement for enabling writes, but does not mention authentication, rate limits, error handling, or response details. Output schema exists, partially mitigating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each adding value, with the purpose front-loaded. No redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While output schema exists and constraints are covered, the description lacks guidance on parameter usage, error handling, and authentication. For a generic tool with 4 parameters and no parameter descriptions, more detail is needed for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 4 parameters with 0% description coverage. Description only implies method and path usage, but does not explain 'params' or 'body' fields, leaving their meaning unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'Generic Codabench REST escape hatch' and distinguishes itself from specialized siblings by saying 'Use when no curated tool fits.' The verb and resource are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('use when no curated tool fits'), provides a constraint ('Path must start with /api/'), and explains default method restrictions and how to enable write methods via environment variable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_datasetA
Download a Codabench dataset/bundle to a local absolute path. Streams directly to disk and returns the SHA-256. Refuses to overwrite unless overwrite=True.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| dest_path | Yes | ||
| overwrite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: streaming directly to disk, returning SHA-256, and refusal to overwrite unless specified. Since no annotations are provided, this covers the main safety and operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the action and then adding key behavioral details without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description covers the main purpose and key behaviors. It lacks information about error handling, retry behavior, or what the SHA-256 is computed over, but is still fairly complete for a download tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds some meaning but insufficiently. It implies 'key' is an identifier and mentions 'overwrite', but does not explain the format or constraints for 'key' and 'dest_path'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Download a Codabench dataset/bundle to a local absolute path', specifying the action and resource. However, it does not clarify what the 'key' parameter represents exactly, leaving some ambiguity for the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about the overwrite behavior but does not offer explicit guidance on when to use this tool versus alternatives (e.g., other Codabench tools like 'get_task' or 'get_competition') or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_competitionB
Get full details of a single Codabench competition.
| Name | Required | Description | Default |
|---|---|---|---|
| competition_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states 'Get full details', implying a read operation, but fails to disclose potential behaviors such as authentication requirements, rate limits, or data size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no extraneous content. It is front-loaded with the essential purpose, though it could be slightly expanded to include parameter context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, no annotations, output schema exists), the description is mostly adequate but lacks parameter explanation, which is critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter (competition_id) with 0% schema description coverage. The description does not explain what the parameter represents or how to obtain it, leaving a significant gap for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and identifies the resource 'full details of a single Codabench competition', clearly distinguishing it from sibling tools like search_competitions or list_competition_phases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you need full details of a specific competition, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_competition_rulesA
Get a competition's rules, terms, evaluation criteria, and any other descriptive pages concatenated into a single markdown string.
| Name | Required | Description | Default |
|---|---|---|---|
| competition_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses concatenation into markdown but omits behavioral details like whether the operation is read-only, caching behavior, or authentication requirements. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, immediately conveying the tool's purpose and output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and an output schema exists (so return value is documented elsewhere), the description covers the main purpose and output format. Minor gap: no mention of parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should add meaning to the sole parameter 'competition_id'. However, it only mentions 'a competition's rules' without explaining what the integer represents or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves competition rules, terms, evaluation criteria, and other descriptive pages, specifying the output as a single markdown string. This distinguishes it from sibling tools like get_competition or get_phase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., get_competition for metadata) or when not to use it. Given the many sibling tools, explicit context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leaderboardC
Get the leaderboard for a phase.
| Name | Required | Description | Default |
|---|---|---|---|
| phase_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as data freshness, sorting, limits, or authentication requirements. The tool's behavior beyond fetching is completely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose with no unnecessary words. It is as concise as possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is insufficient. It fails to explain what the leaderboard data contains, how to interpret results, or any context about phases. A tool with this complexity requires more detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter (phase_id) with zero description coverage. The description does not explain what phase_id represents or how to obtain it, leaving the agent with no semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Get' and the resource 'leaderboard for a phase', which clearly identifies the tool's function. It is distinct from sibling tools as no other tool mentions leaderboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, when not to, or what prerequisites are needed. The description only states the action without any contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_profileA
Get the authenticated user's Codabench profile.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, or whether it is a read-only operation. For a simple read tool, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is direct and front-loaded. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so the description does not need to detail return values. The description is minimal but sufficient for a simple profile retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%. With no parameters, the description adds no additional meaning, but the baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'authenticated user's Codabench profile'. This distinguishes it from sibling tools that fetch competitions, submissions, etc. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The tool is self-explanatory as it retrieves the current user's profile, but there is no mention of when to use it over alternatives or any prerequisites. Given the context, a score of 3 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_phaseC
Get full details of a single phase.
| Name | Required | Description | Default |
|---|---|---|---|
| phase_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must bear full burden. It does not disclose side effects, authorization needs, or rate limits. Simply states retrieval, which is implied by the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is appropriately short (6 words) and front-loaded with the verb and resource. No unnecessary information, but lacks parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. However, the description does not explain what a phase is or how it relates to other entities, and parameter coverage is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning parameters are not described anywhere. The description fails to explain that phase_id is required or clarify its purpose beyond the schema title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get full details of a single phase' with a specific verb and resource. However, it does not differentiate from sibling tools like get_task, which could cause ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as get_competition or list_competition_phases. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_submissionC
Get full details of a submission including scores.
| Name | Required | Description | Default |
|---|---|---|---|
| submission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It indicates a read operation ('Get'), but lacks details on authentication, rate limits, or any side effects. The brevity leaves the agent uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is appropriately concise and front-loaded, though it sacrifices detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description gives a hint of output content ('including scores') but does not elaborate on the return structure. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (description does not mention the parameter). The description adds no meaning to the sole parameter 'submission_id'; the agent must infer its purpose from the tool name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get) and the resource (submission) including scores. It is specific enough to convey the tool's function, but does not differentiate from sibling tools like get_submission_logs or poll_submission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_submission_logsC
Get stdout/stderr/ingestion logs for a submission.
| Name | Required | Description | Default |
|---|---|---|---|
| submission_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states it 'gets' logs, implying a read operation. It does not disclose important traits like data volume, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. However, it lacks structure (e.g., bullet points) and could be slightly more informative without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values are covered. However, the description lacks context about what 'ingestion logs' entails, when to use, and prerequisites. It is too minimal for a tool with no annotations and one required parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter with 0% description coverage. The description adds no additional meaning beyond the parameter name ('submission_id') and the vague context 'for a submission'. It fails to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves logs (stdout/stderr/ingestion) for a submission, using the verb 'Get' and specific resource. It effectively distinguishes from siblings like 'get_submission' (metadata) and 'poll_submission' (status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., 'get_submission', 'poll_submission'). No exclusions or context are provided, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskB
Get full details of a single task, including dataset keys.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates this is a retrieval operation, but does not explicitly state that no modifications occur or mention any restrictions. However, for a simple get operation, the transparency is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is front-loaded but could benefit from additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown), which reduces the burden on the description. The mention of 'dataset keys' adds value. However, a slightly more detailed description of return fields or scope would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description does not add any meaning to the single parameter 'task_id' beyond its type. It fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'full details of a single task', and specifies the inclusion of 'dataset keys', which adds helpful detail. It distinguishes from the sibling tool 'list_competition_tasks' which is for listing multiple tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives like 'list_competition_tasks'. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_competition_phasesC
List all phases of a Codabench competition.
| Name | Required | Description | Default |
|---|---|---|---|
| competition_id | Yes | ||
| max_pages | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but does not. The presence of a pagination parameter ('max_pages') is not explained, nor are error conditions or ordering of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) but sacrifices necessary detail. It could be more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a pagination parameter and sibling tools, the description lacks completeness. It does not mention pagination behavior, expected output size, or error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning beyond parameter names. 'competition_id' is trivial; 'max_pages' is not explained, leaving the agent to infer its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the resource (all phases of a Codabench competition). It distinguishes from sibling tools like 'get_phase' by indicating plural collection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_phase'. There is no mention of when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_competition_tasksC
List all tasks attached to a Codabench competition.
| Name | Required | Description | Default |
|---|---|---|---|
| competition_id | Yes | ||
| max_pages | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states the action and resource, omitting details about pagination (max_pages), read-only nature, or required prerequisites (valid competition_id).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence, 8 words) but omits necessary context. While it is front-loaded, it could be restructured into two sentences to clarify parameters and default behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of two parameters (one with a default for pagination) and an output schema, the description is incomplete. It does not explain the role of max_pages or that results are paginated, which is critical for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should explain the parameters. It does not describe 'competition_id' (required, integer) or 'max_pages' (default 10, integer), adding no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'tasks attached to a Codabench competition'. It is specific and distinguishes from sibling tools like 'get_task' (single task) and 'list_competition_phases' (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_task' or 'list_competition_phases'. The description does not mention any context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_submissionsB
List the authenticated user's submissions, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| phase | No | ||
| page_size | No | ||
| max_pages | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions ordering ('newest first') but omits details like pagination behavior, rate limits, or read-only nature. Minimal disclosure beyond what is obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy, but it is too brief for the information needed. Still, it earns its place and is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with output schema present, description lacks essential details: pagination limits, default values effect (page_size=20, max_pages=10), and phase filtering behavior. Incomplete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and description does not explain any of the three parameters (phase, page_size, max_pages). Schema itself has no descriptions, so agent has no clue what these parameters do.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'list the authenticated user's submissions' with 'newest first' ordering, using specific verb and resource. Distinguishes from siblings like get_submission (single) and poll_submission (polling).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates it's for the authenticated user's own submissions, which helps avoid confusion with get_leaderboard or search_competitions. No explicit alternatives or when-not-to-use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_submissionA
Poll a submission until it reaches a terminal state (finished/failed/cancelled) or timeout_seconds elapses. Returns the final submission record, or {status: 'still_running'} on timeout — the agent can choose to poll again.
| Name | Required | Description | Default |
|---|---|---|---|
| submission_id | Yes | ||
| timeout_seconds | No | ||
| interval_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description explains the polling loop, timeout, return values, and re-polling option. It does not disclose potential side effects or rate limits, but the behavior is well-specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with all essential information, front-loaded, no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description covers the polling behavior and return values. It could mention rate limits or idempotency but is sufficient for a polling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'submission_id', 'timeout_seconds', and 'interval_seconds' implicitly but could be more explicit about interval.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool polls a submission until a terminal state, specifying the verb 'poll' and the resource 'submission'. It distinguishes from siblings like 'get_submission' by describing polling behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to wait for completion) and suggests polling again on timeout. It does not explicitly compare to alternatives but provides sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_competitionsC
Search public Codabench competitions. Auto-paginates up to max_pages.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| public | No | ||
| page_size | No | ||
| max_pages | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description is the sole source. It discloses auto-pagination up to max_pages, but lacks details on rate limits, read-only nature, or error behavior. Minimal transparency beyond the stated behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded. However, it is too minimal for a 4-parameter tool, missing important details that could be added without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no parameter descriptions, and an output schema not shown, the description leaves many gaps. It fails to explain the search query format, the role of the 'public' flag, or pagination behavior beyond max_pages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description only indirectly mentions max_pages. It does not explain 'q' (search query), 'public', or 'page_size' meaning beyond their names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search public Codabench competitions' with a specific verb and resource. It adds the nuance of 'public' and mentions auto-pagination, but does not differentiate from sibling tools like 'get_competition' or 'list_competition_phases'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of when not to use it or which sibling tools cover different cases (e.g., getting a specific competition).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_to_phaseB
Submit a zipped model bundle to a competition phase. Performs Codabench's 3-step upload: POST /api/data/, PUT to signed URL, PUT /api/data/upload_completed/, POST /api/submissions/.
| Name | Required | Description | Default |
|---|---|---|---|
| phase_id | Yes | ||
| bundle_path | Yes | ||
| description | No | ||
| task_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the 3-step upload process, which is valuable. However, it does not mention authentication requirements, error handling, or what the output contains, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the purpose, and includes only essential details about the process. Every sentence serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, multi-step process) and the presence of an output schema, the description is incomplete. It lacks parameter explanations, error scenarios, and a description of the output. An output schema exists but is not referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It does not mention what 'phase_id', 'bundle_path', 'description', or 'task_ids' mean, relying solely on parameter names. This is a critical omission.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Submit') and resource ('zipped model bundle to a competition phase'), and distinguishes it from sibling tools by detailing the specific 3-step upload process, which is unique to this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, such as when to use other submission-related tools like 'get_submission' or 'list_my_submissions'. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
16 tool updates
v0.1.1- First observed
codabench_request - First observed
download_dataset - First observed
get_competition - First observed
get_competition_rules - First observed
get_leaderboard - First observed
get_my_profile - First observed
get_phase - First observed
get_submission - First observed
get_submission_logs - First observed
get_task - First observed
list_competition_phases - First observed
list_competition_tasks - First observed
list_my_submissions - First observed
poll_submission - First observed
search_competitions - First observed
submit_to_phase
TDQS
Each tool targets a distinct resource or action (competitions, phases, tasks, submissions, datasets, profile), and the generic escape hatch is clearly marked for edge cases. No two tools overlap in purpose.
Most tools follow a consistent verb_noun pattern (e.g., 'get_competition', 'list_phase', 'submit_to_phase'). The only outlier is 'codabench_request', which uses a different convention, but it's a single exception.
16 tools are well-scoped for a Codabench API wrapper, covering all common participant operations without being excessive. Each tool addresses a specific need.
The tool set covers the full participant workflow (browsing competitions, submitting, polling, downloading datasets, checking leaderboards) and includes a generic escape hatch for missing operations. Minor administrative actions (e.g., managing teams) are absent but not core to the domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP Server for an Agent Task Marketplace
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
AlicenseAqualityBmaintenanceMCP server that gives AI coding agents direct access to evaluation tools.22Apache 2.0- AlicenseBqualityDmaintenanceA full-featured MCP server for the Kaggle API — competitions, datasets, kernels, models, benchmarks, and discussions.513MIT

AgentMark MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceMCP server for AgentMark. Exposes the full AgentMark API to AI editors: list traces and spans, manage datasets, write scores, run experiments, manage apps, deployments, environments, and annotation queues.352AGPL 3.0- AlicenseBqualityCmaintenanceA local MCP server that exposes the SAIR Competition Public API as tools for MCP clients, enabling account introspection, competition browsing, submissions, playground operations, cheatsheet management, and Contributor Network interactions.48MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/harshitAgr/codabench-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server