Repovive MCP Server
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., "@Repovive MCP ServerWhat contests are running this week, and what are the problems?"
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.
An MCP server that exposes the Repovive competitive-programming platform to any MCP client (Claude Desktop, Claude Code, IDE extensions, …). Built with FastMCP v3 and httpx.
It provides 93 tools, 10 resources (1 templated), and 8 prompts covering problems, contests, ratings, courses, blog posts, direct messages, notifications, mock-interview info, Vive points, account/profile management, real code submission, contest standings, production problem/contest authoring in Repovive's build editor, and a built-in local judge.
Every tool has been tested end-to-end — read/write tools against the live Repovive API,
submission verified with a real Accepted verdict, and the authoring/judge tools by
generating full contests and running every reference solution to Accepted.
Contents
Related MCP server: MCP Chef
How it works
Connect your MCP client (Claude Desktop, Claude Code, an IDE) to the server over stdio or HTTP.
Read & author — browse problems and contests, or generate and draft new ones in Repovive's build editor.
Judge locally — verify a solution against its tests with the built-in judge before anything leaves your machine.
Submit / publish — submit for a real verdict, or (with approval) publish a draft to a contest.
What you can do
Browse & read problems — list a contest's problems with full statements, constraints, I/O formats, time/memory limits, tags, and sample test cases.
Explore contests — list upcoming/ongoing/past contests, view details, check and manage your registrations, get invite links.
Submit & track — submit a solution for a real verdict, read your submission history, and pull a contest's ranking, results and announcements.
Ratings — page and filter the global leaderboard by country / name / tier.
Courses & blog — list courses and posts; manage course editors/metadata (with the right permissions).
Community — read/send direct messages, manage conversations and blocks, read and mark notifications.
Interviews & Vive — read mock-interview pricing/capacity/sessions; view Vive earn methods and create a Vive checkout link.
Account — who am I, profile, update country, search users, sign out.
Author for production — create problem drafts in Repovive's editor and fill in statement, tests, model solution, editorial and validator; generate and verify whole rounds; judge solutions locally — see Authoring.

Submitting code
repovive_submit_solution submits to POST /api/code/submit and polls until the verdict
is final — a real submission recorded on your account. Verify locally first with
repovive_judge_solution; Repovive rate-limits submissions to roughly 10 per minute.
repovive_submit_solution(contest_id="<24-hex>", problem_slug="remainder-count",
source=..., language="pypy")
# -> {"submissionId": "...", "status": "Accepted", "passed": 18, "total": 18}Language ids for submission follow the Judge0 set (python 71, pypy 220, cpp 54,
java 62, …), which differs from the problem editor's own ids — the tool maps names for
you. repovive_list_my_submissions lists your submission history.

Notes. The curated problem sets (Classics / FAANG / Quant / Math) are premium content served only through the website, so their problem lists are not available via the API —
repovive_list_problem_setsreturns their metadata and website URLs; for API-readable problems use contests (repovive_list_contest_problems). A problem like/dislike vote endpoint exists but keys on browser-URL identifiers that can't be resolved reliably from the public API, so it is intentionally not exposed.
Quick start
cd repovive-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e . # fastmcp>=3 and httpx
export REPOVIVE_EMAIL="you@example.com"
export REPOVIVE_PASSWORD="your-password"
python -m repovive_mcp # stdio transport (or: repovive-mcp)Then point your MCP client at it (see below) and try
repovive_whoami or repovive_list_contests. Prefer containers? docker compose up --build
serves the same server over HTTP on :8000 (endpoint /mcp).
Install
Requires Python ≥ 3.10.
cd repovive-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e . # installs fastmcp>=3 and httpx
# dev extras (pytest): pip install -e ".[dev]"Run it directly (stdio transport):
export REPOVIVE_EMAIL="you@example.com"
export REPOVIVE_PASSWORD="your-password"
python -m repovive_mcp # or: repovive-mcpConfigure your MCP client
Add a server entry. Example (Claude Desktop claude_desktop_config.json /
Claude Code mcp config):
{
"mcpServers": {
"repovive": {
"command": "python",
"args": ["-m", "repovive_mcp"],
"env": {
"REPOVIVE_EMAIL": "you@example.com",
"REPOVIVE_PASSWORD": "your-password"
}
}
}
}If you installed into a virtualenv, point command at that interpreter (e.g.
/path/to/.venv/bin/python) or use the repovive-mcp console script.
Tool reference
All tools are prefixed repovive_. Read tools accept response_format (markdown
default, or json) where a summary view is useful. The list below is grouped by area; the
always-current, auto-generated reference is docs/TOOLS.md.

Account & profile (7)
Tool | Description |
| Current account (id, role, premium, Vive, streaks). |
| Profile document (job role, org, socials, location). |
| Update profile country (idempotent). |
| Find users by name (for DMs). |
| Your uploaded documents. |
| Deployed build/release info (no auth). |
| Invalidate session (auto re-auth next call). |
Problems (4)
Tool | Description |
| Curated sets (Classics/FAANG/Quant/Math) + URLs. |
| All problems in a contest (summaries or full). |
| One problem: statement, constraints, limits, samples. |
| Browser URL to solve/submit a problem. |
Contests & ratings (12)
Tool | Description |
| List contests, filter by upcoming/ongoing/past. |
| One contest by number or id. |
| Your registrations & permissions. |
| Register (normal or virtual). |
| Shareable invite link. |
| Invite eligibility. |
| List collaborators (admin). |
| Grant a role (admin). |
| Revoke a role (admin). |
| Edit contest settings (admin). |
| Delete a contest (admin, destructive). |
| Global ratings leaderboard (paged/filtered). |
Standings & results (4)
Tool | Description |
| Final standings for a contest. |
| Your per-problem results in a contest. |
| Contest announcements/clarifications. |
| Submissions for one contest problem. |
Submissions (3)
Tool | Description |
| Submit a solution and await the verdict (real submission). |
| Your submission history. |
| Read a submission's status/verdict by id. |
Content — courses & blog (8)
Tool | Description |
| Blog posts (paged). |
| Blog categories. |
| Courses with your enrollment. |
| List course editors. |
| Add an editor. |
| Remove an editor (destructive). |
| Update title/description/tags. |
| Public/private (admin). |
Community — notifications & DMs (14)
Tool | Description |
| In-app notifications. |
| Unread count. |
| Mark notifications read. |
| DM conversations. |
| Messages in a conversation. |
| Send a message. |
| Start a conversation. |
| Mark a conversation read. |
| Delete a conversation (destructive). |
| Delete a message (destructive). |
| Total unread DMs. |
| Blocked users. |
| Block a user. |
| Unblock a user (destructive). |
Interviews & Vive (5)
Tool | Description |
| Mock-interview prices. |
| Interview capacity. |
| Your interview sessions. |
| Ways to earn Vive. |
| Create a Vive purchase link (no charge). |
Authoring & judge — local (11)
Tool | Description |
| Built-in problem generators. |
| Generate a complete, self-consistent problem. |
| Empty problem skeleton + field reference. |
| Validate a problem against the schema. |
| Run a solution against tests (local judge). |
| Languages the host can run. |
| Generate + validate + judge a whole contest. |
| Generators that match Repovive's published style. |
| Generate a house-style problem. |
| Check a problem against house conventions. |
| Assemble & verify a full house-style round. |
Problem editor — build sessions (25)
Tool | Description |
| List / create problem drafts. |
| Title, slug, difficulty, points, limits, tags. |
| Statement, I/O format, constraints. |
| Manage draft test cases. |
| Model & alternative solutions (language→judgeId). |
| Editorial / learn pages. |
| Input validator, custom checker. |
| Generators, gen-data, sources. |
| Generate & verify tests. |
| Push a whole generated problem into a draft. |
| Metadata+statement+tests+solution+editorial+validator in one call. |
| Delete a problem draft (destructive). |
| Publish step (explicit). |
Drafts are not visible on the platform until reviewed; publishing is the separate
repovive_build_add_to_contest call. Details in docs/AUTHORING.md.
Authoring & local judge
The server can generate complete problems, build full contests, and evaluate them with a
local judge — offline, with no writes to the live platform. Every generated problem's
expected outputs are computed by running its reference solution, so it is correct by
construction; repovive_build_contest(..., verify=True) judges every reference solution
and only reports success when all are Accepted.
repovive_build_house_round(title="Repovive Starter Round 8")
-> {round, verification: {all_passed: true, ...}} # 7 problems, house-style, all ACWhen you're ready to put a draft into Repovive's editor, the build-session tools write everything and leave publishing to you:

Verified example artifacts live in examples/ (12 problems, 4 contests). Full
details in docs/AUTHORING.md. A ready-to-use agent skill is in
skills/repovive-contest-dev/.
Repovive house style
The generators and the skill follow Repovive's measured conventions — read from all 98
published problems and 23 contests, and exposed as the repovive://house-style resource:
Problems are multi-test (every problem starts with
t), use a braced-array input format, a markdown-bullet constraints list, exactly one sample holding several sub-cases, and one explanation paragraph per sub-case. Memory limit 256 MB; time limits 1–2 s.Rounds are 7 problems (A–G) on the
500…3500points ladder with the difficulty curve easy, easy, medium, medium, medium, hard, hard, 120 minutes, tags drawn from a fixed 12-word vocabulary.
repovive_check_house_style validates a problem against these rules, and
repovive_build_house_round assembles a whole conforming round and verifies every problem.
Resources & prompts
Resources (read via URI) — 10, one templated:
repovive://me, repovive://profile, repovive://contests,
repovive://contests/{contest_id}/problems (templated), repovive://problem-sets,
repovive://leaderboard, repovive://posts, repovive://courses,
repovive://notifications, repovive://house-style.
Prompts (parameterised workflows) — 8:
solve_problem, prepare_for_contest, study_plan, analyze_leaderboard,
inbox_triage, build_repovive_round, problemset_contest, author_and_verify_problem.
Example agent session
A typical "solve a real problem" loop chains a handful of tools:
1. repovive_list_contests(status="ongoing") # find a contest id
2. repovive_list_contest_problems(contest_id=…) # pick a problem slug
3. repovive_get_problem(contest_id=…, problem_slug=…) # statement + samples
4. …write a solution…
5. repovive_judge_solution(problem=…, source=…) # local check → Accepted
6. repovive_submit_solution(contest_id=…, problem_slug=…, source=…, language="pypy")
# -> {"status": "Accepted", "passed": 18, "total": 18}
7. repovive_get_contest_ranking(contest_id=…) # see where you land
How auth works
With
REPOVIVE_EMAIL+REPOVIVE_PASSWORD, the server logs in on first use, keeping both the JWT bearer token and theauth_tokensession cookie (some routes need the cookie). It re-authenticates automatically on a 401 and caches the token (REPOVIVE_TOKEN_CACHE) to avoid login rate limits.With
REPOVIVE_TOKENonly, it uses the bearer token (cookie-gated routes may not work).The server sends a descriptive
User-Agentand standardOriginheader, exactly like any first-party API client.

Deployment
Runs over stdio (local) or HTTP (REPOVIVE_MCP_TRANSPORT=http, endpoint /mcp).
Docker, Docker Compose, Kubernetes (kustomize), Helm, OpenTofu/Terraform, Ansible, and
Vagrant paths are all provided under deploy/ and the root Docker/Vagrant files.
docker compose up --build # HTTP on :8000
# or: helm install rv deploy/helm/repovive-mcp --set credentials.email=... --set credentials.password=...
# or: kubectl apply -k deploy/kubernetes (after creating the secret)
Full guide: docs/DEPLOYMENT.md. Handy targets in the Makefile
(make help) and a Taskfile.yml for go-task
(task --list).
Project layout
repovive-mcp/
├── repovive_mcp/ the server package
│ ├── app.py shared FastMCP instance + RepoviveClient
│ ├── client.py async httpx client (login, re-auth, token cache)
│ ├── tools_*.py tool groups (account, contests, submit, build, …)
│ ├── resources.py MCP resources prompts.py MCP prompts
│ ├── authoring.py housestyle.py templates_house.py production.py local authoring
│ ├── localjudge.py Judge0-style subprocess judge
│ └── server.py registers everything; stdio or HTTP
├── scripts/gen_tools_doc.py regenerates docs/TOOLS.md from the decorators
├── diagrams/generate.py renders docs/diagrams/*.png via `diagrams`
├── docs/ architecture, tools, authoring, deployment, api map, security
├── deploy/ docker, kubernetes, helm, opentofu, ansible
├── examples/ verified problems & contests
├── skills/ repovive-contest-dev agent skill
└── tests/ smoke, offline authoring, and live e2e testsDocumentation
docs/ARCHITECTURE.md — components + diagrams
docs/TOOLS.md — full tool reference (auto-generated)
docs/AUTHORING.md — problem/contest generation + local judge
docs/DEPLOYMENT.md — Docker/K8s/Helm/OpenTofu/Ansible/Vagrant
docs/API_MAP.md — the Repovive endpoints the tools use
docs/SECURITY.md — credentials, boundaries, judge sandboxing
skills/repovive-contest-dev/ — production contest-development skill
Development & tests
pip install -e ".[dev]"
# Live tests require real credentials and are skipped without them:
REPOVIVE_EMAIL=... REPOVIVE_PASSWORD=... pytest -q
make test-offline # or: task test:offline (no credentials needed)
make docs # regenerate docs/TOOLS.md from the @mcp.tool decoratorstests/test_smoke.py boots the server in-memory (fastmcp.Client(mcp)), lists
tools/resources/prompts, and exercises representative read tools plus error handling.
docs/TOOLS.md is generated by scripts/gen_tools_doc.py (CI can enforce freshness with
--check).
Security notes
Credentials come only from environment variables — never hard-code them.
Treat the JWT/cookie as secrets; they grant access to your account. The token cache lives outside the repo (
REPOVIVE_TOKEN_CACHE, default/tmp).Write tools (submission, DMs, registration, deletes, course/contest admin) perform real actions; their annotations (
destructiveHint, etc.) let clients gate them appropriately.Authoring writes drafts; publishing a draft to a live contest is a separate, explicit call. See docs/SECURITY.md.
This server cannot be installed
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 Servers
- AlicenseAqualityDmaintenanceProvides tools for AI agents to interact with the Orange Juice Online Judge API by managing problems and code submissions. Users can list problems, retrieve detailed descriptions, submit source code, and track submission status through natural language.51MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to participate in CodeChef contests by fetching problems, generating and testing solutions in a secure sandbox, and submitting answers.
- AlicenseAqualityCmaintenanceA complete, all-in-one MCP server for Codeforces, enabling AI assistants to access user profiles, compare users, search problems, get practice recommendations, and more.8MIT
- AlicenseNot gradedqualityBmaintenanceA production-ready MCP server for GitHub and competitive programming (Codeforces) that enables AI assistants to fetch user profiles, repository stats, contest history, and personalized problem recommendations.MIT
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Git-backed platform for skills, tools, and context for AI agents
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/dwin-gharibi/repovive-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server