mcpField
C
chatvault

chatvault

ローカル
github.com/CloudCorpRecordsメモリ・ナレッジ01 週間前に更新

chatvault について

chatvaultは、ローカルのAIチャット履歴を検索・管理するMCPサーバーです。ユーザーが管理するJSONファイルを読み込み、履歴をアップロードしたりネットワーク通信したりせずに、会話、一覧、画像、メモリーを扱えます。

主な機能

  1. 01全文検索、フィルター、抜粋表示
  2. 02会話履歴と保存画像の取得
  3. 03会話一覧とインベントリーのページ表示
  4. 04会話とメモリーの保存
  5. 05書き込みツールの読み取り専用モード
  6. 06ネットワーク通信なしのローカルJSONコーパス

活用シーン

  1. 01トピックや日付で過去の会話を検索
  2. 02会話履歴を再表示、または保存画像を取得
  3. 03チャット履歴を一覧化して鮮度を確認
  4. 04会話や確認可能なメモリーを保存

MCP 対応

MCPクライアントに検索、取得、インベントリー、状態確認、書き込みツールを提供し、指定されたローカルコーパスを操作します。

設定

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

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

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

パッケージ
npm@reneturcios/chatvault0.1.0
ocighcr.io/cloudcorprecords/chatvault:0.1.0

ツール

9

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

パラメーター型必須説明
querystringはい全文検索クエリ
titlestringいいえタイトルにこのテキストを含む会話に限定します
date_tostringいいえこの日付以前(当日を含む)に更新された会話のみ(ISO 8601)
platformstringいいえclaude や chatgpt など、1 つのプラットフォームに限定します
date_fromstringいいえこの日付以降(当日を含む)に更新された会話のみ(ISO 8601)
match_modeenumいいえクエリ語の組み合わせ方法:any、all、phraseany | all | phrase

詳細

chatvault

過去の AI チャットは、すでにお使いのディスク上にあります。chatvault を使うと、 その履歴をマシンの外に持ち出すことなく、MCP クライアントから検索したり、 再び開いたり、全体を把握したりできます。アカウントもアップロードもネットワーク 通信も不要です。サーバーは、お客様が管理する JSON ファイルのフォルダーを 読み込みます。

設定

  • CHATVAULT_CORPUS_DIR(任意) — コーパスの保存場所です。 デフォルトは ~/.chatvault/corpus です。
  • CHATVAULT_READ_ONLY(任意) — 1 に設定すると、2 つの書き込みツール(save_conversation、save_memory)は モード名を含むエラーを返して処理を拒否します。読み取りは引き続き利用できます。

コーパスの構成

会話ごとに JSON ファイルが 1 つあり、これに memories.json が加わります。

{
  "id": "abc",
  "platform": "claude",
  "title": "Planning a trip",
  "updatedAt": "2026-10-01T12:00:00.000Z",
  "messages": [
    { "role": "user", "text": "Where should we go?" },
    { "role": "assistant", "text": "Some ideas..." }
  ]
}

メッセージには formattedText と images(保持された画像データを含む {mime, dataBase64} エントリー)を含めることもできます。 会話には localTitle を含めることもできます。コーパスディレクトリが空でも、 存在しなくても問題ありません。検索や一覧の結果は空になります。

すべての会話には、fp2: の後に SHA-256 の 16 進ダイジェストが続く コンテンツフィンガープリントがあります。このダイジェストには、タイトル、 設定されている場合はローカルタイトル、そして各メッセージの順序、つまり インデックス、ロール、テキスト、存在する場合はフォーマット済みテキスト、 各画像の MIME タイプと保持されたバイト列が含まれます。タイムスタンプと 派生フィールドは対象外です。そのため、同じ内容を再保存してもフィンガープリントは 変わりませんが、名前の変更やメッセージの編集を行うと変わります。正確な シリアライズ形式(キーをソートした正規化 JSON)は、明示的に再構成したものです。

ツール

  • search_conversations — タイトルとメッセージテキストを対象にした、トークン化された全文検索です。必須:query。任意:platform(完全一致)、title(部分一致)、date_from と date_to(updatedAt を対象)、および match_mode — any(デフォルト)、all、または phrase。結果は一致数、次に新しさの順でランク付けされ、スニペットが含まれます。
  • get_conversation_image — メッセージに保存されている画像です。 必須:conversation_id、message_index、image_index。 MIME タイプと Base64 バイト列を返します。画像が見つからない場合は、 その旨を正直にエラーで返します。
  • get_conversation — id の会話全文です。contentFingerprint フィールドが含まれます。
  • list_conversations — updatedAt 順の会話一覧です。 任意:order(デフォルトは newest_first、または oldest_first)と limit。
  • list_recent — 最終更新日時が新しい会話を、タイトル、短い概要(最初のユーザーメッセージの抜粋 — 再構成したもの)、およびプラットフォームとともに返します。任意: limit。
  • conversation_inventory — スナップショットをページ分割した、簡潔な {id, platform, title, fingerprint} 項目の一覧です。引数なしで呼び出してスキャンを開始し、その後、各ページの nextCursor を cursor として渡します。各ページには最大 100 件が含まれます。 limit を指定すると件数を減らせます。保持されるスナップショットは最大 8 件です。 不明または期限切れのカーソルを指定すると、新しいスキャンを開始するよう求めるエラーが返されます。
  • corpus_status — コーパスの {lastReceivedAt, count} を返します。コーパスが空の場合、lastReceivedAt は null です。
  • save_conversation — 会話を追加または更新します。 必須:platform、title、messages。id を省略すると、自動的に割り当てられます(chatvault:<n>)。{id, fingerprint} を返します。
  • save_memory — text から永続的な事実を保存します。このレコードは、確認して有効にするまで memories.json に無効状態(enabled: false)で追記され、保存されたレコードが返されます。

検索と一覧の結果には、corpus ブロック( {lastReceivedAt, count})も含まれます。これにより、呼び出し元は回答の根拠となったコーパスの 新しさと規模を確認できます。

CLI

npx @reneturcios/chatvault corpus_status '{}'
npx @reneturcios/chatvault search_conversations '{"query":"trip"}'
npx @reneturcios/chatvault --version

出力はツールの結果テキストです。終了コード:成功時は 0、エラー結果の場合は 1、使用方法のエラーの場合は 2 です。

MCP サーバー

npx -y @reneturcios/chatvault mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "chatvault": {
      "command": "npx",
      "args": ["-y", "@reneturcios/chatvault", "mcp"],
      "env": {
        "CHATVAULT_CORPUS_DIR": "/path/to/corpus"
      }
    }
  }
}

Docker

docker run -i -v /path/to/corpus:/corpus -e CHATVAULT_CORPUS_DIR=/corpus ghcr.io/cloudcorprecords/chatvault
docker run --rm ghcr.io/cloudcorprecords/chatvault --version

開発

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (temp corpus dirs, no network)
npm run dev     # run the CLI from source

ライセンス

MIT — Copyright (c) 2026 Rene Turcios

コメント

MCP は初めてですか?

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

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