mcpField
S
shodh-memory

shodh-memory

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

shodh-memory について

shodh-memory は AI エージェント向けの永続的な認知メモリを提供する MCP サーバーで、データはすべてローカルマシンに保存されます。三層のメモリモデルに加え、セマンティック検索、Hebbian 学習、ナレッジグラフを備えており、セッションをまたいで文脈を保持したい開発者に適しています。

主な機能

  1. 01ワーキング、セッション、長期の三層メモリ
  2. 02MiniLM-L6 埋め込みによるセマンティック検索
  3. 03Hebbian 学習によるメモリ間の関連強化
  4. 04エンティティと関係を追跡するナレッジグラフ
  5. 05コンテンツハッシュによる重複保存の防止
  6. 06GTD 形式のタスクとリマインダー管理

活用シーン

  1. 01コーディングエージェントにセッションをまたいだ好みの記憶を持たせる
  2. 02長期プロジェクトで過去の判断や文脈を検索する
  3. 03AI アシスタント向けにタスク、プロジェクト、リマインダーを管理する

MCP 対応

MCP サーバーとして記憶、タスク、プロジェクト、リマインダー、システム保守にわたる 51 のツールを提供し、リソースとプロンプトも MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"varun29ankus-shodh-memory": {
"command": "npx",
"args": [
"-y",
"@shodh/memory-mcp"
],
"env": {
"SHODH_API_URL": "<SHODH_API_URL>",
"SHODH_API_KEY": "<SHODH_API_KEY>",
"SHODH_USER_ID": "<SHODH_USER_ID>"
}
}
}
}
起動コマンドnpx -y @shodh/memory-mcp
設定が必要な環境変数
SHODH_API_URLURL of the shodh-memory backend server
SHODH_API_KEYシークレットAPI key for authentication
SHODH_USER_IDUser ID for memory isolation

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

パッケージ
npm@shodh/memory-mcp0.2.0

ツール

38

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

パラメーター型必須説明
tagsarrayいいえ分類用のタグ(任意)
typeenumいいえ記憶の種類Observation | Decision | Learning | Error | Discovery | Pattern | Context | Task | CodeEdit | FileAccess | Search | Command | Conversation
rewardnumberいいえ強化学習の報酬信号(-1.0~1.0)
contentstringはい記憶する内容(観察、判断、学習など)
emotionstringいいえ主要な感情ラベル(例:'joy'、'frustration'、'surprise')
headingnumberいいえ度単位の方角(0-360)
robot_idstringいいえマルチロボットシステムのロボット/ドローン識別子
parent_idstringいいえ階層構造化に使う親メモリー ID。メモリーツリーを作成します(例:'71-research' -> 'algebraic' -> '21×27≡-1')
created_atstringいいえメモリーの任意の ISO 8601 タイムスタンプ(例:'2025-12-15T06:30:00Z')。指定しない場合は現在の時刻を使用します。
episode_idstringいいえエピソード ID。記憶を一貫したエピソード/会話にまとめます
importancenumberいいえ任意の重要度上書き値(0.0-1.0)。自動計算をバイパスします。重要度が既知の記憶に使用します:Decision=0.8、Learning=0.7、Error=0.7、Discovery=0.6、Observation=0.3
mission_idstringいいえ経験をグループ化するためのミッション識別子
action_typestringいいえアクションタイプ名(例:'navigate'、'grasp'、'dock')
credibilitynumberいいえ信頼度スコア:0.0~1.0(1.0 = 検証済みの事実、0.3 = 推論)
sensor_dataobjectいいえ生のセンサー読み取り値(例:{battery: 72.5, temperature: 23.1})
source_typeenumいいえソースタイプ:情報の入手元user | system | api | file | web | ai_generated | inferred
geo_locationarrayいいえWGS84 の GPS 座標 [latitude, longitude, altitude]
outcome_typestringいいえ結果タイプ:success、failure、partial、aborted、timeout
terrain_typestringいいえ地形タイプ:indoor、outdoor、urban、rural、water、aerial
local_positionarrayいいえメートル単位のローカル位置 [x, y, z](ロボットローカル座標系)
sequence_numbernumberいいえエピソード内のシーケンス番号(1, 2, 3...)
emotional_arousalnumberいいえ覚醒度:0.0(平静)~1.0(非常に高い覚醒状態)。例:通常タスク:0.2、重大な問題:0.9
emotional_valencenumberいいえ感情価:-1.0(ネガティブ)から 1.0(ポジティブ)、0.0 = 中立。例:バグを発見:-0.3、機能をリリース:0.7
preceding_memory_idstringいいえ直前のメモリーの ID(時間系列用)

詳細

Shodh-Memory

Shodh-Memory MCP サーバー

AI エージェント向けの永続的な認知メモリ

npm ライセンス

ドキュメント | GitHub | Python SDK | Rust クレート


特長

  • 認知アーキテクチャ:Cowan のモデルに基づく3階層のメモリ(作業、セッション、長期)
  • ヘブ学習:「一緒に発火するニューロンは結びつく」—使用するほど関連性が強まります
  • セマンティック検索:MiniLM-L6 の埋め込みを使って、意味からメモリを検索します
  • ナレッジグラフ:エンティティの抽出と関係性の追跡
  • メモリの統合:減衰、再生、強化を自動で行います
  • 冪等性:コンテンツハッシュによる重複排除 — 同じメモリが二度保存されることはありません
  • ワンクリックインストール:お使いのプラットフォーム用のネイティブサーバーバイナリを自動でダウンロードします
  • オフラインファースト:初回起動時にすべてのモデルを自動でダウンロードします(合計約38MB)。以降はインターネット接続不要です
  • 高速:API 応答は200ミリ秒未満、グラフ検索は1ミリ秒未満、セマンティック検索は30~50ミリ秒です
  • GTD タスク管理:プロジェクト、サブタスク、コメント、リマインダーを備えた完全な ToDo システム

インストール

MCP クライアントの設定に追加します:

Claude Desktop / Claude Code(claude_desktop_config.json):

{
  "mcpServers": {
    "shodh-memory": {
      "command": "npx",
      "args": ["-y", "@shodh/memory-mcp"],
      "env": {
        "SHODH_API_KEY": "your-api-key-here"
      }
    }
  }
}

設定ファイルの場所:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json

Codex CLI(.codex/config.toml):

[mcp_servers.shodh-memory]
startup_timeout_sec = 60
command = "npx"
args = ["-y", "@shodh/memory-mcp"]
env = { SHODH_API_KEY = "your-api-key-here" }

デフォルトでは、MCP サーバーは HTTP 経由でバックエンドと通信するため、すべてのプラットフォームで動作します。通常のリクエストを認証済みのローカル IPC 経由で送信するには、プラットフォームに適した値を指定して SHODH_IPC_ENDPOINT を追加してください。Windows では、サーバーが出力するユーザーごとの名前付きパイプ(通常は \\.\pipe\shodh-memory-<current-user-SID>)を使用します。macOS/Linux では、絶対パスで指定した Unix ソケット(デフォルトでは、プラットフォームのデータディレクトリ内の shodh/shodh-memory.sock)を使用します。macOS/Linux で \\.\pipe\... を指定すると、バックエンドにそのまま転送されるのではなく、拒否されます。自動起動時には、明示的に設定したエンドポイントがバックエンドに渡されるため、両方のプロセスで同じ値が使われます。

注:初回起動時には、サーバーバイナリ(約15MB)と埋め込みモデル(約23MB)がダウンロードされます。startup_timeout_sec = 60 により、初期設定に十分な時間が確保されます。

Cursor/その他の MCP クライアントの場合:npx コマンドを使った同様の設定です。

環境変数

変数説明デフォルト
SHODH_API_KEY必須。認証用の API キー-
SHODH_IPC_ENABLEDサーバーリスナーの切り替え。この値は自動起動されたバックエンドにも適用されます。true
SHODH_IPC_ENDPOINTMCP リクエスト用のローカルエンドポイント:Unix ソケットパス(macOS/Linux)または \\.\pipe\name(Windows)。設定すると、通常の MCP リクエストは HTTP ではなくローカル IPC を使用します。macOS/Linux では Windows パイプの値は拒否されます。-
SHODH_IPC_REQUIREDIPC のバインドまたは認証ができない場合にフェイルクローズします。有効時、TypeScript クライアントにも SHODH_IPC_ENDPOINT が必要です。false
SHODH_API_URLバックエンドサーバーの URLhttp://127.0.0.1:3030
SHODH_USER_ID論理メモリ名前空間。認可テナントではありませんclaude-code
SHODH_NO_AUTO_SPAWNtrue に設定すると、バックエンドの自動起動を無効にしますfalse
SHODH_STREAMストリーミング取り込みの有効/無効を切り替えますtrue
SHODH_STREAM_WEBSOCKETIPC モードのみで、SHODH_API_URL を介した WebSocket ストリーミングを明示的に有効にしますfalse
SHODH_PROACTIVEプロアクティブなメモリ表示の有効/無効を切り替えますtrue
ローカル IPC

SHODH_IPC_ENDPOINT を設定すると、ツール呼び出し、プロアクティブな表示、ヘルスチェック、リソース、プロンプトはローカル IPC を使用します。各呼び出しでローカル接続を 1 つ開き、バージョン付きの改行区切り JSON リクエストとレスポンスを 1 組交換します。フレームの上限は 8 MiB です。最初に空の認証情報によるヘルスチャレンジを行い、エンドポイントが設定済みのキーを把握していることを確認します。その後、通常のリクエストではサーバーインスタンスとリクエスト本文に紐付いた HMAC 証明を使用します。再利用可能な API キーが IPC 経由で送信されたり、MCP の標準出力に書き込まれたりすることはありません。

ストリーミング取り込みは引き続き WebSocket の機能です。ローカルプロトコルが有限のリクエスト/レスポンス方式であるため、IPC モードではデフォルトで無効になっています。明示的に有効にするには、SHODH_STREAM_WEBSOCKET=true を設定し、サーバーの HTTP WebSocket エンドポイントを指すように SHODH_API_URL を設定します。通常の操作では引き続き IPC が使用されます。

SHODH_IPC_ENDPOINT が設定されていない場合、MCP サーバーは従来の HTTP および WebSocket の動作を維持します。この変数を設定すると、トランスポートが明示的に選択されます。IPC エンドポイントを利用できない場合は、HTTP による再試行を黙って行わず、その旨を報告します。

REST と同様に、SHODH_USER_ID は論理名前空間です。設定された API キーは、すべての名前空間に対する権限を持ちます。相互に信頼されていないテナント間で認可境界が必要な場合は、サーバーとキーのインスタンスを分けてください。

MCP ツール(合計 51 個)

メモリ — メモリの保存、検索、管理
ツール説明
remember種類、タグ、メタデータを指定してメモリを保存します
recall関連するメモリを見つけるためのセマンティック検索です。完全な本文をインラインで取得するには、full_content: true を指定します
proactive_context現在のコンテキストに関連するメモリを自動的に提示します。完全な本文をインラインで取得するには、full_content: true を指定します
context_summaryセッション開始時に使用する、分類されたコンテキストを取得します
list_memories保存されているすべてのメモリを一覧表示します
read_memoryID を指定して、特定のメモリの全文を読み取ります
forgetID を指定して、特定のメモリを削除します

メモリのプレビューと切り詰め。 recall、recall_by_tags、proactive_context は、各メモリ本文のプレビューを返します(デフォルトの上限:500 文字)。本文が上限を超える場合、出力は、実際の文字数と後続の呼び出しを示す明示的で正確なマーカー付きで切り詰められます。例:…[truncated 500/2340 chars — read_memory("<id>") for full]。プレビューがマーカーなしでひそかに切り詰められることはありません。マーカーがなければ、本文全体が表示されています。完全な本文をインラインで取得する(マーカーなし)には、これら 3 つのツールのいずれかで full_content: true を指定します。トークン使用量が増えるため、少数の結果を取得する場合に使用してください。read_memory は常に、切り詰められていない全文を返します。

ToDo(GTD) — プロジェクトとサブタスクによるタスク管理
ツール説明
add_todo優先度、期限、プロジェクト、コンテキストを指定してタスクを作成します
list_todosセマンティック検索または GTD 形式のフィルタリングで ToDo を一覧表示/検索します
update_todoタスクのプロパティ(ステータス、優先度、メモ)を更新します
complete_todoタスクを完了としてマークします(繰り返しタスクの場合は次のタスクを自動作成します)
delete_todoタスクを完全に削除します
reorder_todoステータスグループ内でタスクを上または下に移動します
list_subtasks親 ToDo のサブタスクを一覧表示します
add_todo_commentタスクにコメント(進捗、解決内容)を追加します
list_todo_commentsタスクのすべてのコメントを一覧表示します
update_todo_comment既存のコメントを編集します
delete_todo_commentコメントを削除します
todo_statsステータス別の ToDo 統計と期限超過の項目を取得します
プロジェクト — ToDo をグループに整理
ツール説明
add_project親プロジェクト(サブプロジェクト)を任意で指定してプロジェクトを作成します
list_projectsToDo の件数とともに、すべてのプロジェクトを一覧表示します
archive_projectプロジェクトをアーカイブします(非表示になりますが、復元可能です)
delete_projectプロジェクトを完全に削除します
リマインダー — 時刻、期間、コンテキストに応じたリマインダー
ツール説明
set_reminderリマインダーを設定します(時刻、期間、またはキーワードによるトリガー)
list_reminders保留中/トリガー済み/解除済みのリマインダーを一覧表示します
dismiss_reminderトリガーされたリマインダーを確認します
システム — ヘルスチェック、バックアップ、診断
ツール説明
memory_stats保存されているメモリの統計情報を取得します
verify_indexベクトルインデックスの整合性を確認します
repair_index孤立したメモリを再インデックスします
token_status現在のセッションのトークン使用量を取得します
reset_token_session新しいセッション用にトークンカウンターをリセットします
consolidation_reportメモリの統合アクティビティを表示します
backup_createすべてのメモリのバックアップを作成します
backup_list利用可能なバックアップを一覧表示します
backup_verifyバックアップの整合性を検証します(SHA-256)
backup_restoreバックアップから復元します
backup_purge古いバックアップを削除し、最新の N 件を保持します

REST API(開発者向け)

サーバーは http://127.0.0.1:3030 で REST API を公開しています:

// Store a memory
const res = await fetch("http://127.0.0.1:3030/api/remember", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": "your-api-key"
  },
  body: JSON.stringify({
    user_id: "my-app",
    content: "User prefers dark mode",
    memory_type: "Observation",
    tags: ["preferences", "ui"]
  })
});

// Semantic search
const results = await fetch("http://127.0.0.1:3030/api/recall", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": "your-api-key"
  },
  body: JSON.stringify({
    user_id: "my-app",
    query: "user preferences",
    limit: 5
  })
});
主なエンドポイント
エンドポイントメソッド説明
/healthGETヘルスチェック
/api/rememberPOSTメモリを保存
/api/recallPOSTセマンティック検索
/api/recall/tagsPOSTタグで検索
/api/recall/datePOST日付範囲で検索
/api/memoriesPOSTすべてのメモリを一覧表示
/api/memory/{id}GET/PUT/DELETECRUD 操作
/api/context_summaryPOSTコンテキストの要約を取得
/api/relevantPOSTコンテキストを先回りして提示
/api/batch_rememberPOST複数のメモリを保存
/api/upsertPOSTexternal_id に基づいて作成または更新
/api/graph/{user_id}/statsGETナレッジグラフの統計情報
/api/consolidation/reportPOSTメモリ統合レポート
/api/index/verifyPOSTインデックスの整合性を検証
/metricsGETPrometheus メトリクス

認知機能

ヘッブ学習

頻繁に同時にアクセスされるメモリは、より強い関連を形成します。システムは自動的に以下を行います。

  • 同時に取得されたメモリ間にエッジを形成
  • 同時活性化が繰り返されると、つながりを強化
  • 永続的な関連のために長期増強(LTP)を実現
メモリの統合

バックグラウンドプロセスがメモリの健全性を維持します。

  • 減衰:使用されないメモリの活性度が徐々に低下します
  • リプレイ:価値の高いメモリを定期的に再生します
  • 刈り込み:弱い関連を削除します
  • 昇格:重要なメモリを長期ストレージに移動します
3 層アーキテクチャ

Cowan のワーキングメモリモデルに基づいています。

  1. ワーキングメモリ:最近の、活性度が非常に高いメモリ
  2. セッションメモリ:現在のセッションのコンテキスト
  3. 長期メモリ:ベクトルインデックスを備えた永続ストレージ

動作の仕組み

  1. インストール:npx -y @shodh/memory-mcp でパッケージをダウンロードします
  2. 自動起動:初回実行時に、ネイティブサーバーバイナリ(約 15MB)と埋め込みモデル(約 23MB)をダウンロードします
  3. 接続:MCP クライアントは stdio 経由でこの MCP サーバーに接続します。バックエンドへのリクエストは、SHODH_IPC_ENDPOINT が設定されている場合はローカル IPC を使用し、それ以外の場合は HTTP を使用します
  4. 準備完了:remember と recall ツールの使用を開始します
  5. セッション終了:ホストが stdin を閉じると(Claude Desktop のスレッド切り替え時など)、シムは処理中のツール呼び出しを完了し、終了前に応答を開いたままの stdout に書き込みます。そのため、処理中のリクエストが通知なく破棄されることはありません。ドレイン処理には猶予時間の上限があり、時間を超えた場合は、ホストのタイムアウトまで待つ代わりに、呼び出し元に明示的なエラーが返されます。

バックエンドサーバーはローカルで実行され、すべてのデータをお使いのマシンに保存します。クラウドへの依存はありません。

使用例

"Remember that the user prefers Rust over Python for systems programming"
"Recall what I know about user's programming preferences"
"What context do you have about this project?"
"List my recent memories"
"Show me the consolidation report"

プラットフォームのサポート

プラットフォームアーキテクチャ状態
Linuxx64サポート対象
macOSx64サポート対象
macOSARM64 (M1/M2)サポート対象
Windowsx64サポート対象

関連パッケージ

  • Python SDK:pip install shodh-memory - ネイティブ Python バインディング
  • Rust クレート:cargo add shodh-memory - ライブラリとして使用

リンク

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

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

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