
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 分