atomicreps について
atomicrepsは、コーディングエージェントによるコード変更について短い選択式の質問を出し、回答を採点するMCPサーバーです。トピックや出題頻度を設定でき、Claude Code、GitHub Copilot、Cursor、Windsurf、CodexなどのMCPクライアントで使えます。
主な機能
- 01完了したコード変更について出題
- 02選択式回答と解説
- 03トピック、難易度、頻度の設定
- 04トピックのミュートと進捗概要
- 05コマンドラインでMCPクライアントを設定
活用シーン
- 01コーディングエージェントのタスク後に修正内容を復習
- 02セッションで扱ったトピックを振り返る
- 03連続記録とセッションの進捗を確認
MCP 対応
エディターは `npx atomicreps mcp` をstdioのMCPサーバーとして起動します。ツールを通じて、質問の取得、回答の送信、進捗確認、設定変更ができます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://atomicreps.com/mcpclaude mcp add --transport http atomicreps-atomicreps https://atomicreps.com/mcp{"mcpServers":{"atomicreps-atomicreps":{"type":"http","url":"https://atomicreps.com/mcp"}}}Cursor で開く{"servers":{"atomicreps-atomicreps":{"type":"http","url":"https://atomicreps.com/mcp"}}}VS Code で開く{"mcpServers":{"atomicreps-atomicreps":{"type":"http","url":"https://atomicreps.com/mcp"}}}{"mcpServers":{"atomicreps-atomicreps":{"serverUrl":"https://atomicreps.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
atomicreps
たった今作ったものについての、短い質問を1つ。Claude Code、GitHub Copilot、Cursor、Windsurf、Codex、または任意の MCP クライアントで動作します。
バグを説明すると、コーディングエージェントがコードを変更し、Atomic Reps がその変更について選択式の質問を1つ出します。記憶を頼りに文字で回答すると、サーバーが採点します。
2分間のデモ:Claude Code で4つのバグを修正し、それぞれの後に1問出題します。
https://github.com/user-attachments/assets/521c1bb3-9f75-4c25-8b71-ed763de7debc
クイックスタート
Node 24 以降と無料アカウントが必要です。古い Node では、どのコマンドも起動せず、必要なバージョンを表示します。
npx atomicreps
初回起動時にセットアップウィザードが表示されます。
- 練習する内容、頻度、難易度を選びます。
- サインインします。ターミナルにコードが表示されるので、atomicreps.com/connect に入力します。
- エディターを選びます。
connectはチェックした項目だけを書き込みます。
その後、作業に戻ります。エージェントがファイルを変更するタスクを完了すると、回答の後に質問が表示されます。

文字で回答します。正誤判定と1行の説明が表示され、次の行にはセッションで扱われた他のトピックが最大3つ表示されます。

初回以降の実行では、毎回ターミナル画面が開きます。連続記録、今回のセッション、トピック、ミュート、頻度を確認できます。
コマンド
npx atomicreps the terminal screen; the setup wizard on the first run
npx atomicreps setup the setup wizard again: areas, topics, how often, how hard
npx atomicreps login sign in from a browser with a typed code
npx atomicreps connect register the server with your editor
npx atomicreps connect --pin pin the launch args to this installed version, for a command you can commit
npx atomicreps mcp the stdio MCP server process (what the editor launches)
npx atomicreps doctor token, server ping, version, when the next rep may come, allowlist
npx atomicreps why the last ten times a question could have appeared, and why it did or did not
npx atomicreps logout forget the token on this machine
npx atomicreps logout --purge also forget your reps and status, and offer to undo connect
任意のコマンドに --alpha を追加すると、ステージング環境を使用します。トークンとキャッシュは本番環境とは別なので、ステージングと本番環境の両方に同時にサインインできます。
通常の connect は npx -y atomicreps mcp を書き込みます。起動時に常に最新のバージョンが解決されます。一方、connect --pin は、この CLI が実行しているバージョンの npx -y atomicreps@<version> mcp を書き込みます。これにより、組織は特定のコマンドをレビューしてコミットでき、npx が同じものを2回取得することを信頼せずに済みます。
Claude Code
npx atomicreps connect には、Claude Code 用の項目が4つあります。
- Claude Code は、ユーザースコープでサーバーを登録します。
- …各ターンの最後に質問を追加 は、
~/.claude/settings.jsonにStopフックとUserPromptSubmitフックを追加します。Claude がファイルを変更するターンを完了すると、Claude が余分なターンを実行することなく、ターミナルに質問が表示されます。次に入力した文字が採点されます。すでに設定しているフックはそのまま残ります。 - …4つのツールを許可 は、
rep、answer、me、settingsをpermissions.allowに追加するため、最初の質問で権限確認が表示されません。 - …Claude Code のステータスライン は、プロンプトの下に未回答の質問を表示します。すでに設定しているステータスラインがある場合は、その表示が先に出ます。
connect を使わず、サーバーだけを設定する場合:
claude mcp add --scope user atomicreps -- npx -y atomicreps mcp
GitHub Copilot
npx atomicreps connect には、VS Code と Copilot CLI の項目があります。使わない場合:
code --add-mcp '{"name":"atomicreps","type":"stdio","command":"npx","args":["-y","atomicreps","mcp"]}'
copilot mcp add atomicreps -- npx -y atomicreps mcp
JetBrains、Visual Studio、Xcode、Eclipse の Copilot は、それぞれの mcp.json(設定、次に MCP)から同じエントリを読み込みます。チームで .vscode/mcp.json としてコミットすれば、すべてのクローンで利用できます。
{
"servers": {
"atomicreps": { "type": "stdio", "command": "npx", "args": ["-y", "atomicreps", "mcp"] }
}
}
Copilot はサーバーの指示を読み込み、Cursor や Codex と同じように、タスクの終了時に rep を呼び出します。4つのツールを一度承認すれば、以降も承認済みのままになります。
Cursor、Windsurf、Codex、その他のクライアント
connect は ~/.cursor/mcp.json または ~/.codeium/windsurf/mcp_config.json にエントリを1つ追加し、Codex では codex mcp add を実行します。これらのファイルにすでにある内容はそのまま残ります。手動で設定する場合:
codex mcp add atomicreps -- npx -y atomicreps mcp
{
"mcpServers": {
"atomicreps": { "command": "npx", "args": ["-y", "atomicreps", "mcp"] }
}
}
その他の MCP クライアントでも、同じコマンドを使います:npx -y atomicreps mcp。connect の「自分で設定する」項目は、このコマンドを表示し、何も書き込みません。
rep の提供方法
コーディングエージェントがタスクを完了すると、変更内容を数語で説明して rep を一度呼び出します。サーバーは質問を1つ、または何も選ばず、エージェントはそれを変更せずに表示します。文字で回答するか、無視してください。
判定の下には、セッションで触れた他の項目が最大3つ、1行で表示されます。数字を入力すると、そのうち1つについて質問できます。「Never Swift」はトピックを永久にミュートします。「Not this topic」は30日間ミュートします。「Unmute Swift」でミュートを解除します。 「How am I doing」と入力すると、概要が表示されます。
ペースを制御するのはエージェントではなく、サーバーです。自動 rep の最小間隔、1日の上限、ミュート、オフを設定できます。質問を受け取ってから数秒以内に入力された回答は受け付けません。rep に解答は含まれません。失敗した場合はエラーではなく、rep が返されません。理由は doctor で確認できます。
ツール
| ツール | 内容 |
|---|---|
rep({ touched?, ask?, topic?, kind?, exclude? }) | 質問、インサイト、または何も返しません。ask には提示された項目のハンドルを指定します |
answer({ pick, id? }) | 判定、説明、提示項目の行を返します |
me({ show? }) | summary、skills、reps、streak、mutes を表示します |
settings({ intensity?, topics?, levels?, prefer?, mute?, muteMinutes?, days?, unmute?, dialog? }) | 頻度、固定するトピック、難易度の範囲、優先する領域、ミュート、ダイアログを設定します |
ハンドルは topic または topic.subskill(react.hooks_core)です。50個のサブスキルのスラッグは複数のトピックで重複するため、名前には必ずトピックが含まれます。
settings({ dialog: true }) を設定すると、チャットではなくエディターのネイティブダイアログで文字の入力を求めます。ターンをブロックするため、これは設定であり、デフォルトではありません。
プライバシー
rep の呼び出しでマシンから送信されるもの:小さな重みが付いたカタログのハンドル。
また、公開カタログにすでに登録されているパッケージ名、ファイル拡張子、フォルダー名も送信されます。エージェントの touched の語句はマシン上でハンドルと照合され、語句自体が送信されることはありません。不明なパッケージ名は破棄されます。プライベートな名前(@acme/react-internal)は、公開エイリアス(react)として送信されます。
コード、ファイルの内容、プロンプトを送信することはありません。npx atomicreps setup を実行すると、サインイン前にリポジトリ向けの正確なペイロードが表示されます。
npx atomicreps mcp は、エディターからの各 JSON-RPC メッセージをトークンとともに Atomic Reps サーバーへ転送します。回答も同じ経路で返されます。
ATOMICREPS_API が有効になるのは Atomic Reps またはループバックアドレスの場合だけです。トークンは指定先へ送られるためです。それ以外は無視され、doctor で報告されます。上書きするには ATOMICREPS_UNSAFE_ORIGIN=1 を設定してください。
ログイン
npx atomicreps を実行するとコードが表示されます。サインインした状態で atomicreps.com/connect に入力してください。転送されたリンクを使っても承認されません。トークンは ~/.config/atomicreps/config.json(モード 0600)に保存され、シークレットスキャナーで検出できるよう、先頭に arep_ が付けられます。アカウントページからトークンを失効できます。logout はトークンを削除します。logout --purge は、このマシンにキャッシュされた rep とステータスも削除し、connect が書き込んだすべてのエディター項目(両方のチャネル)を一覧表示して、チェックを残した項目を削除します。
信頼境界と脆弱性の報告方法については、SECURITY.md を参照してください。
自分で確認する
dist/cli.js は、これらのファイルだけからビルドされます。パッケージには実行時依存関係がありません。
npm install
npm run build # writes dist/cli.js from src
npm test # the behaviour described above, as tests
npm で配布されている内容と比較するには、npm pack atomicreps を実行し、dist/cli.js とビルドしたばかりのファイルを並べて確認してください。クライアントが送信する内容はすべて src/api.ts にあります。リポジトリから読み取る内容はすべて src/infer.ts にあります。
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。