ACMP Connect
Click on "Deploy 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., "@ACMP ConnectFetch ACMP problem 564 and explain the exact constraints."
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.
ACMP Connect
A multi-user Python MCP server connecting ChatGPT to acmp.ru. ChatGPT reads the exact problem, writes the solution itself, submits it on explicit request, and checks the real judge verdict. No paid AI API is used.
Status: local implementation and live ACMP C++ submission verified. External OAuth tenant configuration and a public HTTPS deployment are still required before connecting ChatGPT. This is an independent integration, not affiliated with ACMP or OpenAI. Official directory publication is blocked by the current policy on unofficial third-party connectors; see publication notes.
Русская инструкция · ChatGPT setup · Account linking and OAuth · Railway · Test evidence · Privacy
Tools
Tool | Purpose | Scope |
| Exact statement, constraints, sections, samples and image URLs |
|
| Map topic letters to archive IDs; name search in course 1, URL for other courses |
|
| Check session and return the secure linking URL |
|
| One explicit C/C++ submission, with a durable idempotency key |
|
| Actual verdict, failing test, time, memory, compiler log when available |
|
| Recent submissions from the linked account |
|
| Associate an uncertain operation with a user-selected existing submission |
|
| Disconnect cookies or delete local user records |
|
Every MCP request requires OAuth. Public problem data does not require linking an ACMP account. Output schemas, security metadata and MCP annotations are provided by the official Python MCP SDK. Transport: stateless Streamable HTTP at /mcp.
Related MCP server: MCP Chef
Install and run
Python 3.11+:
python -m venv .venv
# Activate .venv for your shell.
python -m pip install -e '.[dev]'
python -m pytest -qCopy .env.example to a private .env and fill the OAuth and encryption settings according to AUTH.md. Never commit .env. Start from the project directory: the server loads .env from the current working directory, preserving any variables already set in the process environment.
acmp-serverAlternatively use docker compose up --build after configuring .env. The server fails closed if its mandatory configuration is missing. ACMP_DEV=1 permits HTTP only for loopback URLs, binds the direct Python server to loopback, and relaxes cookie Secure flags for local development; it does not disable authentication. Leave it at 0 for hosting.
python -m acmp_connect.mcp_server uses the same loading behavior. Docker Compose reads .env directly. Until the actual HTTPS origin is known, keep PUBLIC_URL empty; startup will reject the incomplete configuration.
CLI
The original CLI is retained:
acmp-connect task 564
# Set ACMP_LOGIN and ACMP_PASSWORD privately for this process only:
acmp-connect submit 1 solution.cpp --confirmThe CLI keeps cookies in memory. Its one-process submission tracking is simpler than the server's persistent idempotency journal; use the MCP server for multi-user operation. Never place credentials in chat, command arguments, source files or Git. C is accepted as an input language, but it is refused when the current ACMP form has no genuine C compiler. On 2026-10-16 only C++ compilers were available for C-family submissions.
Reliability and limitations
Uploads are never automatically retried. Reuse an idempotency key for the same explicit action; new keys require new user intent.
SQLite transactions serialize reservations per linked ACMP account. A crash or unknown POST outcome blocks further uploads until explicit reconciliation. No speculative resubmission is performed.
A 30-second local submission cooldown is additional to ACMP's limits. CAPTCHA, rate limits and session expiry are surfaced to the user.
Avoid simultaneous submissions through another browser/client. If multiple new rows appear, automatic attribution stops.
A single new row is confirmed only after its stored ACMP source matches the uploaded source. Inaccessible or mismatched source leaves the operation uncertain.
Verdict lookup scans at most five ACMP status pages (about 100 recent submissions). Older records may be unavailable through this tool. No global table is used to bypass ownership checks.
Compiler errors are read only after matching a submission in the linked user's status table. Missing logs remain unavailable; no judge data is invented.
Topic name discovery covers course 1 and at most 40 sections; topic resolution is capped at 60 problems. Use an exact URL for other courses or ambiguous names. ACMP HTML is not a stable official API.
A true C compiler was unavailable during live tests; C multipart selection is covered by mocks. Mobile and desktop ChatGPT access depends on product/workspace availability; only the documented web setup is claimed.
One process, one replica and one persistent SQLite volume are required. Horizontal scaling needs a shared database/locking migration.
Architecture
client.py retains the original HTTP/CLI parsing. acmp_client.py adds structured problem, topic, session and diagnostics operations. auth.py validates RS256 OAuth JWTs against an established issuer. portal.py uses OIDC authorization code + PKCE to authenticate the account-linking page. storage.py encrypts cookies and temporary browser state with Fernet and keeps a durable operation journal. service.py enforces user/account ownership and upload reservations. mcp_server.py exposes the tools and HTTP endpoints.
There is no ACMP OAuth implementation: the external identity provider authenticates the plugin user; ACMP login/password is accepted only on the authenticated connection page and immediately exchanged for cookies.
License
MIT. The original ACMP HTTP/multipart protocol code was adapted from hanglider/ACMP/tools/acmp.py; its copyright notice is preserved in LICENSE. No solution collection is included. ACMP task statements, images and third-party branding are not licensed by this repository's MIT license.
This server cannot be deployed
Maintenance
Related MCP Connectors
JusPronto is case-management software for Brazilian law firms. Its remote MCP server (OAuth 2.1 with PKCE, per-permission scopes, audit log) lets Claude and ChatGPT read the firm's own cases, deadlines, agenda, recent court movements and case files with the page cited. Write actions require the lawyer's approval. Requires a JusPronto account.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Edit your Overleaf LaTeX projects from Claude and ChatGPT; every change is a real Git commit.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables interactive LeetCode practice with AI-guided authentication, problem solving, solution submission, and learning mode.2447 npm12MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to participate in CodeChef contests by fetching problems, generating and testing solutions in a secure sandbox, and submitting answers.-
- AlicenseAqualityAmaintenanceConnects AI assistants to the Repovive competitive-programming platform, enabling them to browse problems and contests, judge and submit code for real verdicts, track ratings, communicate with users, and author verified problems and rounds.102MIT
- AlicenseAqualityCmaintenanceEnables integration with LeetCode APIs to retrieve problems, contests, solutions, and user data, support daily challenges and advanced searches, and perform authenticated actions such as running or submitting code and managing notes.997 npmMIT