mcpField
C
Claude Context Sync

Claude Context Sync

ローカル
github.com/ybin4548AI・エージェント023 週間前に更新

Claude Context Sync について

Claude Context Sync は、並行する Claude Code セッションを調整する MCP サーバーです。セッション要約の共有、ファイルやシンボルの競合検出、セッション間のメッセージ送信に対応します。

主な機能

  1. 01構造化されたセッションコンテキストの共有
  2. 02ファイル編集の競合をリアルタイム検出
  3. 03シンボル単位の競合検出
  4. 04セッション間のメッセージ送信
  5. 05古いセッションのオンデマンド要約
  6. 06セッション終了時の追跡データ削除

活用シーン

  1. 01並行する Claude Code タスクの調整
  2. 02編集が重複して競合する前の検出
  3. 03セッション間での決定事項と変更ファイルの共有
  4. 04ターミナルを切り替えずに別セッションへコンテキストを送信

MCP 対応

Claude Code が stdio 経由でサーバーを自動起動します。6つの MCP ツールで、セッション一覧、コンテキストや変更の取得、メッセージ交換、競合解決を行えます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"claude-context-sync": {
"command": "npx",
"args": [
"-y",
"claude-context-sync"
]
}
}
}
起動コマンドnpx -y claude-context-sync

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmclaude-context-sync0.4.1

ツール

6

掲載時のツール一覧 · 3 週間前に更新

このツールにパラメーターはありません。

詳細

claude-context-sync

npm License: MIT

並行して実行される Claude Code セッション間で、コンテキストを自動的に要約して共有する MCP サーバーです。

異なるタスクで複数の Claude Code セッションを実行している場合、各セッションはほかのセッションで何が行われているか把握できません。claude-context-sync はセッションログを監視し、必要に応じて構造化された要約を生成するとともに、リアルタイムのファイル競合検出とセッション間メッセージ機能を提供します。

機能

  • セッションコンテキストの共有 — どのセッションからも、ほかのセッションが取り組んでいる内容を確認できます
  • ファイル競合の検出 — 複数のセッションが同じファイルを編集したとき、リアルタイムで通知します
  • シンボルレベルの競合 — 関数、クラス、インターフェースの編集の競合を検出します(TypeScript、Python、Swift、Go、Rust)
  • セッション間メッセージ — ターミナルを切り替えずにセッション間でメッセージを送信できます
  • 遅延評価 — ツールが呼び出されない限り、コストはかかりません
  • 自動クリーンアップ — セッション終了時に追跡データを削除します

インストール

npm install -g claude-context-sync
context-sync init

これで完了です。次回 Claude Code を開くと、MCP サーバーが自動的に起動します。init コマンドは競合検出フックも登録します。

MCP ツール

list_sessions

アクティブな Claude Code セッションと、それぞれの現在のステータス、タスクの要約、ファイル競合を返します。

get_session_context

指定したセッションの構造化された要約全体を返します。古くなっている場合は自動的に再要約します。競合情報も含まれます。

パラメーター:sessionId(string)

get_all_changes

オプションのプロジェクトフィルタリングを適用して、すべてのセッションで変更されたファイルと決定事項を返します。

パラメーター:project(string、任意)

send_message

別のセッションにメッセージを送信します。targetSessionId を省略すると、同じプロジェクト内のすべてのセッションにブロードキャストします。

パラメーター:fromSessionId(string)、message(string)、project(string)、targetSessionId(string、任意)

get_messages

セッションのメッセージ履歴を返します。

パラメーター:sessionId(string)、unreadOnly(boolean、任意)

resolve_conflicts

解決済みのファイルを競合追跡リストから削除します。

パラメーター:sessionId(string)、files(string[])

仕組み

コンテキストの共有
[Always running] Watcher: detects .jsonl changes → sets stale flag (zero cost)
                    ↓
[On tool call]   MCP Tool invoked → summarizes only stale sessions
                    ↓
                 Extractor → Generator (claude -p) → Store → Response
競合の検出
[Always running] Watcher: detects .jsonl changes
                    ↓
                 FileTracker: parses Write/Edit tool_use events
                    ↓
                 SymbolResolver: identifies enclosing function/class/type
                    ↓
                 Writes per-session touched files

[Every message]  Hook (UserPromptSubmit): checks for new conflicts
                    ↓
                 Alerts Claude once per new conflict → Claude notifies user
メッセージの送信
Session A: send_message → writes to ~/.claude/context-sync/messages/{targetId}/
                    ↓
Session B: Hook detects unread message → injects into AI context
                    ↓
           Claude reads and relays to user → marks as read

アーキテクチャ

単一の MCP サーバープロセスで動作し、別個のデーモンは不要です。Claude Code が stdio トランスポートを介して自動的に起動します。

src/
├── mcp/server.ts              # MCP server + 6 tools
├── watcher/
│   ├── watcher.ts             # File watching (chokidar)
│   ├── scheduler.ts           # Hybrid summarization strategy
│   ├── file-tracker.ts        # Real-time file edit tracking
│   └── symbol-resolver.ts     # Pattern-based symbol detection
├── summarizer/
│   ├── extractor.ts           # .jsonl parsing + stratified sampling
│   └── generator.ts           # claude -p invocation
├── messaging/
│   └── messenger.ts           # Cross-session message passing
├── store/store.ts             # Local summary cache
├── cli.ts                     # CLI (init + serve + hook registration)
└── types.ts                   # Shared types
要約の戦略
  • インクリメンタル:新しいメッセージを既存の要約に反映します(デフォルト)
  • フル:最初から再生成します(インクリメンタル更新を4回行った後)
  • 層化サンプリング:大規模なセッション(500件以上のメッセージ)では、先頭・中間・末尾をサンプリングします
  • キャッシュ済み:変更がなければ、保存済みの要約を返します(コストはかかりません)
対応言語(シンボル検出)
言語検出されるシンボル
TypeScript/JavaScriptfunction、class、interface、type、enum、const
Pythondef、class
Swiftfunc、class、struct、protocol、enum、extension
Gofunc、type(struct/interface)
Rustfn、struct、enum、trait、impl

未対応のファイル形式では、ファイルレベルの競合検出にフォールバックします。

要件

  • Node.js 20+
  • Claude Code CLI(claude コマンドが利用可能であること)
  • jq(競合検出フック用)

フィードバック

皆さまからのご意見をお待ちしています。機能のリクエストやバグ報告、claude-context-sync の使い方の共有など、ぜひお寄せください。

開発

git clone https://github.com/ybin4548/claude-context-sync.git
cd claude-context-sync
npm install
npm run build
npm test

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。