mcpField
R
Rekindle

Rekindle

ローカル
github.com/Skitchyメモリ・ナレッジ5今日更新

Rekindle について

Rekindleは、Claude Codeユーザー向けのローカルMCPサーバーで、記憶、チェックポイント、圧縮前のキャプチャをSQLiteに保存します。セッション開始時にプロジェクトのコンテキストを整理し、終了時やコンテキスト圧縮前に次回に必要な情報を記録します。

主な機能

  1. 01起動時にオリエンテーションレポートを生成
  2. 02終了時に構造化チェックポイントを記録
  3. 03圧縮前にセッション内容をキャプチャ
  4. 04重要度順の記憶検索と管理
  5. 05コンテキストの不足を検知して評価

活用シーン

  1. 01セッションをまたいだプロジェクト作業の再開
  2. 02圧縮前の推論や未完了タスクの保存
  3. 03プロジェクト別の設定や履歴の検索
  4. 04起動時の不足情報や古い情報の発見

MCP 対応

RekindleはローカルMCPサーバーとして動作し、セッションのオリエンテーション、記憶の検索と管理、チェックポイント、キャプチャの読み取りをMCPクライアントに提供します。READMEにはClaude Code、Claude Desktop、Cursorの設定例があります。

設定

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

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

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

パッケージ
npmrekindle0.5.0

ツール

10

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

パラメーター型必須説明
contentstringはい保存するメモリの内容です。プレーンテキストで、長さの制限はありません。後で周囲のコンテキストなしにこのメモリだけが取得される場合があるため、内容はそれだけで完結している必要があります。
categoryenumいいえメモリーのカテゴリです。方向付けにおけるメモリーの重みを決定します。“preference”と“relationship”は方向付けスコアに影響します。“context”はチェックポイントとセッション引き継ぎに使用します。“lesson”は制約と警告に使用します。“general”はデフォルトの包括カテゴリです。preference | lesson | context | relationship | general
importancenumberいいえ重要度スコアは 1(低)から 10(重大)までです。重要度の高いメモリは検索結果で先に表示されます。制約はデフォルトで 9、チェックポイントは 8、一般的なメモは 5 です。
projectstringいいえこのメモリーの対象範囲を指定するプロジェクト名です。設定すると、boot_reportで方向付けをこのプロジェクトに絞り込めます。複数プロジェクトにまたがるメモリーでは省略してください。

詳細

Rekindle

npm CI license Glama score

毎回のセッションでプロジェクトのコンテキストを説明し直すことに時間を取られている Claude Code ユーザー向けです。

npx rekindle init

AI はセッションが終わるたびにすべてを忘れてしまいます。Rekindle がその問題を解決します。


Rekindle 初期化デモ

Rekindle は、単なる保存ではなく、セッションのオリエンテーションを解決する MCP 継続性エンジンです。セッション開始時に状況を把握し、終了時に記録し、セッション途中のコンパクションにも対応します。すべてローカルで、すべて SQLite を使用し、API キーは不要です。

v0.4.1 — --global によるフック設定が ~/.claude/settings.json に保存されるようになりました。このファイルは Claude Code がすべてのプロジェクトで適用するものです(#25 を修正)。初期化の出力もこの README と一致しました。リリースノート

クイックスタート

Node.js 22 以降が必要です。

npx rekindle init

これにより、SQLite データベース、アイデンティティテンプレート、継続性ポリシー、プロジェクトレジストリ、キャプチャディレクトリ、トランスクリプトディレクトリを含む .rekindle/ がプロジェクト内に作成されます。次に、クライアント用の MCP サーバー設定を追加します。

Claude Code

次のコマンドでサーバーを登録できます。

claude mcp add rekindle -- npx -y rekindle

または、手動で ~/.claude.json に追加します。

{
  "mcpServers": {
    "rekindle": {
      "command": "npx",
      "args": ["-y", "rekindle"]
    }
  }
}

PreCompact による保護を有効にします(セッション途中のコンパクション前にコンテキストをキャプチャします)。

npx rekindle setup-hooks

セッション開始時のオリエンテーション配信を有効にします。予算内に収めたオリエンテーションパケットが、起動時、再開時、/clear、/compact の実行時に自動的に届くため、モデルは指示されなくてもコンテキストの境界ごとに再オリエンテーションします。

npx rekindle setup-delivery

どちらのフックもオプトインです。通常の init では、どちらもインストールされません。npx rekindle init --with-hooks --with-delivery を実行すると、すべてを一度に設定できます。

--global を指定しない場合、どちらのコマンドもプロジェクトローカルの .claude/settings.local.json に書き込むため、フックはそのディレクトリで開始したセッションにのみ実行されます。--global を指定すると、ユーザースコープの ~/.claude/settings.json に書き込まれ、Claude Code がマシン上のすべてのプロジェクトで適用します。フックが実行される場所でサーバーを利用できるよう、同じスコープでサーバーを登録してください。claude mcp add --scope user rekindle -- npx -y rekindle を実行します(通常の claude mcp add は現在のプロジェクトに限られます)。

セッション開始時の配信では、.rekindle/projects.json を通じてフックの実際の作業ディレクトリを解決します。デフォルトではルートが完全一致する場合にのみ一致します。入れ子のディレクトリは、エントリで "include_descendants": true が設定されている場合にのみ継承します。ワークスペースが未登録または曖昧な場合は UNKNOWN PROJECT として報告され、別のプロジェクトのチェックポイントやコンテキストレコードが配信されることはありません。REKINDLE_PROJECT は引き続き明示的な上書きとして使用でき、レシートにはどの解決ルールが適用されたかが記録されます。

.rekindle/policy.json では、トランスクリプトの処理、起動時のバイト予算、必須および任意のパケットセクションを設定します。必須セクションは一体として扱われます。収まらない場合、Rekindle は不完全なアンカーの代わりに、サイズを制限した失敗マニフェストを出力します。任意のセクションは全体が省略され、レシートに記録されます。"transcript_mode": "excluded" を設定すると、SessionStart がトランスクリプトファイルやパスを読み込まなくなり、オリエンテーションスコアでトランスクリプトの網羅性が N/A として表示されます。"background_writes_allowed": false を設定すると、自動の PreCompact フックはキャプチャを作成せずに終了します。手動キャプチャは独立した明示的な操作として引き続き利用できます。

Claude Desktop

claude_desktop_config.json に追加します(macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\)。

{
  "mcpServers": {
    "rekindle": {
      "command": "npx",
      "args": ["-y", "rekindle"]
    }
  }
}
Cursor

プロジェクトルートの .cursor/mcp.json に追加します。

{
  "mcpServers": {
    "rekindle": {
      "command": "npx",
      "args": ["-y", "rekindle"]
    }
  }
}

次に、.rekindle/identity.md を記入し、起動手順をプロジェクトの CLAUDE.md に貼り付けます。

セッション 1 は保存します。セッション 2 は記憶します。セッション 10 は先を見越します。


問題(43 セッションのデータ)

43 セッションにわたり、AI アシスタントがセッション開始時に読み込めなかった情報を測定しました。

指標値
分析したセッション数43
正常に起動したセッション(すべてのコンテキストを読み込み済み)33%
重要な情報の読み込み失敗(5 件以上の欠落)26%
情報取得の失敗総数173

既存のメモリーツール(Mem0、Letta、Zep)は、情報の取得精度、つまり AI が保存した情報を見つけられるかどうかを最適化します。これは必要ですが、それだけでは不十分です。どのツールも、このセッションに適したコンテキストを AI が読み込んだか、また読み落とした情報を検知できるかには対応していません。

Rekindle はセッションのオリエンテーションを解決します。アシスタントが作業を開始する前に、アイデンティティ、最近のコンテキスト、メモリーの健全性、コンテキストの欠落に関する警告を読み込みます。

完全な調査データセットについては、docs/gap-analysis.md を参照してください。


機能

起動:セッション開始時にオリエンテーション

boot_report は、作業開始前にオリエンテーションパイプラインを実行します。

boot_report
  +-- Read identity document (who am I working with?)
  +-- Scan memory stats (what do I know?)
  +-- Find latest checkpoint (where did we leave off?)
  +-- Read last transcript (what actually happened?)
  +-- Surface open loops (what needs follow-up?)
  +-- Surface PreCompact captures (what survived compaction?)
  +-- Detect gaps (what am I missing?)
  +-- Calculate orientation score (how oriented am I?)
  --> "Carrying forward: [context loaded, gaps identified, score: 80/100]"
長いセッション中盤を乗り切る:PreCompact による記録(v0.3)

セッション中のコンパクションにより、推論の連鎖、失敗したアプローチ、関係性の細やかなニュアンス、口調が失われます。PreCompact フックはコンパクションの前に自動で実行され、本来なら失われる情報を保存します:

PreCompact hook fires
  +-- Parse JSONL transcript (last N messages)
  +-- Write raw Markdown capture (.rekindle/captures/)
  +-- Write structured JSON snapshot (decisions, open loops, files)
  +-- Update manifest for cheap listing
  --> boot_report surfaces captures on next session start
  --> end_session warns if captures exist but weren't reviewed

3 種類の読み取りモードでトークンコストを調整できます:

  • summary — 1 段落で簡潔
  • structured — 決定事項/未完了事項/警告を含み、中程度
  • raw — トランスクリプトの抜粋全文。コスト高(必要な場合のみ)
記録:セッション終了時に作業を締めくくる

end_session は、単なる要約ではなく、構造化された継続記録を保存します:

フィールド記録する内容
checkpoint中断した箇所(必須)
decisions決定した内容とその理由
open_loops未解決のタスクや質問
constraints違反してはならない制約
relational_delta作業上の関係に生じた変化
next_session_focus次のセッションで再開する箇所
preferences新たに把握したユーザーの好み
warnings次のセッションで注意すべきこと

すべての記録は、type、source、session_id のメタデータとともに保存されます。次回の boot_report では、チェックポイントが自動的に読み込まれます。

セッション間:検索と管理
ツール説明
store_memory内容、カテゴリ、重要度(1~10)、プロジェクトの範囲を指定して保存します
search_memory重要度による重み付けを加えた BM25 ランキングで全文検索します
list_memories新しい順にメモリを閲覧します。カテゴリまたはプロジェクトで絞り込めます
delete_memoryID を指定して削除します
update_memory内容、カテゴリ、重要度を更新します
list_capturesPreCompact の記録を一覧表示します(セッションで絞り込むこともできます)
read_capturesummary、structured、raw のいずれかのモードで記録を読み取ります
capture_now必要に応じて、現在のセッションのコンテキストを手動で記録します

カテゴリ: preference lesson context relationship general


なぜ単に CLAUDE.md を使わないのか?

静的ファイルは受動的です。AI は読み取れますが、検索、ランキング、取得済み情報の追跡、不足情報の通知はできません。Rekindle は次の機能を追加します:

  • 検索 — 重要度で重み付けしたランキングによる全文検索
  • 構造化 — メモリをカテゴリやプロジェクトごとに整理
  • 状況把握 — 必要に応じた取得だけでなく、起動時にコンテキストを先回りして読み込み
  • 不足の検出 — 未登録のアイデンティティ、空のカテゴリ、古いデータを検出
  • スコアリング — 透明性の高いチェックリストにより、AI がどれだけ状況を把握しているかを確認
  • セッションの記録 — チェックポイント、決定事項、未完了事項を構造化してセッションを締めくくる
  • コンパクション後も維持 — PreCompact の記録により、要約で平板化される情報を保持

リリースの主な変更点

v0.4.1

  • --global フックがすべての場所で実行されます — setup-hooks --global、setup-delivery --global、init --global --with-* は、Claude Code がホームディレクトリで開始されたセッションでのみ読み込む ~/.claude/settings.local.json ではなく、~/.claude/settings.json(ユーザースコープ)に書き込むようになりました(#25)。プロジェクト単位のセットアップに変更はありません。各コマンドは書き込み先のファイルを表示します
  • 未解決のワークスペースに関する警告で修正方法を案内 — セッション開始時のパケットでワークスペースをプロジェクトに対応付けられない場合、チェックポイントが読み込まれなかったことと、2 つの解決方法が表示されるようになりました。読み込まれたレジストリ(プロジェクトストアの場合は .rekindle/projects.json、--global ストアの場合は ~/.rekindle/projects.json)にワークスペースを追加するか、REKINDLE_PROJECT を設定してください。警告にレジストリの絶対パスは表示されません
  • init の出力をこの README に合わせて更新 — init は claude mcp add rekindle -- npx -y rekindle(--global の場合は claude mcp add --scope user ...。これにより、サーバーはグローバルフックが実行される場所で登録されます)を最初に表示し、オプトイン可能な 2 つのフック(使用時は --global 付き)を一覧表示し、--global の場合は ~/.rekindle/... のパスを表示します

v0.4.0

  • Node.js 22以降が必要です — Node 20は2026年4月にサポート終了を迎え、現在はサポート対象外です。CIはNode 22、24、26で実行されます
  • ポリシーを考慮したセッション開始 — .rekindle/policy.json で、トランスクリプトの処理(transcript_mode: captured、tail-read-only、excluded)、起動時のバイト予算、必須または任意のパケットセクション、バックグラウンドフックによる書き込みの可否(background_writes_allowed)を制御します
  • プロジェクトごとに安全に配信 — .rekindle/projects.json でワークスペースをプロジェクトにマッピングします。マッピングされていないワークスペースや曖昧なワークスペースは UNKNOWN PROJECT として報告され、別のプロジェクトのチェックポイントが渡されることはありません。REKINDLE_PROJECT で明示的に上書きできます
  • テールモードではトランスクリプトのファイル名を非表示 — tail-read-only モードではパケットにトランスクリプトの末尾部分を表示しますが、ファイル名は表示しません
  • セッション書き込みをアトミックに実行 — セッションの行と監査の行は、同時にコミットされるか、どちらもコミットされません
  • 本番環境の監査で問題なし — npm audit --omit=dev では脆弱性がゼロ件でした(本番依存関係)
  • パッケージを縮小 — npmのtarballは約1.9 MBから約110 KBに縮小されます。証拠と設計ドキュメントはGitHubに残ります

v0.3.3

  • プロトコルメタデータのバージョン整合性 — MCPの初期化応答では、同梱されたパッケージメタデータからバージョンを取得し、リリースバージョンのずれを防ぎます
  • パッケージページの正確性 — npmに同梱されるREADMEには、タグとパッケージの作成前に現行リリースが記載されます
  • 自動テストを拡充し、MCPメタデータとインストール済みパッケージのバージョンを比較するパック済みアーティファクトのチェックを追加

v0.3.2

  • ワンコマンドで配信をセットアップ — npx rekindle setup-delivery(または init --with-delivery)でSessionStartフックのオプトインを設定します。冪等で、ほかのツールのフックを保持し、破損した設定ファイルがある場合は処理を拒否します
  • 自動テスト147件

v0.3.1 — 「5つの測定済みゲート」

  • セッション開始時の配信 — rekindle session-start は、起動時、再開時、/clear、/compact の実行時に、SessionStartフックを通じてバイト予算に収まるオリエンテーションパケットを出力します
  • 予算内のパケットと、誠実な受領情報 — パケットは有効なUTF-8で8,000バイトを上限とし、パケット内に切り詰めマーカーを含めます。受領情報が証明するのは出力されたことだけであり、モデルに表示されたとは決して主張しません
  • デスクトップでも安全なストレージ — ストレージのルートは起動元のパスから決して導出されません(Claude DesktopはMCPサーバーを/で起動します)。解決順序を明示し、解決できない場合はエラーにします
  • デュアルチャネルのガイダンス — ワークフローのガイダンスはツールの説明とMCPの指示の両方に含まれ、構造上、内容が食い違うことはありません
  • Cursorアダプター — session-start --client cursor はstdinをホワイトリスト方式で解析します。メールアドレスとワークスペースのパスが受領情報に含まれることはありません
  • 仮定ではなく測定に基づく — 上記の各主張は、公開された測定結果(証拠、スパイクの結果)によって裏付けられています

**v0.3.0 — 「長い中盤を乗り切る」**では、PreCompactキャプチャシステム、未完了項目、レビュー追跡を追加しました — v0.3.0リリースノート


CLI コマンド

コマンド説明
npx rekindle init現在のディレクトリに .rekindle/ をセットアップします
npx rekindle init --globalホームディレクトリにセットアップします。フックは ~/.claude/settings.json に追加されます
npx rekindle init --with-hooks初期化し、PreCompact キャプチャーフックを設定します
npx rekindle init --with-delivery初期化し、SessionStart 配信フックを設定します
npx rekindle setup-hooksPreCompact キャプチャーフックを設定します(単独)
npx rekindle setup-deliverySessionStart 配信フックを設定します(単独)
npx rekindle session-start予算内に収めたオリエンテーションパケットを出力します(SessionStart フック)
npx rekindle session-start --client cursor同じ内容を Cursor のフック応答形式で出力します
npx rekindle precompact-capture圧縮前にコンテキストをキャプチャーします(フック)
npx rekindle capture-now現在のセッションのコンテキストを手動でキャプチャーします
npx rekindleMCP サーバーを起動します(Claude Code で使用)

ソースからインストール

git clone https://github.com/Skitchy/rekindle.git
cd rekindle
npm install
npm run build
node dist/init/cli.js init
PreCompact フックの設定

setup-hooks コマンドは、これを .claude/settings.local.json に書き込みます(--global を指定した場合は ~/.claude/settings.json)。

{
  "hooks": {
    "PreCompact": [
      {
        "matcher": "auto",
        "hooks": [
          {
            "type": "command",
            "command": "npx rekindle precompact-capture",
            "timeout": 60
          }
        ]
      },
      {
        "matcher": "manual",
        "hooks": [
          {
            "type": "command",
            "command": "npx rekindle precompact-capture",
            "timeout": 60
          }
        ]
      }
    ]
  }
}

フックは標準入力でセッションコンテキスト(session_id、transcript_path、cwd、hook_event_name)を受け取り、キャプチャーを .rekindle/captures/ に書き込みます。

変数デフォルト説明
REKINDLE_PRECOMPACT_MAX_MESSAGES80キャプチャーするメッセージの最大数
REKINDLE_PRECOMPACT_MAX_CHARS120000キャプチャーする文字数の上限
REKINDLE_BASE_DIR解決済み(下記参照).rekindle/ のベースディレクトリ

ストレージルートの解決。 すべての Rekindle エントリーポイント(サーバー、PreCompact フック)は、以下のルールを順番に適用して、.rekindle/ を格納するディレクトリを解決します。

  1. REKINDLE_BASE_DIR が設定されている場合 — 常に明示的な指定が優先されます
  2. REKINDLE_DB_PATH が正規の <base>/.rekindle/db/ 構成を指している場合、そこから導出します
  3. 現在の作業ディレクトリに .rekindle/ が存在する場合(cwd がファイルシステムのルートである場合を除く)
  4. ホームディレクトリに .rekindle/ が存在する場合
  5. それ以外の場合はホームディレクトリです。起動元は使用しません

ルール 3 と 5 があるのは、一部のホスト(例:Claude Desktop)が cwd=/ で MCP サーバーを起動するためです。起動元はストレージの場所ではありません。ストレージを作成できない場合、サーバーはスタックトレースではなく、修正方法を示すメッセージを出力して終了します。

プライバシーとセキュリティ
  • すべてのデータはローカルに保存されます。 外部サーバーには何も送信されません。
  • ネットワーク通信はありません。 MCP サーバーは標準入出力経由で通信します。HTTP、テレメトリー、分析機能はありません。
  • トランスクリプトには会話テキストが含まれます。 セッションに秘密情報や認証情報が含まれる場合は、トランスクリプトのキャプチャーを有効にしないでください。
  • フックのインストールはオプトインです。 キャプチャーフック(setup-hooks)と配信フック(setup-delivery)は、コマンドまたはフラグで明示的に要求する必要があります。通常の init では、どちらのフックもインストールされません。
  • SQLite データベースは通常のファイルです。 暗号化されていません。必要に応じて、OS レベルのディスク暗号化を使用してください。
  • .rekindle/ は Git で無視されます。 init コマンドが自動的に設定します。
  • boot_report はローカルファイルを読み取ります。 パスはサンドボックス化されません。信頼できる MCP クライアントとプロンプトでのみ使用してください。
## 互換性

「完全な配信」とは、セッション境界でオリエンテーションパケットが自動的に届き、モデルがそれを実際に認識していることを指します。これは想定ではなく、受信レイヤーとモデルレイヤーの両方でカナリアプローブを用いて測定しています。詳細とエビデンスについては、互換性スパイクの結果をご覧ください。

クライアント環境MCP ツールセッション開始時の配信
Claude Code ターミナル(macOS)テスト済み完全な配信を測定済み(起動、再開、/clear、/compact)
Claude Code ターミナル(Windows)テスト済み完全な配信を測定済み
Claude Code ターミナル(Linux/WSL2)テスト済みフックチャネルは同一。配信測定は保留中
Claude Desktop、Code サーフェステスト済み完全な配信を測定済み(/clear では新しいセッションの起動を通じて再配信)
Claude Desktop、チャットサーフェステスト済みツールモードのみ:クライアントがフックをサポートしていないため、モデルのツール検索からガイダンスを利用できます
Cursorテスト済み.cursor/hooks.json 経由で測定済み(下記参照)
任意の MCP stdio クライアント互換クライアントのフックサポートに依存します
Claude Code:セッション開始時のオリエンテーション(オプトイン)
npx rekindle setup-delivery

これを .claude/settings.local.json(または --global を指定した場合は ~/.claude/settings.json)に書き込みます:

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|resume|clear|compact",
        "hooks": [
          { "type": "command", "command": "npx rekindle session-start", "timeout": 60 }
        ]
      }
    ]
  }
}

パケットの上限は有効な UTF-8 で 8,000 バイトです。測定の結果、フックの出力がホストの上限を超えると、エラーが表示されないまま、モデルには先頭部分だけが届きます。予算に収めるためにセクションが削除された場合は、パケット内のマーカーでその旨を示し、.rekindle/receipts/session-start.jsonl の受信記録には、モデルが認識したと主張することなく、実際に出力された内容が正確に記録されます。

Cursor:セッション開始時のオリエンテーション(オプトイン)

Cursor のフックシステムは、予算内に収めたオリエンテーションパケットをセッション開始時に配信できます。v0.3.1 の互換性スパイクで、動作を測定済みです。セットアップは手動で、オプトイン方式です。Rekindle は、依頼がない限りフックをインストールしません。プロジェクトの .cursor/hooks.json に次の内容を追加してください:

{
  "version": 1,
  "hooks": {
    "sessionStart": [ { "command": "rekindle session-start --client cursor" } ]
  }
}

プライバシー: Cursor のフックペイロードには、アカウントのメールアドレスとワークスペースのパスが含まれます。アダプターは、このペイロードをデフォルトで個人情報として扱います。抽出するのはセッション ID とワークスペースのルートのみ(ストレージ解決のためプロセス内で使用)で、生のペイロード、メールアドレス、パスが受信記録やその他の成果物に書き込まれることはありません。バックグラウンドエージェントはデフォルトで除外されます(受信記録にもその旨が正確に記録されます)。REKINDLE_ORIENT_BACKGROUND_AGENTS=1 でオプトインできます。

アーキテクチャ
rekindle/
  src/
    index.ts          MCP server entry point
    server.ts         Server setup, tool registration (10 tools)
    storage/
      sqlite.ts       SQLite + FTS5, schema migration, sessions
    orientation/
      types.ts        OrientationResult, Gap, ScoreItem
      GapDetector.ts  Structural gap detection (8 codes)
      Scorer.ts       Orientation scoring (6 criteria, 100pts)
      OrientationService.ts   Orchestrator
      OrientationRenderer.ts  Markdown + JSON output
    captures/
      types.ts        CaptureEntry, StructuredSnapshot, HookInput
      CaptureManager.ts   Parse, capture, list, read, review tracking
      discover-transcript.ts  Auto-discover session transcripts
      precompact-capture.ts   CLI hook entry point
      capture-now.ts          Manual capture CLI
    tools/
      boot-report.ts  Orientation + open loops + capture awareness
      end-session.ts  Structured session close + capture warning
      list-captures.ts  List PreCompact captures
      read-capture.ts   Read captures in 3 modes
      capture-now.ts    Model-triggered manual capture
      store.ts search.ts list.ts delete.ts update.ts
    delivery/
      budget.ts       UTF-8 packet construction and atomic mandatory sections
      receipts.ts     Emission receipts (never claim model visibility)
      session-start.ts SessionStart hook adapter
      cursor.ts       Cursor hook adapter (privacy-whitelisted stdin)
      guidance.ts     Canonical workflow guidance, both channels
    init/
      cli.ts scaffold.ts setup-hooks.ts setup-delivery.ts templates/

ストレージ: better-sqlite3 を使用した SQLite + FTS5。重要度で BM25 ランキングを強化します。type、source、session_id を含む型付きレコードです。

トランスポート: stdio(標準 MCP)。Claude Code ですぐに使用できます。

テスト

npm test

テストスイートは CI で Node 22、24、26 を対象に実行され、次の項目をカバーします:ストレージの CRUD と FTS5 ランキング、オリエンテーションのドメイン(ギャップ検出、ポリシー対応のスコアリング、プロジェクト解決、サービス、レンダリング)、キャプチャマネージャー(解析、制限、レビュー追跡、フォーマット)、配信(パケット予算の原子性、受信記録、ガイダンスチャネル、Cursor のプライバシーセンチネル)、両方のフックのセットアップ(スキーマ、冪等性、破損時の拒否)、および MCP 統合(10 個すべてのツールと、パッケージから取得したサーバーメタデータ)。

ロードマップ

次の目標:「ネットワークで考える」 — 活性化拡散、埋め込みによるセマンティック検索、ギャップ分析ツール、評価ハーネス。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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