parecode について
parecodeは、コーディングエージェント向けにトークンを考慮したコード検索と複数ファイルのアトミック編集を提供するMCPサーバーです。検索範囲とトークン推定を返し、大規模なコードベースの調査や変更に必要なツール呼び出しを減らします。
主な機能
- 01ripgrepによる検索とコンテキスト表示
- 02一致箇所と応答のトークン数推定
- 03特定範囲の追加読み込み
- 04ファジーマッチによる複数ファイルのアトミック編集
- 05ローカルセッションとトークン節約推定の記録
活用シーン
- 01シンボルの参照箇所の追跡
- 02大規模コードベースの実装調査
- 03複数ファイルにまたがる一貫したリファクタリング
MCP 対応
MCPサーバーとして、コーディングエージェントにParecodeSearch、ParecodeExpand、ParecodeEditツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| paths | array | いいえ | 検索対象を限定するディレクトリまたはファイルのパスです。デフォルトは現在の作業ディレクトリです。 |
| pattern | any | はい | Ripgrep の正規表現パターン、または並列に振り分けるパターンの配列です。各一致では、どの入力パターンが寄与したかを 'patterns' で報告します。 |
| contextLines | number | いいえ | 一致箇所の前後に含めるコンテキスト行数です。デフォルトは 2 です。ファイル内のウィンドウ結合のしきい値も制御します。 |
| relatedSymbols | boolean | いいえ | 任意で有効化:各一致箇所の内容をスキャンし、関連する可能性のあるシンボル(Handle<X>、On<X>、<X>Handler、<X>Listener、<X>Closed/Completed/Started)を探します。一致箇所ごとに重複を除き、辞書順に並べた結果を最大 10 個返します。 |
| maxBytesPerFile | number | いいえ | ファイルごとの返却バイト数のソフト上限です。上限を超えると、一致箇所を中心に出力を分割し、省略された行を omittedLineRanges で報告します(ParecodeExpand で範囲を広げます)。 |
詳細
parecode
コーディングエージェントに、コンテキストウィンドウを考慮した検索と、安全でアトミックな複数ファイル編集を提供する MCP サーバーです。大規模なコードベースで正確性を損なうことなく、トークン使用量を削減できるように構築されています。
要件
- Node.js 20 以降(ESM、ネイティブテストランナー、安定した
fetch不要のランタイム)。 PATHに ripgrep があること(Linux/macOS ではrg、Windows ではrg.exe)。パッケージマネージャーからインストールしてください。- macOS:
brew install ripgrep - Debian/Ubuntu:
apt install ripgrep - Windows:
winget install BurntSushi.ripgrep.MSVCまたはchoco install ripgrep
- macOS:
- 対応する MCP クライアント(参照対象は Claude Code です)。
Parecode には ripgrep は同梱されていません。監査済みの単一バージョンを使い続けられるよう、システムのバイナリを呼び出します。
インストール
npm install -g parecode
純粋な JavaScript であり、ネイティブ依存関係や C/C++ ツールチェーンは必要ありません。
クイックスタート
Claude Code にサーバーを登録します。
parecode init # user scope; installs MCP + SessionStart hook + parecode-explore plugin (defaults)
parecode init --scope project # commit MCP config + hook to the repo
parecode init --no-hook # register MCP only; skip the SessionStart hook
parecode init --no-plugin # skip the parecode-explore Claude Code plugin
parecode init --print # print the equivalent command without running it
parecode init --remove-hook # remove the SessionStart hook (MCP stays registered)
parecode init --remove-plugin # uninstall the parecode-explore Claude Code plugin
SessionStart フックは各セッションの開始時に短い指示を挿入し、同等のネイティブツールよりも ParecodeSearch/ParecodeEdit を優先するよう Claude に伝えます。このフックがないと、通常は Claude のファーストパーティツールである Grep/Read/Edit がデフォルトで優先され、Parecode によるトークン削減効果が得られません。フックのペイロードは静的な文字列で、parecode hook session-start で出力できます。独自のツールを使ってセッションごとに明示的にオプトインする場合は、--no-hook を渡してください。
同梱の parecode-explore Claude Code プラグインは、読み取り専用のサブエージェント(Haiku に固定され、ParecodeSearch のみを利用)と、それに対応するスキルを追加します。これにより、探索形式の質問(「X はどこにありますか?」「Y はどのように動作しますか?」「Z の使用箇所をすべて見つけてください」)に、メインセッションでトークンを消費する代わりに、低コストで独立したコンテキストウィンドウから回答できます。init は npm でインストールされたコピーを指すローカルマーケットプレイスを登録し、claude plugin install parecode-explore@parecode を実行します。お使いの Claude Code のビルドが plugin サブコマンドに対応していない場合、この手順は警告を出してソフトフェイルしますが、init の残りの処理は成功します。プラグイン手順を完全にスキップするには --no-plugin を渡し、プラグイン手順の失敗をハードフェイルにするには --with-plugin を渡してください。
以降、どのセッションでも ParecodeSearch、ParecodeExpand、ParecodeEdit ツールを利用できます。parecode doctor を実行すると、登録状況、フックの状態、存在する場合は .codegraph/ との連携を確認できます。
機能
ParecodeSearch— ripgrep を利用した検索ツールです。1 回の呼び出しで前後のコンテキストを含む一致箇所を返し、ファイルごとのバイト単位のチャンク分割により、大量の検索結果でコンテキストがあふれるのを防ぎます。patternには単一の文字列または文字列の配列を指定できます。配列の場合は、同じpaths/contextLinesを共有して ripgrep を並列実行し、各一致箇所には、どの入力パターンが該当したかを示すpatterns: string[]フィールドが含まれます。関連キーワードのフローを追跡する際、連続して行う N 回の grep を 1 回の呼び出しに置き換えられます。- 同じファイル内で重複または隣接するウィンドウは自動的にマージされます(間隔が
contextLines以下の場合)。間をつなぐ行はディスクから読み込まれます。 - 一致箇所ごと、およびレスポンス全体の
estimatedTokensが返されるため、エージェントは結果を取得する前に自ら予算を見積もれます。 relatedSymbols: trueをオプトインで指定すると、各一致箇所で見つかった、関連するイベントフローの可能性が高い近傍(Handle<X>、On<X>、<X>Handler/Listener/Closed/Completed/Started)を最大 10 件まで表示します。- 省略された行範囲が報告されるため、ファイル全体を再読み込みせずに
ParecodeExpandで範囲を広げられます。
ParecodeExpand— 既知の(file, startLine, endLine)範囲を、任意のcontextBefore/contextAfterの余白を加えて広げます。ParecodeSearchの一致箇所に続けて使うことを想定しています。同じ形式のestimatedTokensを返すため、同じ自己予算管理のヒューリスティックを適用できます。行の位置を特定した後は、ファイル全体のReadよりこちらを優先してください。ParecodeEdit— 空白を許容するファジーマッチング(オプトインの Unicode 類似文字モードも利用可能)、編集前後のstatによる競合検出、同一ディレクトリ内でのアトミックなリネーム書き込みに対応した、複数ファイルの一括編集機能です。ファイル間の編集は並列実行されます。parecode stats— トークン節約量の推定値を記録する、ローカルの JSONL セッションログです。ネットワーク通信もテレメトリーもありません。
実測された節約効果
検索と編集を伴うタスク(呼び出し箇所の特定、複数ファイルのリファクタリング、「すべての Y に X を行う」など)では、条件を揃えた A/B テストにおいて、Parecode によりコストを約 40%、アシスタントのターン数を約 75〜83%削減できました。
| リポジトリ | タスク | コスト | ターン数 |
|---|---|---|---|
| TypeScript | シンボルのすべての呼び出し箇所を見つけ、それぞれを編集(17 箇所、8 ファイル) | −43% | −83% |
| Unity / C# | シンボルのすべての呼び出し箇所を見つけ、それぞれを編集(11 箇所、5 ファイル) | −41% | −76% |
方法:Parecode の有効時と無効時で同一のタスクを実行し、各実行で新しいセッションを使用しました。各条件で n=3、実行順は交互にし、Sonnet 4.6 を使用しました。節約効果は、多数の Grep / Read / Edit の往復を単一の ParecodeSearch / ParecodeEdit 呼び出しにまとめることで得られます。そのため、検索や複数ファイルへの展開が多いタスクほど効果が大きく、単一ファイルのタスクや推論が中心のタスクでは効果がほぼなくなります。これらはセッションごとに実測したトークン数とコストであり、以下のスキャンに記載されている推定値ではありません。
過去の節約効果をスキャン
Parecode をもっと早くインストールしていたら、どれほど節約できたか気になりますか?過去の Claude Code セッションをスキャンできます。
parecode stats --retroactive --since 30d
出力例:
Parecode — last 30d (retroactive scan)
─────────────────────
Sessions: 42
Tool calls: 156
Calls batched (est): 89
Tokens saved (est): 1,200,000
* Note: Retroactive savings are estimated, not measured.
プライバシーに関する注意: このスキャンは、Claude Code のセッショントランスクリプト(~/.claude/projects/**)を対象に、すべてローカルで実行されます。デフォルトでは、構造化フィールド(ツール名、パス、パターン、トークン数)のみを解析します。データがネットワーク経由で送信されることはありません。ツールの入出力を読み取る --include-content フラグは、明示的に指定した場合のみ有効になり、使用時には目立つ形で警告されます。
プライバシー
Parecode は実行時にネットワーク通信を一切行いません。セッションログは、OS のデータディレクトリ(env-paths で解決)に Unix では 0600 のアクセス許可で書き込まれます。ログは自動管理されます。サーバーの起動ごとに、30 日より古いセッションデータが削除され、エンベロープログは 5 MB に制限されます。より早く削除するには parecode prune <days> を実行するか、データディレクトリを消去してください。parecode update を実行して、最新リリースに更新し、フック/プラグインを更新してください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。