mcpField
M
Melchizedek

Melchizedek

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

Melchizedek について

MelchizedekはClaude Code向けのローカル永続メモリです。会話記録を自動でインデックス化し、ハイブリッド検索で複数プロジェクトの履歴を探せます。単一のSQLiteファイルに保存され、オフラインで動作します。

主な機能

  1. 01会話記録の自動インデックス化
  2. 02BM25とベクトルによるハイブリッド検索
  3. 03検索結果の統合と再ランキング
  4. 04ファイル・エラー・類似作業で検索
  5. 05メモリ、セッション、プロジェクト索引の管理

活用シーン

  1. 01過去のデバッグ記録や解決策の検索
  2. 02複数プロジェクトの設計判断の確認
  3. 03特定ファイルに関する過去の会話の取得
  4. 04メモリ内容の手動保存や削除

MCP 対応

MCP サーバーはClaude Codeに、会話検索、周辺コンテキスト取得、メモリ管理のツールを提供します。フックによりセッション終了後の自動インデックス化も実行できます。

設定

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

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

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

パッケージ
npmmelchizedek1.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Melchizedek

npm version npm downloads CI License: MIT Donate Donate

Claude Code の永続メモリです。 すべての会話を自動的にインデックス化し、MCP ツールを通じて本番環境向けのハイブリッド検索(BM25 + ベクトル + 再ランキング)を提供します。100%ローカルで、設定不要、API キー不要、請求なしです。


なぜ Melchizedek なのか?

Claude Code はセッション間の内容をすべて忘れてしまい、ほかのプロジェクトについても何も知りません。Melchizedek はその両方を解決します。

バックグラウンドで静かに動作し、作業中の会話をインデックス化します。その後、Claude がすべての履歴を、すべてのプロジェクトにまたがって検索できるようにします。過去のデバッグセッション、アーキテクチャ上の決定、エラーの解決方法、コードパターンを検索できます。

クラウド不要。API キー不要。設定不要。 接続して、質問するだけです。

仕組み

~/.claude/projects/**/*.jsonl       (your conversation transcripts - read-only)
        |
        v
  SessionEnd hook                   (auto-triggers after each session)
        |
        v
  +-----------------+
  |  Indexer         |    Parse JSONL -> chunk pairs -> SHA-256 dedup
  |  (better-sqlite3)|    FTS5 tokenize -> vector embed (optional)
  +-----------------+
        |
        v
  ~/.melchizedek/memory.db           (single SQLite file, WAL mode)
        |
        v
  +-----------------+
  |  MCP Server      |    16 search & management tools
  |  (stdio)         |    Hybrid: BM25 + vectors + RRF + reranker
  +-----------------+
        |
        v
  Claude Code                       (searches your history via MCP)
検索パイプライン — 4 段階の段階的な縮退

各レイヤーは任意です。プラグインは BM25 だけでも動作し、利用可能なコンポーネントが増えるほど性能が向上します。

レベルコンポーネント追加される機能依存関係
1BM25 (FTS5)ステミングによるキーワード検索なし(常時有効)
2デュアルベクトル (sqlite-vec)セマンティック検索 — テキスト(MiniLM 384d)+ コード(Jina 768d)@huggingface/transformers(任意)
3RRF 融合Reciprocal Rank Fusion による BM25 + テキストベクトル + コードベクトルの統合ベクトルが有効
4再ランキング上位の検索結果をクロスエンコーダーで再スコアリングTransformers.js または node-llama-cpp(任意)

パフォーマンス

npm run bench を使用して測定しました。単一の SQLite ファイルで、100 セッション、1 000 チャンクを対象にしています。

指標結果目標
インデックス化(100 セッション)約 80 ms< 10 s
BM25 検索(平均)約 0.2 ms< 50 ms
DB サイズ(100 セッション)約 1.4 MB< 30 MB
検索あたりのトークン数約 125< 2 000

クイックスタート

npm(推奨)
npm install -g melchizedek

MCP サーバーを Claude Code に追加します。

claude mcp add --scope user melchizedek -- melchizedek-server
npx(インストール不要)
claude mcp add --scope user melchizedek -- npx melchizedek-server
ソースからのインストール
git clone https://github.com/louis49/melchizedek.git
cd melchizedek && npm install && npm run build
claude --mcp-config .mcp.json
Claude Code プラグインマーケットプレイス (近日公開)

プラグインの審査中です。それまでは、上記の npm または npx によるインストールを使用してください。

claude plugin install melchizedek   # not yet available
フックの設定(自動インデックス化)

MCP サーバーは検索ツールを提供しますが、自動インデックス化を実行するのはフックです。フックがない場合、セッションを手動でインデックス化する必要があります。

マーケットプレイスからインストールした場合は、フックが自動的に設定されます。npm/npx/ソースからインストールした場合は、~/.claude/settings.json にフックを追加してください。

JSON 設定全体、フックのリファレンス、トラブルシューティングについては、docs/installation.md を参照してください。

設定後、Claude Code を再起動してください。インデックス化が自動的に開始されます。

MCP ツール

検索(まずはこちら)
ツール説明
m9k_searchインデックス化された会話を検索します。簡潔なスニペットを返します。現在のプロジェクトの結果が優先されます。since/until による日付フィルターと、order(score、date_asc、date_desc)に対応しています。
m9k_context前後のコンテキスト(同じセッション内の隣接チャンク)とともにチャンクを取得します。
m9k_fullIDを指定してチャンクの全文を取得します。

段階的な取得パターン — 検索結果は1件あたり約50トークン、コンテキストは約200~300トークン、全文は約500~1000トークンです。まず m9k_search を使い、必要な場合にのみ詳細を取得してください。すべてを読み込む場合と比べて、トークンを4倍節約できます。

コンテキストを考慮したランキング — 現在のプロジェクト(×1.5)と現在のセッション(×1.2)の結果が自動的に優先されます。プロジェクトをまたいだ結果も引き続き表示されます。

特化型検索
ツール説明
m9k_file_history特定のファイルに関する過去の会話を検索します。
m9k_errorsエラーメッセージに対する過去の解決策を検索します。
m9k_similar_work類似タスクへの過去の取り組み方を検索します。充実したメタデータを優先します。
メモリ管理
ツール説明
m9k_save後で呼び出せるよう、メモリノートを手動で保存します。
m9k_sessionsインデックス化されたすべてのセッションを一覧表示します。プロジェクトで絞り込むこともできます。
m9k_infoメモリインデックスの情報(コーパスのサイズ、検索パイプライン、埋め込みワーカー、使用状況の指標)を表示します。
m9k_configプラグインの設定を表示または更新します。
m9k_forgetチャンクをインデックスから完全に削除します。
m9k_delete_sessionセッションをインデックスから削除します。
m9k_ignore_projectプロジェクトをインデックス化の対象外にします。今後のセッションはインデックス化されません。既存のセッションも必要に応じて削除できます。
m9k_unignore_project以前に対象外にしたプロジェクトのインデックス化を再開します。削除済みのデータは復元されません。
m9k_restartnpm run build の後、新しいコードを読み込むために MCP サーバーを再起動します。停止したプロセスには force: true を指定できます。
使用ガイド
ツール説明
__USAGE_GUIDE非表示のツールです。説明を通じて、Claude に取得パターンと利用可能なツールを伝えます。

設定

デフォルトでは設定不要です。すべて m9k_config または環境変数から調整できます。

設定項目デフォルト値環境変数
データベースのパス~/.melchizedek/memory.dbM9K_DB_PATH
デーモンモード有効無効にするには M9K_NO_DAEMON=1
ログレベルwarnM9K_LOG_LEVEL
埋め込みtrue無効にするには M9K_EMBEDDINGS=false
リランカーtrue無効にするには M9K_RERANKER=false

設定の全項目(20種類以上のオプション、環境変数、設定ファイルの例)については、docs/configuration.md を参照してください。

強化された検索

Melchizedek は BM25 キーワード検索にそのまま対応しています。テキスト埋め込み(MiniLM)は、セマンティック検索で初めて使用するときに自動でダウンロードされます。

GPU で高速化したコード埋め込み(Ollama)、クロスエンコーダーによる再ランキング(GGUF モデル)、プラットフォーム別のセットアップガイド、モデルの詳細については、強化検索のセットアップ を参照してください。

どう違うのでしょうか?

Melchizedekclaude-historian-mcpclaude-memepisodic-memorymcp-memory-service
GitHub stars npmGitHub stars npmGitHub stars npmGitHub starsGitHub stars PyPI
基本方針検索エンジン - すべてをインデックス化し、検索します検索エンジン - 必要に応じてJSONLをスキャンしますノートブック - AIが圧縮して保存します検索エンジンノートブック - AIが保存する内容を決定します
生の会話をインデックス化はい(JSONLトランスクリプト)はい(JSONLを直接読み込み、永続的なインデックスなし)圧縮された要約はい(JSONL)いいえ(手動でstore_memory)
インストール時に過去のデータを取り込みはい(すべての履歴を遡って取り込み)はい(既存ファイルを読み込み)いいえはいいいえ(初期状態は空)
検索BM25 + ベクトル + RRF + 再ランキングTF-IDF + あいまい一致FTS5 + ChromaDBベクトルのみBM25 + ベクトル
段階的な取得3層(検索/コンテキスト/全文)いいえいいえいいえいいえ
100%オフラインはいはいいいえ(圧縮にAPIが必要)はいはい
単一ファイルでの保存SQLiteなし(生のJSONLを読み込み)SQLite + ChromaDBSQLiteSQLite-vec
設定不要はいはいはいはいはい
MCP ツール16104212
ライセンスMITMITAGPL-3.0MITApache-2.0
デュアル埋め込み(テキスト + コード)はい(MiniLM + Jina Code)いいえいいえいいえいいえ
モデルの設定はい(Transformers.jsまたはOllama)いいえいいえ(Chroma内部)いいえ(ハードコード)はい(ONNX、Ollama、OpenAI、Cloudflare)
再ランキングクロスエンコーダー(ONNX、GGUF、またはHTTP)いいえいいえいいえ品質スコアラー(検索用の再ランキングではありません)
プライバシーすべてローカル、<private>タグによる編集すべてローカルAnthropic APIにデータを送信すべてローカルすべてローカル
複数インスタンスシングルトンデーモン - N個のClaudeウィンドウが1つのプロセスを共有(Unixソケット/Windows名前付きパイプ、ローカルフォールバック)N個の独立したプロセスHTTPワーカーを共有(:37777)N個の独立したプロセスHTTPサーバーを共有
インスピレーション

このプロジェクトは、多くの先人の成果の上に成り立っています。以下のプロジェクトから主なアイデアを取り入れました。

プロジェクト取り入れた内容
CASSRRF ハイブリッド融合、SHA-256 による重複排除、自動ファジーフォールバックGitHub stars
claude-historian-mcp特化型 MCP ツール(file_history、error_solutions)GitHub stars npm
claude-diaryPreCompact フック(/compact の前にアーカイブ)GitHub stars

既知の問題

  • セッションブーストが無効 - Claude Code は現在、SessionStart フックの stdin ペイロードで空の session_id を送信するため、×1.2 のセッションブーストが機能しません。×1.5 のプロジェクトブーストには影響せず、こちらがコンテキストを考慮したランキングの主な要素となります。関連する上流の問題: #13668(空の transcript_path)、#9188(古い session_id)。Melchizedek のセッションブーストコードはテスト済みで、上流の修正が反映されると自動的に有効になります。

プライバシー

  • テレメトリーは一切ありません。 トラッキング、分析、ネットワーク通信はありません(任意のモデルの遅延ダウンロードを除く)。
  • トランスクリプトは読み取り専用です。 ~/.claude/projects/ には書き込みません。すべてのデータは ~/.melchizedek/ に保存されます。
  • <private> タグに対応しています。 <private>...</private> 内のコンテンツは、インデックス作成前に [REDACTED] に置き換えられます。
  • ローカルのみで動作します。 会話がマシンの外に送信されることはありません。

要件

  • Node.js >= 20
  • Claude Code >= 2.0
  • macOS、Linux、または Windows

ライセンス

MIT


「父もなく、母もなく、系図もなく、日々の初めもなく、命の終わりもない。」

  • ヘブル人への手紙 7:3

@louis49 によって開発されました

コメント

MCP は初めてですか?

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

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