
Atomicreps
io.github.atomicreps由 GitHub 帳號 atomicreps 發布v0.1.0更新於 Oct 24, 2026
Retrieval practice in your coding agent: one short question about what you just built.
概覽
Atomicreps 是檢索練習類 MCP 伺服器,會針對編碼代理剛完成的變更向你提一道簡短選擇題,並批改你的作答。
- 可以做什麼
- 請求一次練習:取得一道關於本次工作階段變更的題目、一則提示或什麼都不給,可依主題或類型篩選,並提供後續追問的句柄。作答:送出一個選項字母,取得判定、一行說明,以及最多三個本次工作階段涉及的其他主題。查看進度:顯示摘要、技能、練習紀錄、連續天數或靜音項目。調整設定:設定頻率、固定主題、難度範圍、偏好領域、含時長的靜音,以及是否在編輯器原生對話框中提問。
- 適用情境
- 適合希望針對與 AI 編碼代理一起撰寫的程式碼做輕量間隔檢索練習、憑記憶回想變更而非重讀程式碼的開發者。在 Claude Code、Copilot、Cursor、Windsurf、Codex 或其他 MCP 用戶端中,變更檔案的任務結束後想要一道小測驗時使用。
- 執行需求
- 需要 Node 24 或更新版本,以及免費的 Atomicreps 帳戶。登入需在提供方網站輸入代碼,權杖保存在本機。伺服器以 npx 啟動的本機 stdio 程序或遠端端點執行,需要網路存取。未宣告環境變數或請求標頭。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Atomicreps,將其新增到工作區。
- 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.atomicreps%2Fatomicreps/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。
{
"mcpServers": {
"atomicreps": {
"type": "http",
"url": "https://atomicreps.com/mcp"
}
}
}README
atomicreps
[Listed on mcpservers.org] [npm]
One short question about the thing you just built. Works inside Claude Code, GitHub Copilot, Cursor, Windsurf, Codex, or any MCP client.
You describe a bug, your coding agent changes the code, and Atomic Reps asks you one multiple-choice question about that change. You answer with a letter, from memory, and the server grades it.
The two-minute demo: four bugs fixed in Claude Code, one question after each.
https://github.com/user-attachments/assets/521c1bb3-9f75-4c25-8b71-ed763de7debc
Quick start
Requires Node 24+ and a free account. On an older Node, every command prints the version it needs instead of starting.
The first run is a setup wizard:
- Pick what to practise, how often, and how hard.
- Sign in: the terminal prints a code, and you type it at atomicreps.com/connect.
- Pick your editors.
connectwrites only the entries you tick.
Then go back to work. When your agent finishes a task that changed files, the question appears after its answer:
[Claude Code fixes an N+1 query, then Atomic Reps asks a question about SQL joins]
Type the letter. The verdict comes back with a one-line explanation, and the next line names up to three other topics the session touched:
[The verdict: correct, with the explanation and the topics the session also touched]
Every run after the first opens the terminal screen: your streak, this session, your topics, mutes and rate.
Commands
Add --alpha to any command to use staging. It keeps its own token and cache,
so you can be signed in to both staging and production at once.
Plain connect writes npx -y atomicreps mcp, which always resolves to
whatever is latest at launch. connect --pin writes npx -y atomicreps@<version> mcp instead, the version this CLI is running, so an
organisation can review one exact command and commit it rather than trusting
npx to fetch the same thing twice.
Claude Code
npx atomicreps connect offers four Claude Code rows:
- Claude Code registers the server at user scope.
- …and a question at the end of each turn adds a
Stophook and aUserPromptSubmithook to~/.claude/settings.json. When Claude finishes a turn that changed files, the question prints in your terminal without Claude taking an extra turn, and the letter you type next is graded. Hooks you already have stay. - …and allow its four tools adds
rep,answer,meandsettingstopermissions.allow, so the first question does not stop on a permission prompt. - …and a Claude Code status line shows the open question under the prompt. A status line you already have keeps printing first.
Without connect, the server alone:
GitHub Copilot
npx atomicreps connect offers VS Code and Copilot CLI as rows. Without it:
Copilot in JetBrains, Visual Studio, Xcode and Eclipse reads the same entry
from its own mcp.json (Settings, then MCP). A team can
commit it as .vscode/mcp.json so every clone has it:
Copilot reads the server's instructions and calls rep when a task ends,
the same as Cursor and Codex. Approve the four tools once and they stay
approved.
Cursor, Windsurf, Codex and other clients
connect adds one entry to ~/.cursor/mcp.json or
~/.codeium/windsurf/mcp_config.json, and runs codex mcp add for Codex.
Anything already in those files stays. By hand:
Any other MCP client takes the same command: npx -y atomicreps mcp. The
"I'll set it up myself" row in connect prints it and writes nothing.
How a rep is served
When your coding agent finishes a task, it calls rep once with a few words
for what changed. The server picks one question, or nothing, and your agent
shows it to you unchanged. Reply with a letter, or ignore it.
Under the verdict, one line names up to three other things the session touched. A number asks about one of them. "Never Swift" mutes a topic permanently. "Not this topic" mutes it for thirty days. "Unmute Swift" removes the mute. "How am I doing" prints your summary.
The server enforces the pace, not the agent. It sets a minimum gap between
automatic reps, a daily cap, and mute and off. It refuses an answer typed
within seconds of the question. It never includes the answer key in a rep.
Every failure returns no rep rather than an error; doctor says why.
Tools
Handles are topic or topic.subskill (react.hooks_core). Fifty sub-skill
slugs repeat across topics, so the topic is always part of the name.
settings({ dialog: true }) asks for the letter in your editor's native
dialog instead of the chat. It blocks the turn, so it is a setting, never the
default.
Privacy
What leaves your machine on a rep call: catalog handles with small weights.
Also package, file extension and folder names the public catalog already
knows. Your agent's touched words are matched to handles on your machine;
the words themselves are never sent. An unknown package name is dropped. A
private name (@acme/react-internal) is sent as its public alias (react).
We never send your code, a file's contents, or a prompt. npx atomicreps setup prints the exact payload for your repo, before you sign in.
npx atomicreps mcp forwards each JSON-RPC message from your editor to the
Atomic Reps server with your token. The answer comes back the same way.
ATOMICREPS_API is honoured only for an Atomic Reps or loopback address,
since your token goes wherever it points. Anything else is ignored and
reported by doctor; set ATOMICREPS_UNSAFE_ORIGIN=1 to override.
Login
npx atomicreps prints a code. Type it at atomicreps.com/connect while
signed in; a forwarded link approves nothing. The token is saved in
~/.config/atomicreps/config.json (mode 0600), prefixed arep_ so secret
scanners find it. You can revoke it from your account page. logout forgets
it; logout --purge also deletes the reps and status this machine cached, then
lists every editor entry connect wrote (both channels) and removes the ones you
leave ticked.
The trust boundary, and how to report a vulnerability: SECURITY.md.
Check it yourself
dist/cli.js is built from these files and nothing else. The package has no
runtime dependencies.
To compare with what npm serves: npm pack atomicreps, then read its
dist/cli.js beside the one you just built. Everything the client sends is in
src/api.ts. Everything it reads from your repository is in src/infer.ts.
MIT.
來源:README.md,提交 ca7de9a
工具
0版本歷史
1- v0.1.0最新Oct 1, 2026
評分
已滿足適用檢查項的 85%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分