Codebreaker Solver
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CODEBREAKER_SESSION_COOKIE | No | Session cookie from codebreaker.xyz. Alternate to storing session.json locally. Session precedence: 1. CODEBREAKER_SESSION_COOKIE environment variable, 2. ~/.config/codebreaker-mcp/session.json |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| codebreaker_meA | Report the authenticated codebreaker.xyz user. Returns authenticated=true with username/role when the stored session cookie works, otherwise authenticated=false with instructions. |
| codebreaker_list_problemsA | List problems with status (solved/partial/attempted/not_attempted), tags, problem type, and AC counts. Your-score status requires login (scores show N/A when logged out). command: 'all' (default, sorted by #AC), 'newest', 'unsolved', or 'recommended' (both of the last two require login). Filter further with status=, tag= (include), and exclude_tags= (exclude; Joke problems are dropped by default); page with offset/limit. |
| codebreaker_get_problemA | Read a problem statement plus constraints. Statements come in two shapes: HTML problems return statement_markdown (+ best-effort samples); PDF-only problems return statement_text (pypdf extraction) and statement_pdf_path — a locally cached PDF file you can hand to a mineru MCP for deeper parsing — plus statement_pdf_url. No images are extracted. Also returns subtasks, editorials (when visible), and has_attachment (use codebreaker_get_attachment for the zip). |
| codebreaker_list_submissionsA | List submissions, optionally filtered by problem and/or user. Pass username= (from codebreaker_me) to see your own submissions; omit both filters for all submissions. 25 per page; has_next/has_previous tell you when more pages exist. |
| codebreaker_get_submissionA | Get full submission results: score, per-subtask and per-testcase verdicts (AC/WA/PS/TLE/MLE/RTE/UG/:(), times and memory, compile error if any, and the submitted code (only for your own submissions). pending=true means grading is not finished — use codebreaker_wait_submission instead of polling manually. |
| codebreaker_get_profileA | View a user's profile: name, school, role, country, and their solved problems. Useful to check your own solved set or a peer's progress. |
| codebreaker_get_attachmentA | Download a problem's attachment (a zip of input files) to a local cache and return its path. Some problems ship data files here instead of in the statement — check codebreaker_get_problem's has_attachment first. |
| codebreaker_submitA | Submit a solution for evaluation. Submissions are automatically spaced ~2s apart. Returns the submission id; call codebreaker_wait_submission on it to get verdicts. For Communication problems pass code_b (two programs are graded together). |
| codebreaker_wait_submissionA | Poll a submission until grading finishes, then return the full result (same shape as codebreaker_get_submission). Fails after timeout seconds if the grader is still running. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct resource and action: authentication, problem listing, problem details, submission listing, submission details, profile viewing, attachment download, submission creation, and waiting for grading. No two tools have overlapping purposes.
All tool names follow the codebreaker_<verb>_<noun> pattern, with 'me' as a minor exception but still clear. The verbs (list, get, submit, wait) are consistent and predictable.
9 tools is well-scoped for a competitive programming judge client, covering the full workflow without unnecessary bloat or missing essentials.
The tool surface covers the complete problem-solving lifecycle: authentication, browsing problems, reading statements, downloading attachments, submitting solutions, waiting for results, and reviewing submissions and profiles. No obvious gaps remain.