
Connects Claude to the Codeforces competitive programming platform through eight read-only API tools. You can pull user profiles and rating histories, browse recent submissions, list contests and their standings, search the problemset with optional tag filters, and view blog entries. Handles batch lookups for up to 10,000 users at once. Built on the Pipeworx gateway, so you can either connect to this standalone server or use the full gateway that includes 673+ other data sources. Useful if you're building coding interview prep tools, analyzing competitive programming trends, or just want Claude to look up contest results and problem statistics without leaving the conversation.
Public tool metadata for what this MCP can expose to an agent.
get_user_statsFetch complete user profile, rating, rank, and solve counts.1 paramsFetch complete user profile, rating, rank, and solve counts.
handlestringget_recent_activityFetch complete the most recently solved Problem , Contest , Points , Link , Tags, by the user.1 paramsFetch complete the most recently solved Problem , Contest , Points , Link , Tags, by the user.
handlestringget_tag_breakdownFetch all accepted submissions for a user and calculate how many unique problems they have solved for each topic tag (e.g., dp, math, greedy).1 paramsFetch all accepted submissions for a user and calculate how many unique problems they have solved for each topic tag (e.g., dp, math, greedy).
handlestringget_best_contest_rankFetch the user's best ever performance (highest rank) in a single Codeforces contest.1 paramsFetch the user's best ever performance (highest rank) in a single Codeforces contest.
handlestringanalyze_weak_topicsIdentify underperforming tags and suggest focus areas based on the user's lowest solve counts.1 paramsIdentify underperforming tags and suggest focus areas based on the user's lowest solve counts.
handlestringget_rating_historyFetch the user's rating changes over time, including their latest contest performances and overall rating trajectory.1 paramsFetch the user's rating changes over time, including their latest contest performances and overall rating trajectory.
handlestringget_virtual_contestSuggest custom practice virtual contests based on the user's rating, excluding ones they have already competed in.1 paramsSuggest custom practice virtual contests based on the user's rating, excluding ones they have already competed in.
handlestringget_recommend_problemsSmart problem suggestions based on the user's current rating and their weakest topic areas.1 paramsSmart problem suggestions based on the user's current rating and their weakest topic areas.
handlestringget_search_problemsSearch the Codeforces problem set by specific tags, minimum rating, and maximum rating.4 paramsSearch the Codeforces problem set by specific tags, minimum rating, and maximum rating.
limitnumbermaxRatingnumberminRatingnumbertagsarrayget_problem_statsFetch deep statistics for a specific Codeforces problem, including its rating, global solve count, and topic tags.2 paramsFetch deep statistics for a specific Codeforces problem, including its rating, global solve count, and topic tags.
contestIdnumberindexstringcompare_usersCompare two Codeforces users side-by-side, including their ratings, total solves, problem overlap, and unique solves.2 paramsCompare two Codeforces users side-by-side, including their ratings, total solves, problem overlap, and unique solves.
handle1stringhandle2stringCodeforces public read API MCP — competitive programming users, contests, problems, submissions. Keyless.
Part of Pipeworx — an MCP gateway connecting AI agents to 1476+ live data sources.
user(handles[]) — profile(s) by handle (up to 10k)user_rating(handle) — full rating history for a useruser_status(handle, count?) — recent submissions for a usercontest_list(gym?) — all contests (regular or gym)contest_standings(contest_id, handles?, from?, count?) — standings + problems for one contestproblemset(tags?, problemset_name?) — problemset + recent submissions statsrecent_actions(max_count?) — recent global actions feedblog_entry_view(blog_id) — full blog entry by idhttps://codeforces.com/api/
Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):
{
"mcpServers": {
"codeforces": {
"url": "https://gateway.pipeworx.io/codeforces/mcp"
}
}
}
tools/list at https://gateway.pipeworx.io/codeforces/mcp returns the tools in the table
above plus the shared Pipeworx meta-tools — ask_pipeworx,
discover_tools, search_within, remember/recall and the rest of the
gateway-wide set. So the tool count you see is larger than this table: a
single-pack endpoint currently lists roughly 30 shared tools alongside the
pack's own. The connection's initialize response states its exact scope, and
is the authoritative answer for a given day.
This is deliberate, not multiplexing by accident. The meta-tools are what let a
scoped connection answer a question this pack does not cover — via
ask_pipeworx, which routes across the whole catalog — without you adding a
second MCP server. There is currently no way to mount a pack endpoint without
them; if the extra schemas cost you more context than the routing is worth,
connect to the full gateway once rather than to several pack endpoints.
Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
Both URLs reach the same gateway and the same 1476+ data sources. The
only difference is which pack's tools are listed directly; ask_pipeworx
reaches all of them from either one.
Instead of calling tools directly, you can ask questions in plain English — this works on the pack endpoint above as well as on the full gateway:
ask_pipeworx({ question: "your question about Codeforces data" })
The gateway picks the right tool and fills the arguments automatically.
MIT