mcpField
C
Codeforces

Codeforces

リモート
pipeworx.io科学・教育04 日前に更新
リポジトリ公式サイト

Codeforces について

Codeforcesは、競技プログラミングの利用者や関連データを扱うアプリ向けのMCPサーバーです。キー不要の読み取り専用APIでユーザー、コンテスト、問題セット、提出、ブログなどを取得し、順位表のページ分割はサーバー側で行います。

主な機能

  1. 01ユーザープロフィールとレーティング履歴を取得
  2. 02ユーザーの最近の提出を確認
  3. 03コンテスト一覧と順位表を照会
  4. 04問題セットと最近の統計を検索
  5. 05最近のアクションとブログ記事を取得

活用シーン

  1. 01ユーザーのレーティング推移と提出を確認
  2. 02コンテストの順位表と問題一覧を調査
  3. 03タグや提出統計から問題セットを閲覧

MCP 対応

Codeforcesのユーザー、コンテスト、問題セット、提出、アクション、ブログを照会するツールをMCPクライアントに公開します。Pipeworx経由のリモート接続、またはこのパックのツールだけを提供するローカルstdio MCPサーバーとして利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/codeforces/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

@pipeworx/codeforces

Codeforces の公開読み取り API 向け MCP — 競技プログラミングのユーザー、コンテスト、問題、提出。キー不要です。

Pipeworx の一部です — AI エージェントを 1875 以上の稼働中データソースに接続する MCP ゲートウェイです。これは独立した非公式の連携機能であり、上流プロバイダーとは提携関係になく、推奨や公開を受けていません。

ツール

  • user(handles[]) — ハンドルでプロフィールを取得(最大 10k 件)
  • user_rating(handle) — ユーザーの全評価履歴
  • user_status(handle, count?) — ユーザーの最近の提出
  • contest_list(gym?) — すべてのコンテスト(通常または gym)
  • contest_standings(contest_id, handles?, from?, count?) — 1 つのコンテストの最終スコアボードと問題一覧
  • problemset(tags?, problemset_name?) — 問題セットと最近の提出統計
  • recent_actions(max_count?) — 最近の全体アクションフィード
  • blog_entry_view(blog_id) — ID でブログ記事全体を取得

順位表のページングは上流ではなく、ここで行います

Codeforces は公開順位表への from、count、handles を拒否し、HTTP 400 と "Non-gym contest standings for non-admin users are available only via anonymous GET requests with no extra parameters" を返します。受け付けられるのはパラメーターのない ?contestId=<id> だけで、スコアボード全体が返されます(コンテスト 1000 では 2.7 MB、コンテスト 2000 では 14 MB)。

そのため、contest_standings はレスポンスをストリーミングして、ここでスライスします。from/count で行をページングし、handles で絞り込みます。いずれも以前と同じ意味です。要求された範囲を超えてメモリに保持することはありません。知っておくべき点が 2 つあります。

  • handles フィルターを指定しない場合、要求した範囲が埋まるとすぐに読み取りを停止するため、レスポンスには total_rows ではなく has_more: true が含まれます。この時点では参加者数が実際に不明だからです。スコアボードの末尾を超える範囲を要求するか、handles を渡すと、total_rows が返されます。
  • Gym コンテストは利用できません。Codeforces が Gym の順位表を提供するのは、認証済みの Codeforces アカウントに限られます。このパックはキー不要のため、エラーではなく {found: false, reason: "gym_contest_requires_codeforces_account"} を返します。

データソース

https://codeforces.com/api/

クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。

{
  "mcpServers": {
    "codeforces": {
      "url": "https://gateway.pipeworx.io/codeforces/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/codeforces/mcp の tools/list は、上の表にあるツールに加えて、Pipeworx 共通のメタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できるツール群)を返します。そのため、実際に表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、パック固有のツールとともに、共通ツールがおよそ 30 個表示されます。接続の initialize レスポンスに正確な範囲が示され、その日の正式な情報となります。

これは意図的な動作であり、偶然の多重化ではありません。メタツールを使えば、このパックの対象外の質問にも、カタログ全体を横断してルーティングする ask_pipeworx を通じて回答できるため、MCP サーバーを追加する必要がありません。現時点では、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加スキーマがもたらすコンテキストのコストがルーティングの利点を上回る場合は、複数のパックのエンドポイントではなく、フルゲートウェイに一度接続してください。

または、Pipeworx のフルゲートウェイに接続して、このパックのツールだけでなく、すべてのパックのツールを一覧に表示できます。

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL も同じゲートウェイと同じ 1875 以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。ask_pipeworx を使えば、どちらからでもすべてのツールにアクセスできます。

MCP クライアントがなくても、HTTP 経由で呼び出せます

curl -X POST https://gateway.pipeworx.io/v1/tools/codeforces_user \
  -H 'Content-Type: application/json' \
  -d '{"handles":["tourist"]}'

最初の呼び出しにはアカウントは不要です。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/codeforces_user を呼び出します。ツールを検索するには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を呼び出します。

スタンドアロン(ゲートウェイアカウント不要)

このパッケージはローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイとの往復通信も不要です。

{
  "mcpServers": {
    "codeforces": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-codeforces"]
    }
  }
}

または、直接実行して起動を確認できます。

npx -y @pipeworx/mcp-codeforces

stdin/stdout 経由で MCP を使用し、initialize/tools/list/tools/call に応答します。対象はこのパックのツールのみで、上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。

ask_pipeworx を使用する

ツールを直接呼び出す代わりに、平易な英語で質問できます。これは上記のパックエンドポイントだけでなく、フルゲートウェイでも機能します。

ask_pipeworx({ question: "your question about Codeforces data" })

ゲートウェイが適切なツールを選び、引数を自動的に入力します。

詳細

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。