mcpField
M
mindmap-mcp-server

mindmap-mcp-server

ローカル
github.com/ravi-labsメモリ・ナレッジ616 週間前に更新

mindmap-mcp-server について

mindmap-mcp-server は、複数の AI ツール間で作業を引き継ぐためのローカルファーストなメモリーサーバーです。セッションのコンテキストを保存して別のツールで再開でき、使われない記憶を検索可能な短い記録へ段階的に整理します。データはローカルに保存されます。

主な機能

  1. 01セッションのコンテキストを保存・再開
  2. 02記憶の自動的な冷却と減衰
  3. 03記憶をコレクションに整理
  4. 04ツール間で共有するペルソナ
  5. 05記憶のインポートとエクスポート

活用シーン

  1. 01別の AI ツールでプロジェクトを続行
  2. 02以前のセッションのコンテキストを復元
  3. 03目標や未完了のプロジェクトを整理
  4. 04保存したコンテキストを別の端末へ移行

MCP 対応

stdio 経由でローカルの MCP クライアントに、記憶、再開、検索、コレクション、ペルソナの機能を提供します。インストーラーは対応クライアントを検出して設定できます。

設定

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

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

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

パッケージ
npm@ravi-labs/mindmap-mcp-server0.5.0

ツール

26

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

パラメーター型必須説明
kindenumいいえスレッドの種類discussion | brainstorm
tagsarrayいいえ絞り込み用のトピックタグ
linksarrayいいえリンクする関連スレッドの ID
titlestringはい短いトピックタイトル
sourcestringいいえ元のツール。例:'claude-code'、'chatgpt'、'chat'、'cowork'、'claude-desktop'。
summarystringはい移植可能なコンテキストの要約(Markdown 可)
workspacestringいいえ対象となるプロジェクト/ワークスペースの絶対パス — 続行場所の提案に使用
key_pointsarrayいいえひと目で把握できる議論の要点
next_stepsarrayいいえ未完了の作業/前回の続き — 再開後に続けられるようにする

詳細

🧠 Mind Map — MCP メモリー&コンテキスト引き継ぎサーバー

npm CI License: Apache-2.0 Node

Claude Code、Claude Desktop、その他のAIツールをまたいで、会話の流れを見失ったことはありませんか?Mind Mapは、すべてのローカル MCP クライアント間で共有メモリーレイヤーとして機能する、小さなローカルファーストのMCPサーバーです。

セッションの終わりにコンテキストを記録し、別のツールで再開できます。プロジェクトについて一から説明し直す必要はもうありません。使わなくなったメモリーは、静かに削除されることなく、1行の記録へと徐々に冷却・縮退します。そのため、記憶棚が小さく信頼できる状態に保たれ、別の干し草の山になることもありません。

**ローカルファーストを前提に設計されています。**お使いのマシン上で動作し、メモリーは ~/.mindmap 内のプレーンファイルとして保存され、管理権限が外に渡ることはありません。アカウントも、クラウドも、信頼する必要のあるサーバーも不要です。npx @ravi-labs/mindmap-mcp-server install で一度インストールするだけです。

ChatGPTやその他のクラウド/ウェブクライアントは、現時点では対象外です。パブリックエンドポイントがなければローカルサーバーに接続できず、ローカルファーストの方針と相容れないためです。今後の予定をご覧ください。

ひと続きの流れで見る仕組み

  1. 記録(手間なし)— 会話の終わりに、持ち運び可能な要約を保存します。
  2. 再開(再利用時に昇格)— 新しいセッションに引き継ぎます。再利用することで、その内容が信頼できるメモリーに昇格します。使い捨てのセッションは昇格されないため、記憶棚を散らかしません。
  3. 統合(自動)— バックグラウンド処理で、使われていないメモリーを段階的に冷却し(🔥 ホット → 🌤️ ウォーム → ❄️ コールド)、コールド項目を検索可能な1行の記録にまとめます。強みは保存することではなく、上手に忘れることです。
  4. 整理(任意、ゲーム感覚)— ため込むのではなく、不要なものを削除すると整理スコアが上がります。

インストール(1つのコマンド)

npmで公開された後は、インストール全体を次のコマンドで行えます。

npx @ravi-labs/mindmap-mcp-server install

このコマンドはローカルの MCP クライアント(Claude Desktop、Cursor、Windsurf)を自動検出して設定を書き込み、Claude Code がインストールされていれば CLI で設定します。クライアントを再起動すると、Mind Mapのツールが使えるようになります。まず npx @ravi-labs/mindmap-mcp-server install --dry-run でプレビューでき、npx @ravi-labs/mindmap-mcp-server uninstall で元に戻せます。

データはデフォルトで ~/.mindmap/ に保存されます。MINDMAP_DIR 環境変数で保存先を変更できます。

手動セットアップ(必要な場合)

すべてのクライアントで同じコマンドを使います。stdio経由で npx -y @ravi-labs/mindmap-mcp-server を実行します。

Claude Code:

claude mcp add mindmap -- npx -y @ravi-labs/mindmap-mcp-server

Claude Desktop — claude_desktop_config.json を編集します (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mindmap": {
      "command": "npx",
      "args": ["-y", "@ravi-labs/mindmap-mcp-server"]
    }
  }
}

Cursor / Windsurf / その他のクライアント — クライアントの MCP 設定で、同じ形式の command と args を指定します。データの保存先を変更するには env ブロックを追加します。

{ "command": "npx", "args": ["-y", "@ravi-labs/mindmap-mcp-server"],
  "env": { "MINDMAP_DIR": "/path/to/my/memory" } }
ソースからのセットアップ(開発用)
git clone https://github.com/ravi-labs/mindmap-mcp-server.git && cd mindmap-mcp-server
npm install && npm run build
node dist/index.js install --local   # points clients at this checkout

日々の使い方

AI ツールで自然に話しかけるだけで、モデルが適切なツールを呼び出します。

  • 「これをマインドマップに保存して」 → 現在のコンテキストを保存します
  • 「<topic> の作業を再開して」 → 新しいセッションに内容を引き継ぎます
  • 「マインドマップには何がある?」/「マインドマップの状態を見せて」 → 閲覧/評価します
  • 「私の仕事の進め方について、どんなことを知っている?」 → あなたのペルソナを読み取ります(下記参照)
  • 「<topic> について一緒にブレインストーミングして」 → これまでの考えを読み込み、ツールをまたいでアイデアを引き継ぎます
  • 「これを Goals に追加して」/「これは後で使うために取っておいて」 → コレクションに保存します
  • 「始めたのに最後まで終わらなかったアプリはどれ?」 → 記憶を自動でコレクションに整理します
  • 「未完了のプロジェクトを続けて」 → 1 つ選ぶと、適切なフォルダーで次の手順からすぐに再開できます

npx @ravi-labs/mindmap-mcp-server quickstart を実行すると、導入ガイド全体を確認できます。

ツールをまたいでブレインストーミングする

Claude でアイデアを出し始め、Cursor で続けられます。説明し直す必要はありません。Mind Map が共有メモリとなり、各ツールがそれぞれのブレインストーミング能力を発揮します。mindmap_brainstorm がペルソナと、そのトピックに関する過去のアイデアスレッドを読み込み、ブレインストーミングを行い、kind: "brainstorm" を指定して保存すると、どの場所からでも再開できます。同梱のブレインストーミング Skill(install によって ~/.claude/skills にインストールされます)が、Claude での読み込み → ブレインストーミング → 保存の流れを連携します。

自分のやり方で整理する — コレクション

Mind Map は常に自動で整理します(新しさの段階、ソース、トピック、ワークスペース)。コレクションは、その上に追加する独自のレイヤーです。🎯 Goals、🅿️ Parking Lot、✅ Decisions のような名前付きグループや、自分で考えたグループを作成できます。どのツールでも 「これを Goals に追加して」 や 「これを取っておいて」 と伝えるか、ダッシュボードの 整理タブを使ってください。

コレクションを単なるフォルダー以上のものにする特徴が 2 つあります。

  • 分類すると忘れられにくくなります。 ピン留めされたコレクション内のメモリは、そこに分類されている間は忘れられません。何かを取っておくことは、それが重要だという合図です。(明示的に「これを忘れて」と指示した場合は、その指示が優先されます。)
  • すべてのコレクションが再開の起点になります。 「未完了のプロジェクトを続けて」 と伝えると、各項目の📂ワークスペースと ↳ 前回の続き が一覧表示されます。1 つ選ぶと、mindmap_resume がトピックのコンテキスト全体、適切なフォルダー、次の手順から再開します。

手動で分類したくない場合は、自動整理を使えます。すべてのセッションを横断して読み取り、コレクションを提案します。常に未完了のプロジェクト(開発を始めたものの、しばらく放置され、リリースされていないもの)、Goals、Decisions、保留中のアイデアを探すほか、依頼した内容(「請求に関するすべて」)も対象になります。提案するだけで、承認するまで何も分類されません。LLM を設定している場合は自分の LLM を使用し、設定していない場合はキー不要のヒューリスティックを使用します。

キャプチャを自動化する

Claude Code では、install によって SessionEnd 自動キャプチャフックが追加されます。内容のあるセッションは毎回、自動で要点をまとめてメモリに保存されるため、保存を忘れずに済みます。重複は排除され(再開してから再度終了すると、既存の内容がその場で更新されます)、些細なセッションや自動化されたセッションはスキップされます。install --no-hook で無効にでき、uninstall で完全に削除できます。

他のクライアントを使う場合や、念のため促しておきたい場合は、クライアントの指示に 1 行追加してください(例:Claude Code の CLAUDE.md)。

重要なセッションの最後に、mindmap_capture を呼び出してコンテキストを保存してください。 過去の作業に言及したときは、最初に mindmap_resume を呼び出してください。

モデルがこの操作を積極的に行うよう促すため、ツールの説明にも記載されています。

過去のセッションを取り込む

既存のClaude履歴をMind Mapにインポートします。生のダンプではなく、要点を抽出して取り込みます。

npx @ravi-labs/mindmap-mcp-server import --dry-run   # preview
npx @ravi-labs/mindmap-mcp-server import             # apply

Claude Code(CLI — プロンプト全文)、Cowork(タイトル+冒頭のメッセージ)、VS Code Copilot(プロンプト全文)、Cursor(チャットのタイトル+プロンプト)に対応しています。各メモリにはソースのタグが付きます。フィルター:--source code|cowork|copilot|cursor、--project <name>、--limit N。インポートされたメモリは元の日付を保持するため、古いものは自動的にコールドトレースに落ち着きます。

インポートされたメモリには、タイトルだけでなく議論の内容(あなたのプロンプト+アシスタントの実質的な回答)が保存されます(トランスクリプトに基づくソースであるClaude Code、Cursor、Copilotが対象です)。アップグレード後に既存のメモリをその場で更新するには、--reimportを指定して再実行してください。

注意:

  • Cursorはチャットを(数GBになることもある)SQLite DBに保存しており、Node組み込みのSQLiteを使って読み取ります。そのため、Cursorのインポートには**Node 22.5+**が必要です(他のソースでは不要です)。
  • ChatGPTとClaude.aiのウェブチャットはインポートできません。クラウド上にあり、ローカルファイルではないためです。(将来的に「データエクスポートファイルからインポート」機能を予定しています。)
整理する
npx @ravi-labs/mindmap-mcp-server cleanup --dry-run   # preview
npx @ravi-labs/mindmap-mcp-server cleanup             # apply

自動化/スケジュールされたタスクのメモリを削除し、重複するセッションを統合します。昇格したものは必ず保持されます。

ペルソナ — すべてのツールが読み取れるプロフィール

個々の議論に加えて、Mind Mapはペルソナも保持します。これは、あなたの作業方法(技術スタック、スタイル、コミュニケーションの好み、制約)を要約し、更新し続けるプロフィールです。どのツールでもこれを適用でき、**同じ初期設定の質問を何度もするのを防げます。**議論のメモリとは別に管理されます。

  • 宣言された事実:ツールに「簡潔で、コードを先に示す回答が好みです」と伝えると、mindmap_persona_setが呼び出されます。信頼度が高く、あなた自身が編集できます。
  • 推定された事実:mindmap_persona_learnが既存のメモリから繰り返し現れる傾向を導き出します。LLMは不要です(キーワードによるヒューリスティック)。LLMを有効にすると、より豊かな内容になります。
  • ツールはセッションの開始時にmindmap_personaを呼び出し、その内容を適用します。

自動的に実行されるよう、クライアントの指示に以下を追加してください。

セッションの開始時にmindmap_personaを呼び出して適用してください。私が長期的な好みを伝えたら、mindmap_persona_setを呼び出してください。

コンテキストを自分で管理する

取り出したり、確認したり、持ち運んだりできないメモリは、自分のものとは言えません。Mind Mapのメモリを本当に自分のものにするため、3つの機能を用意しています。

メモリパスポート — すべてを持ち運び可能な1つのオープンファイルにエクスポートし、コンテキストをウォールドガーデンの外へ持ち出せます。

npx @ravi-labs/mindmap-mcp-server passport export                 # → ~/mindmap-passport-<date>.json
npx @ravi-labs/mindmap-mcp-server passport import <file>          # from another machine
npx @ravi-labs/mindmap-mcp-server passport import-chatgpt conversations.json   # your ChatGPT export
npx @ravi-labs/mindmap-mcp-server passport import-claude  conversations.json   # your Claude.ai export

クラウド上のチャットにローカルサーバーからリアルタイムでアクセスすることはできませんが、データエクスポートファイルはあなたのものです。これをインポートし、要点を抽出したメモリとして取り込めます。

ガラス張りのメモリ — 何が保存されているか、なぜ保存されているかを正確に確認できます。

npx @ravi-labs/mindmap-mcp-server audit

各メモリには、出所(どこから来たか)、信頼度(何回再利用したか)、減衰予測(いつ1行の記録まで薄れるか)が表示されます。ダッシュボードでは、各メモリをワンクリックで忘れることができます。不透明なベクトルストアとは異なり、メモリの内容があなたに隠されることはありません。

ペルソナの反映 — ペルソナを各ツールの設定ファイルに書き込み、MCPを使わないツールでもあなたの作業方法がわかるようにします。

npx @ravi-labs/mindmap-mcp-server persona-sync          # Claude, Cursor, Copilot, Windsurf

管理対象のブロック(``…:end)のみを編集するため、あなた自身の内容が変更されることはありません。

オプション:LLM キーを自分で用意する

Mind Map は LLM なしで完全に動作します。すべての機能に LLM を使わない方法があります。より賢いペルソナ推定やトピックグラフのラベル付けを利用したい場合は、自分のプロバイダー(anthropic、openai、google、またはローカルの ollama)を接続してください。利用は任意で、問題が起きても安全に動作します。キーがない場合や呼び出しに失敗した場合は、LLM を使わない方法にフォールバックします。また、費用に関する記載はあくまで概算であり、請求ではありません。

Mind Map が API キーを保存することはありません。 ~/.mindmap/llm.json に保存されるのはプロバイダー名とモデル名だけです。キーは呼び出し時に 環境変数 から読み込まれます。キーを設定するのはユーザーであり、Mind Map はそれを読み取るだけです。

より賢い検索(オプション)。 検索は標準で BM25 を使用するため、LLM は不要です。埋め込みに対応したプロバイダー(OpenAI、Google、Ollama。Anthropic には埋め込み API がありません)を使うと、ローカルに埋め込みキャッシュを構築して ハイブリッド検索(BM25 と、逆順位融合によるセマンティック類似度を組み合わせた検索)を利用できます。

npx @ravi-labs/mindmap-mcp-server embed   # build/refresh the local embedding cache

新規または変更されたメモだけを再埋め込みし、ベクトルを ~/.mindmap/embeddings.json にキャッシュします。resume/search/brainstorm はこのキャッシュを自動的に使用します。キャッシュがない場合(または Anthropic を使う場合)、検索は BM25 のままで、検索品質が低下することはありません。

ステップ 1 — プロバイダーを選ぶ

ダッシュボードの Persona タブ(LLM セクション)から選ぶか、mindmap_llm ツールを使います(例:「mindmap の LLM プロバイダーを anthropic に設定して」)。これにより、{provider, model} が ~/.mindmap/llm.json に書き込まれます。Mind Map は各プロバイダーについて、次の環境変数を参照します。

プロバイダー参照する環境変数デフォルトモデル
anthropicANTHROPIC_API_KEYclaude-sonnet-4-6
openaiOPENAI_API_KEYgpt-4o
googleGOOGLE_API_KEYgemini-1.5-pro
ollama(なし — ローカル)llama3.1
ステップ 2 — キーを設定する

キーは 必要とするプロセスから参照できる状態 にする必要があります。方法は 2 つあり、必要な方法は利用環境によって異なります。

A. シェルプロファイル — ダッシュボード/CLI と Claude Code 向けです(MCP サーバーはシェル環境を引き継ぎます)。

# ~/.zshrc (or ~/.bashrc)
export ANTHROPIC_API_KEY="sk-ant-…"

次に source ~/.zshrc を実行して再起動します。同じシェルからダッシュボードを起動すると、キーが読み込まれます。

B. クライアントの MCP 設定の env ブロック — シェル環境なしで MCP サーバーを起動する GUI クライアント(Claude Desktop、Cursor、Windsurf)向けです。そのため、上記の export はこれらのクライアントに引き継がれません。Mind Map のエントリーに env マップを追加してください。

{
  "mcpServers": {
    "mindmap": {
      "command": "npx",
      "args": ["-y", "@ravi-labs/mindmap-mcp-server"],
      "env": { "ANTHROPIC_API_KEY": "sk-ant-…" }
    }
  }
}

トレードオフ:方法 B では、キーがクライアントの設定ファイルに平文で書き込まれます。一部の GUI クライアントでキーを渡すにはこれが唯一の方法ですが、キーをディスク上に保存したくない場合は、方法 A を選んでください(または、変数をすでにエクスポートしてあるターミナルから GUI アプリを起動し、その環境を引き継がせてください)。

設計上、ダッシュボードやツールにキーを入力する欄は ありません。ウェブフォームに入力されたキーを利用可能にするには、送信して保存する必要がありますが、これは Mind Map が避けている認証情報をディスクに保存するパターンそのものだからです。環境変数はご自身で設定してください。

ollama にはキーは不要です。ローカルで ollama serve を実行し、ollama プロバイダーを選択してください。

ステップ 3 — 確認する

mindmap_llm を引数なしで呼び出します(またはダッシュボードの Persona タブを開きます)。キーが参照できる場合は ready と表示されます。例:「✓ ANTHROPIC_API_KEY を検出しました。」 環境変数を設定した後、キーを読み込ませるためにサーバー/クライアントを 再起動 してください。

メモリを見る — ダッシュボード

npx @ravi-labs/mindmap-mcp-server dashboard   # http://127.0.0.1:7777

6つのビューを備えたローカル Web UI(ループバックのみ)です。

  • リスト — メモリを🔥/🌤️/❄️のティア別にグループ化して検索できます。メモリをクリックすると、要約、重要なポイント、完全なディスカッション(会話全体をオンデマンドで再構成し、Markdown として表示)を確認できます。📜バッジとフィルターで、完全なトランスクリプトがあるメモリを識別できます。**ファイル先…**コントロールで、メモリをコレクションに分類できます。
  • ツリー — 🧠 → ソース → プロジェクト → ディスカッションの構造で表示し、リンクされたスレッドを結合します。
  • グラフ — 自動生成されるトピックマップです。カテゴリをハブとして、セッション同士を関連性に基づいて接続し、カテゴリのフィルターチップとライブ検索を備えています。オプトインの**✨ LLM ラベル**ボタンを使うと、自分の LLM でトピッククラスターのラベルを付け直せます。
  • 整理 — コレクション(各項目に ↳ 前回の続き を表示)、✨ 自動整理の提案機能、メモリが自動的にどのように整理されているかの内訳(ティア、ソース、ワークスペース、トピック)をリアルタイムで確認できます。
  • ペルソナ — プロフィールの表示と編集(上記参照)、設定の追加、推論の実行、オプションの LLM の設定を、すべてブラウザーから行えます。
  • アクティビティ — すべてのツールで行われた MCP 呼び出しをリアルタイムで表示するコンソールです(~/.mindmap/calls.jsonl から機密情報を削除して表示します)。

⟳ 同期ボタンを押すと、必要に応じて新しいセッションをインポートできます。また、整理度スコアは、大きさではなく、整理され信頼できるメモリを評価します。

ツール

ツール機能
mindmap_captureコンテキストの要約を静かに保存します(ループの手間のかからない半分です)。
mindmap_resumeトピックに最適なコンテキストを探して返します。再利用すると昇格します。また、起動ツールとしても使えます。collection を渡すと、「未完了のプロジェクト」などから再開します。
mindmap_resume_optionsユーザーが再開するものを選べるように、候補トピック(ワークスペース付き)の一覧を表示します。
mindmap_import必要に応じてセッションを同期します — 「最近の作業でマインドマップを更新」。
mindmap_organizeメモリをコレクションに分類します — 「これを目標に追加」「いったん保留」。
mindmap_collectionsコレクションを表示します。コレクションを開くと、各項目のワークスペースと前回の続きが表示されます。
mindmap_curate自動整理:すべてをスキャンして、コレクション(未完了のプロジェクト、目標、決定事項、保留中の項目)を提案します。まずプレビューを表示します。
mindmap_brainstormメモリを活用してトピックをブレインストーミングします — 過去のアイデアスレッドを読み込み、ツールをまたいでアイデアを引き継ぎます。
mindmap_searchすべてのティアとツールを対象に、読み取り専用で検索します。
mindmap_listフィルターを使ってメモリを閲覧します。
mindmap_get1件のメモリの全内容を取得します。
mindmap_transcriptメモリの元の会話全体を再構成します(Claude Code/Cursor/Copilot)。
mindmap_promoteメモリを信頼済みとして明示的に認定します(→ ホット)。
mindmap_update整理/編集/タグ付け — 人がメモリを編集するタイミングです。
mindmap_link関連するスレッドを接続します(軽量な「マップ」です)。
mindmap_prune必要に応じて統合処理を実行します(プレビューするには dry_run を指定します)。
mindmap_forget履歴を残してソフトアーカイブするか、hard を指定して削除します。
mindmap_healthゲーミフィケーション付きの整理度スコアです(オプトイン)。
mindmap_tidy最も古いメモリをまとめて提示し、保持/整理/削除を行います。
mindmap_config減衰期間と切り替え設定を表示/変更します。
mindmap_personaペルソナを読み取ります — セッション開始時に適用すると、同じ質問を繰り返さずに済みます。
mindmap_persona_set長期的に保持する設定(スタック/スタイル/制約など)を記録します。
mindmap_persona_forgetペルソナの情報を無効化するか、削除します。
mindmap_persona_learnメモリからペルソナ情報を推測します(設定されている場合は LLM の支援を使用)。
mindmap_persona_syncペルソナをツールのネイティブ設定ファイルに書き込みます。
mindmap_llmオプションの BYO キー LLM を設定します(プロバイダー/モデル。キーは環境変数内に保持されます)。
mindmap_auditガラス張りの台帳:すべてのメモリについて、出所、信頼性、減衰予測を確認できます。
mindmap_passport_exportすべてのメモリとペルソナを1つのポータブルファイルにエクスポートします。
mindmap_passport_importパスポート、または ChatGPT/Claude.ai のデータエクスポートをインポートします。

保存方法

~/.mindmap/
├── threads/<id>.json   # one file per memory (human-readable JSON)
├── index.json          # fast list/search index
├── config.json         # tunable thresholds + gamification toggle
├── persona.json        # your evolving profile (declared + inferred facts)
├── collections.json    # your collections (Goals, Parking Lot, …) — ids only
├── llm.json            # optional LLM provider + model (never your API key)
├── calls.jsonl         # redacted log of every MCP call (the Activity view)
└── embeddings.json     # optional local embedding cache for semantic search

自分で所有し、内容を確認したり、grep したり、バックアップしたり、同期したりできるプレーンファイルです。各層は次の考え方に対応します。ホット=メモリ、ウォーム=ファイル、コールド=ドライブ(トレース)。

保存前にシークレットをマスキングします。 メモリはプレーンファイルであり、インポートによって過去のセッションに貼り付けたキーが取り込まれる可能性もあるため、すべてのメモリをスキャンし、一般的な認証情報の形式(API キー、トークン、秘密鍵)を検出して、書き込む前に [REDACTED:…] に置き換えます。マスキングされたメモリにはフラグ(🔒)が付きます。ベストエフォートでローカルに処理し、LLM は使用しません。redactSecrets 設定で切り替えられます。

減衰の調整

// defaults (mindmap_config to change at runtime)
{
  "hotWindowMs":  7 days,    // active memory stays hot this long
  "warmWindowMs": 30 days,   // then warm; past it → cold trace
  "promotedLongevityFactor": 2,  // blessed memories decay 2× slower
  "gamification": true
}

開発

npm run dev      # watch mode (tsx)
npm run build    # type-check + emit dist/
npm test         # end-to-end smoke tests (stdio + http) in throwaway data dirs

今後の展望

ChatGPT/クラウドクライアント(保留中)。 クラウドクライアントは、ローカルサーバーを公開しないかぎり(トンネルまたはホストを介さないかぎり)接続できません。これはローカルファーストの理念に反します。コードベースにはすでに HTTP トランスポートが含まれており(TRANSPORT=http、ベアラートークン認証とオリジン許可リストを使用)、セルフホスト可能な構成を選ぶ人は利用できますが、意図的にデフォルトの方法にはしていません。将来的に ChatGPT を再検討する場合は、ユーザーごとの暗号化を備えたオプトインのホスト型ティアを設け、デフォルトではなく、信頼に関する明確な判断を伴う形になるでしょう。

その他の方向性:

  • クライアントごとの自動キャプチャーフックにより、「キャプチャー」の手順を見えないようにする。
  • 埋め込みベースのセマンティックな想起(現在の検索はトークンの重複に基づいています)。
  • グラフ内の関連性エッジを LLM で補助(ラベルはすでにオプトインです)。
  • OAuth とユーザーごとのデータ分離(ホスト型ティアが実現した場合にのみ必要です)。

ライセンス

Apache-2.0 — LICENSE と NOTICE を参照してください。

コメント

MCP は初めてですか?

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

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