Compartment について
Compartmentは、AIエージェント向けのオフライン暗号化メモリMCPサーバーです。ローカルの保管庫に永続メモリを保存し、エージェントやセッション間で共有します。ベクトル・キーワード検索に加え、出典や日付、期限、関係リンクを扱います。
主な機能
- 01暗号化されたローカルメモリ保管庫
- 02ベクトル・キーワード検索
- 03メモリの出典、日付、期限
- 04関係、タグ、意見の更新
- 05ネットワーク不要のローカル埋め込み
- 06ダッシュボードとエージェント連携
活用シーン
- 01セッションをまたいだエージェントメモリの共有
- 02機密メモリデータのオフライン保持
- 03出典や日付を含む事実の検索
- 04保管庫の内容とメモリ関係の確認
MCP 対応
Compartmentは、MCPクライアントにメモリの保存・検索、関係の照会、最近のメモリ表示を提供します。Claude Code、Claude Desktop、Hermes Agent、OpenClaw、Cursor、CodexなどのMCPクライアントで利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
14掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| kind | enum | いいえ | fact | opinion |
| tags | any | いいえ | |
| text | string | はい | |
| source | string | はい | |
| expires | any | いいえ | |
| namespace | any | いいえ | |
| discovered | any | いいえ | |
| importance | number | いいえ | |
| supersedes | any | いいえ | |
| quarantined | boolean | いいえ |
詳細
Compartment
AI エージェントのための、暗号化された完全オフラインのメモリです。 お使いのコンピューターに保管する単一のボルトを、Claude Code、Claude Desktop、Hermes Agent、OpenClaw、Cursor、Codex、その他あらゆる MCP クライアントが読み書きできます。API キーも、アカウントも、ネットワーク接続も、テレメトリーも不要です。
ワンクリックでインストール(インストール後に compartment init を実行してください):
Claude Code、Claude Desktop、Hermes Agent、OpenClaw は、代わりに 1 つのコマンドで連携できます:compartment integrate claude、hermes、または openclaw。
Compartment は、AI エージェントのための永続メモリで、お使いのコンピューターに保存されます。あるセッションでエージェントが学んだことは、それ以降のすべてのセッション、すべてのプロジェクト、マシン上のすべてのエージェントで利用でき、マシンの外に出ることはありません。
各メモリは、情報源と学習した日付を記録した単一の主張です。メモリには有効期限を設定できます。expires を設定すると、その日付を過ぎた後にメモリが削除されます。好みが変わると、新しい内容が古い内容に置き換わります。想起には、メモリ内インデックスに対するベクトル検索とキーワード検索を組み合わせて使用します。約 12 ms で回答し、関連する情報だけを返します。
埋め込みモデルはパッケージに含まれています。埋め込みベクトルを含め、ディスク上のすべてのデータが暗号化されており、パスフレーズだけがそれを開く鍵になります。新しいボルトには、ハードウェア、オペレーティングシステム、ポート、エンコーディング、シェルツールに関する約6,700件の参考情報が含まれています。これらは通常のメモリであり、スイッチを1つ切り替えるだけで検索対象から除外できます。
他のメモリサーバーとの比較
各プロジェクトが2026年9月2日時点で公開しているドキュメントに基づき、各サーバーがメモリを保存する場所と、その保護方法を示します。出典と表の完全版は docs/COMPARISON.mdにあります。このファイルへのPRでの修正提案を歓迎します。
| 保存時のメモリ | 暗号化 | アカウント/API キー | 実行時のネットワーク通信 | |
|---|---|---|---|---|
| Compartment | 暗号化された単一ファイル。インデックスはRAM上 | あり。ベクトルも対象 | なし | なし。CIで強制 |
@modelcontextprotocol/server-memory | 平文のmemory.jsonl。部分文字列検索 | なし | なし | なし |
| mem0(オープンソース) | ベクトルストア+LLMで抽出した事実。MCPサーバーはホスト型のみ | ドキュメントに記載なし | LLMキー | LLM呼び出し。テレメトリーはデフォルトで有効 |
| Graphiti(Zep)/Letta | Neo4j/サーバー+データベース | ドキュメントに記載なし | LLMキー | LLM呼び出し。テレメトリーはデフォルトで有効 |
| claude-mem | ローカルSQLite+Chroma | ドキュメントに記載なし | サインインが必要 | アカウント+プロバイダーへの呼び出し。テレメトリーはデフォルトで有効 |
| basic-memory(AGPL) | Markdown+SQLite | ドキュメントに記載なし | なし | テレメトリーはデフォルトで有効 |
| Hindsight(Vectorize) | PostgreSQLを組み込んだ単一コンテナー | ドキュメントに記載なし | LLMキー(ローカルモデルを設定可能) | LLM呼び出し。ベンダーはテレメトリーを行わないと明言 |
| Supermemory | クラウドサービス、またはセルフホスト可能なビルド済みバイナリ | ドキュメントに記載なし | アカウント(クラウド)またはLLMキー(セルフホスト) | クラウドへの呼び出し。セルフホストの場合、ベンダーはテレメトリーを行わないと明言 |
| Cognee | ローカルのSQLite+LanceDB+Kuzu、またはクラウド | ドキュメントに記載なし | LLMキー | LLM呼び出し。テレメトリーはデフォルトで有効 |
| MemOS | セルフホストのNeo4j+Qdrant、またはクラウド | ドキュメントに記載なし | LLMキー | LLM呼び出し。テレメトリーはデフォルトで有効 |
メモリの仕組み
ほぼすべてが保存されます。 空のターンだけが破棄されます。単独の「OK」もノイズではなく意思決定です。エージェントが 「この返信を今すぐクライアントに送りますか?」 と尋ね、ユーザーが 「OK」 と答えた場合、Compartmentはその回答の対象となった質問と一緒に意思決定を保存します。雑談も保存されますが、ランキングは最下位になります。
重要度は固定の段階で割り当てられます。 意思決定と同意は0.90、個人情報と好みは0.80、ユーザーのマシンと構成は0.75、その他の実質的な発言は0.55、雑談は0.20です。重要度はマッチスコアに加算されるのではなく乗算されるため、僅差の場合に重要な情報が優先されます。また、質問にマッチしなかったメモリが検索結果に現れることはありません。
1件のメモリにつき主張は1つに限定され、強制されます。 ストアは200文字を超えるもの(設定項目max_memory_chars)や、リスト、見出し、段落を含むものを拒否し、分割方法を示すエラーを返します。指示だけではうまくいきませんでした。実際のボルトでは、エージェントが書き込んだメモリの中央値は、箇条書きのセッションログで1,938文字でした。memory_store_manyを使うと、1回の呼び出しでまとめて保存できます。compartment atomizeは既存のボルト内で上限を超えたメモリを分割します。分割された各項目には元のメモリの日付が引き継がれ、元のメモリには置き換え済みの印が付きますが、IDを指定すれば引き続き読み取れます。
すべてのメモリに出典と日付が記録されます。 sourceは必須です。値は「チャットから」「pyproject.tomlから読み取り」「ウェブ検索」などです。discoveredは、その事実を知った日付であり、保存した日付とは別です。どちらも、たとえば[ウェブ検索、2026-08-01]のような短い句としてテキストに追記されます。
メモリには有効期限を設定できます。 セール価格、予約、ドアの暗証番号など、既知の日付を過ぎると事実でなくなる情報には、expiresにその日付(2026-09-03)または期間(14d、2w、3m、1y)を設定します。その日付を過ぎるとメモリは削除されます。compartment expireを実行すると手動で一括削除でき、expire_memoriesを設定すると無効になります。ほとんどの事実には有効期限を設定しないでください。誤った期限を設定すると、ユーザーが必要としていたメモリが削除されます。
事実は蓄積され、意見は更新されます。 新しい事実は、ほかの事実に加わります。ドアの暗証番号が変わった、スクリプトがあるパスに保存されている、リリースが公開された、といった事実です。意見は別の意見に置き換わります。kind="opinion" を指定して好みを保存すると、ボルトはまず類似する有効な意見を探します。見つかった場合は新たに挿入せず、古いレコードを返します。呼び出し側は supersedes=[old id] を指定して再送し、置き換えるか、supersedes=[] を指定して両方を残します。有効な意見を言い換えて保存すると、コピーを保存する代わりに日付が更新されます。置き換えられたレコードは検索対象から外れますが、監査チェーンには保持され、ID を指定すれば読み取れます。また、置き換え先へのポインターも保持されます。supersedes は事実の訂正にも使えます。意見のランキングには事実のランキングにはない鮮度ボーナスがあるため、最新の意見が優先されます。compartment opinions audit を実行すると、古いボルト内で重複する有効な意見を見つけ、最新のものを残すか、手動で統合するために報告します。
キャプチャはモデルに依存しません。 システムプロンプトで独自のメモリを定義するホストは、ツールへの指示を上書きできます。そのため、integrate claude は PostToolUse フックをインストールし、モデルがツールを呼び出すかどうかにかかわらず、Claude Code が保存する各メモリファイルをボルトに書き込みます。このフックはほかのフックには触れず、まず settings.json をバックアップし、エディターを決して妨げないよう常に正常終了し、ボルトがロックされている間は何もしません。compartment hook status | install | uninstall を実行するか、integrate claude --no-hooks を指定してください。compartment import-claude
は、フックが取り込めなかったデータをインポートします。
検索では、固定件数ではなく関連性の高い結果が返されます。 Compartment は、同じ質問に対する最良の結果と比較してスコアが十分に高いメモリを、余裕のある上限まで返します。スコアは質問ごとに比較できないため、結果のカットオフは相対的です。実際のボルトでは、意味のない質問「サワードウブレッドの焼き方」のスコアが、実際の質問「Max は Airtable について何を決めたか」より高くなりました。ボルトに答えがない質問には、何も返されません。top_k を指定すると、ちょうどその件数が返されます。
タグは最新の状態に保たれます。 メモリの内容は変わりませんが、関連する対象は変わります。Northwind というプロジェクトに取り組んでいるときに、クライアントが結論より先に数値を見たいと考えていることを学んだとします。エージェントはそのメモリに northwind タグを付けます。2 年後、同じクライアントが Harbour という名前で再び依頼し、エージェントが harbour タグで検索しても、メモリの内容は依然として正しいのに、タグフィルターでは見つかりません。そこで、バックグラウンド処理によって、各メモリに、埋め込み空間で最も近い近傍が付けられているタグを、類似度に応じて重み付けして付与します。Harbour に関するメモリがその古いメモリの近くに蓄積するにつれて、harbour タグが付くようになります。さらに 2 つのシグナルも同時に働きます。ほぼ常に一緒に現れるタグは互いを示唆し、既存のタグのフレーズがメモリのテキストに現れると、そのタグが付与されます。この処理で書き込まれるのはタグだけで、テキスト、日付、埋め込みは変更されません。--prune を指定しない限りタグは追加のみで、tags_origin は元のタグを保持します。また、compartment retag --dry-run で変更内容を確認できます。
リストだけでなくグラフも利用できます。 memory_link は関係を記録します。主語、述語、目的語に加え、任意でメモリと有効期間を指定できます。memory_relations は、エンティティ別、述語別、または指定日時点の関係を返します。Compartment は関係を決定論的に保存し、照合します。何をリンクするかはホストモデルが判断します。
メモリはデータであり、指示ではありません。 想起されたメモリには、保存されたデータであることを示す注意書きが付けられます。信頼できないソースからの内容には quarantined のマークを付けられ、想起するたびに警告が追加されます。それでも、ホストエージェントはメモリをデータとして扱う必要があります。
1 つのボルトにつき埋め込みモデルは 1 つです。 モデルの SHA-256 がボルトに記録され、開くときに照合されるため、類似度スコアの比較可能性が保たれます。モデルを変更するには、compartment reindex --re-embed を実行します。
LLM は内部にありません。 埋め込みは、同じマシン上のすべてのエージェントが共有する約 70 MB の単一プロセス内で、同梱の 384 次元 int8 ONNX モデルを使ってローカルで実行されます。何を保存し、何を忘れるかはホストモデルが判断し、Compartment がキャプチャ、暗号化、呼び出しを行います。この分離により、オフラインであることが確実に保たれ、すべての判断が再現可能になります。オフライン LLM を使えば、エージェント全体がネットワーク接続なしで動作します。
学習した内容を確認できます。 compartment recent は最新のメモリを一覧表示し、参照用の事実を非表示にして、自分のメモリが見えるようにします。
compartment status は、合計件数の横に organic_records を表示します。
memory_recent は、MCP で同じ内容を表示します。
アプリとダッシュボード
各システムで同じパネルを使用します。macOS ではメニューバー、Windows では通知領域、Linux ではアプリケーションメニューに表示される通常のウィンドウです。Linux では意図的にウィンドウを採用しています。GNOME や Wayland ではトレイアイコンが表示されない場合があり、メモリのロックを解除する操作が何も通知されず失敗してはならないためです。
パネルには、ボルトが開いているかどうか、保存されているメモリの数と自分が保存した数、変更する価値のある 3 つの設定(キャプチャフック、検索結果に参照用の事実を表示するかどうか、自動ロック)、接続中のエージェント(Claude、Hermes Agent、OpenClaw を接続するボタン付き)、そして最新 5 件のメモリが表示されます。ターミナルを使わずに、パネルからロック解除、ロック、パスフレーズの変更ができます。パネルは直前に読み込んだ内容をすぐに表示し、実際に変更があった場合に限り、バックグラウンドで更新します。使用中は、1 つのヘルパープロセスがボルトを読み取り専用で開いたままにし、エージェントが追加した新しいメモリだけを読み込みます。10 分間操作がないと終了するため、アイドル状態のアプリがボルトやキーを保持することはありません。閲覧によってボルトがロック、ロック解除されたり、書き換えられたりすることはありません。このアプリは、習得が必要なものではなく、コンピューター上にある数多くのアプリの 1 つとして使えることを目指しています。すべての機能はボタンまたはスイッチから操作でき、デフォルト設定は計測に基づいて選ばれています。
ダッシュボードボタンを押すと、ブラウザーでボルト全体を表示できます。時間の経過に伴う増加、すべてのエンティティ名を表示した関係グラフ、タグ、エージェントごとの件数、ライブ検索を確認できます。これは RAM から 127.0.0.1 のみで提供され、読み取り専用で、外部へのリクエストはありません。
数学的な仕組み
以下のすべては、ボルト、ダッシュボード、ベンチマークで使用される 1 つのファイル、
src/compartment/ranking.py に記述されています。そのため、ベンチマークスコアは製品そのものを測定します。
ストレージ:長いメモリはウィンドウ単位で埋め込みます
エンコーダーが読み取るのは 512 トークンです。それを超えるテキストはまったく認識されないため、以前は長いメモリは冒頭部分だけでしか検索できませんでした。実際の 6,705 件のメモリを持つボルトでは、レコードの 40% がウィンドウを超えており、テキストの 57.6% がセマンティック検索から見えない状態でした。
そこで、各レコードを W = 448 トークンの重複ウィンドウに分割し、S = 384 トークンずつずらします。これにより 64 トークンが重複し、事実が途中で分断されないようにします。レコードのスコアには、最も高いウィンドウのスコアを使います。
windows(d) = ceil( max(0, tokens(d) - W) / S ) + 1 capped at 64
s_vec(d) = max over windows w of d : cos(q, w)
平均ではなく最大値を使います。メモリはその一部でも関連性があれば関連しており、平均値では長いメモリのほかの部分がペナルティになります。レコードごとのウィンドウが 1 つなら、これは以前の動作と同じなので、短いメモリには影響しません。ほとんどのメモリは短く、6,705 件のレコードから生成されたウィンドウは 6,785 個でした。ウィンドウの長さは文字数ではなくモデルのトークン数で測ります。文字数を基準にすると、通常の文章と 16 進ダイジェストでは予算に 3 倍の差が生じるためです。
リコール:証拠として組み合わせる2つのチャネル
2つのインデックスは、それぞれ異なる問いに答えます。ベクトルインデックスはメモリの意味を、キーワードインデックスはメモリに何が書かれているかを答えます。それぞれのスコアは同じ尺度ではなく、それらを組み合わせることが課題のすべてです。
4.7まで、Compartmentはそれらを足していました。単純に足すと、そこそこ良い意味的マッチが決定的な文字列一致の証拠を上回ることがあります。実際のボルトで、1つだけのメモリに含まれるコミット SHA を検索したところ、そのメモリは、内容を言い換えた10件のメモリよりも低い順位で返されました。合計スコアによって、キーワード一致の1位が埋もれていたのです。
2つのチャネルは加算するものではなく、選択肢です。どちらか一方だけでも関連性を確立できます。独立した証拠を対象とするソフト OR です。
P(relevant) = 1 - (1 - p_vec)(1 - p_lex)
スコアはその対数です。順位は同じまま、結果が上位で1に飽和せずに広がるようになります。
score(d) = - w_vec · log(1 - p_vec(d)) - w_lex · log(1 - p_lex(d))
w_vec = 0.75 w_lex = 0.25
どちらかのチャネルがほぼ確実なら、それだけでメモリを選べます。もう一方がそれを拒むことはありません。
コサイン類似度を確率に変換する。 L2 正規化されたエンコーダーは、クエリ間で比較可能なコサイン類似度を出力するため、固定の上下限でマッピングできます。クエリごとの最小値・最大値による正規化では、望みの薄いクエリの最良の結果が 1.0 に引き上げられ、その情報が失われてしまいます。
p_vec(d) = clamp( (cos(q, d) - 0.25) / (0.85 - 0.25), 0, 0.88 )
上限を 0.88 にすることが重要です。コサイン類似度は類似性であり、同一性ではありません。エンコーダーが判断できるのは「これは同じものについての話だ」までで、「これは指定された記録だ」とは判断できません。あるメモリにしかない文字列とのリテラル一致なら、それができます。そのため、セマンティックチャネルの上限はリテラルチャネルが到達できる値より低く設定されており、その上限は重みによって決まります。リテラルチャネルの最大値は 0.25 · -log(1 - 0.999) = 1.727 なので、0.75 · -log(1 - cap) < 1.727 となり、cap < 0.90 です。
キーワードのヒットを確率に変換する。BM25 は使いません。 BM25 は文書がどれだけよく一致するかを測定しますが、それだけではセマンティックなヒットとの比較は決まりません。比較を決めるのは、その一致が偶然に起きる可能性がどれほど低いかです。各クエリ語はボルト内で自己情報量を持ち、メモリのスコアは、クエリの情報量のうちそのメモリがどれだけを占めるかを示します。
I(t) = log( N / (1 + df(t)) ) N = records in the vault
p_lex(d) = ( Σ I(t) for query terms t present in d ) / ( Σ I(t) for all t )
1つのメモリにしかない語はほぼ決定的な証拠になり、ボルトの10分の1に含まれる語は、その BM25 がどうであれ、ほとんど情報になりません。これによって、リテラル一致とセマンティックなヒットを比較できるようになります。
キーワードインデックスは、まず AND で検索します。完全一致のフレーズが最も強いシグナルだからです。FTS5 の暗黙の AND では、9語の質問は語句どおりに出現しなければなりません。そのため、AND で何も見つからない場合は、有益な語だけを対象とする OR にフォールバックします。レコードの10%を超えて出現する語は除外されます。このしきい値は英語のストップワードリストから取るのではなく、ボルトから算出するため、コード、名前、その他の言語でも同じように機能します。
小さな順位一致項も加えます。逆順位融合が得意とする要素を、同順位を解消する程度の大きさで加えます。
+ w_rrf · k · [ 1/(k + rank_vec) + 1/(k + rank_lex) ] w_rrf = 0.10, k = 20
重要度と新しさによるスコアの並べ替え
evidence(d) = aged( vec term, q(d) ) + lex term + rank residue
final(d) = evidence(d) · ( 1 + w_imp · (2·importance(d) - 1) + w_op )
aged(s, q) = log( 1 + 2^( -q / half_life_share ) · (e^s - 1) )
q(d) = share of the vault's own memories written after this one
half_life_share = 0.5, so the median memory is worth half the odds
w_imp = 0.15, for facts and opinions alike
w_op = 0.30 · 2^( -age_days / 30 ) for an opinion, from the last
re-affirmation (`affirmed`); 0 for a fact
乗算方式なので、事前確率で並べ替えられるのは、すでに一致した記憶だけです。 加算方式では、関連性のない質問に対して重要な記憶が表面化してしまいます。何にも一致しなかった記憶のスコアはゼロで、そのままです。
デフォルト値の0.5を中心にしています。そのため、2·importance - 1を使います。重み付けされていない記憶はすべて0.5で、何千もの参照情報も含まれます。そのため、中心化しないと、すべてに同じ加点が与えられ、重要度が機能しません。中心化すると、重み付けされていない記憶は中立となり、意図的に設定された重みだけが影響します。
記憶の経過時間は、日数ではなく記憶の数で数えます。 事実は6か月経っても正確さを失いません。古い記憶が不適切な回答になるのは、保管庫の内容が更新されたためであり、どれだけ更新されたかは、どれだけ書き込まれたかによって決まります。つまり、記憶の古さは、それより後に書き込まれた保管庫の割合です。2件の記憶が2週間で追加されても、2週間前の記憶には影響しません。同じ2週間に500件追加されると、意味的な証拠に基づく確度は半分になります。数える対象は、検索対象の名前空間にある保管庫内の現行の記憶です。参照情報やインストール済みパックは対象外です。これらは一度に何千件も追加され、この意味での経過時間を持たないためです。
この変動は意味的なチャネルにのみ、オッズに対して適用されるため、強い一致はわずかに調整され、弱い一致は縮小されます。リテラルな識別子には適用されません。たとえば、ちょうど1件の記憶に現れるコミットSHAは、昨日書かれたか昨年書かれたかにかかわらず、その記憶を示します。また、関連性の下限値は経年変化を適用する前のスコアを参照するため、新しさは結果の順序だけを決め、返される結果を左右することはありません。そのため、返された記憶の報告されるscoreは経年変化を適用した値となり、通過した絶対下限値を下回る場合があります。つまり、下限値は保管庫が適用する足切りであり、返される数値の性質ではありません。
意見にはこれに加えて2つ目の事前確率が適用されます。こちらは経過時間に基づき、最後に再確認されてから30日ごとに半減するため、同じテーマでは最新の意見が優先されます。
検索順序
名前空間、タグ、日付、参照情報のフィルターはランキングの後に実行されます。そのため、要求された結果数に合わせた候補群は、フィルターによって空になることがありますが、一致する記憶がその範囲のすぐ外に残っている場合があります。候補群はチャネルごとに200件から始まり、フィルタリング後の件数が不足すると最大3倍まで拡大します。レコード数が20,000件未満の場合、ベクトル検索は厳密検索です(SIMD行列演算、再現率1.0)。それを超えると、再現率約99%のHNSWを使います。ただし、マシン上でusearchがSIMDを利用できない場合は除きます。エージェントのサンドボックスによって、プローブ対象のCPU機能が隠されることがあります。この場合は、SIMDなしでHNSWを再構築すると、レコード数25,000件で50秒以上かかるため、厳密なインデックスを維持します。
セキュリティとロックモデル
基本機能:保存データすべてをXChaCha20-Poly1305で暗号化します。ベクトルはテキストに逆変換できるため、埋め込みベクトルも対象です · Argon2idのキースロット(LUKS方式) · レコードごとにキーを設定するため、forget --shredを実行するとキーが破棄され、内容は復元不能になります。削除済みの印を付けるだけではありません · fsyncで書き込みを確定する封印済みジャーナル、アトミックな圧縮、kill -9からの復旧テスト · ハッシュチェーン形式の監査ログ(compartment audit verify) · 署名済みの保管庫マニフェストとパック · stdioトランスポートを使い、ポートは開きません。唯一のローカルソケットは、共有埋め込みプロセスのUnixソケットで、ロック解除用の認証情報と同じプライベートディレクトリにあります。テキストを受け取ってベクトルを返し、キーを扱うことはありません · ネットワークソケットへの接続を試みると中断するランタイムガード(--assert-offline)。CIではLinux、macOS、Windows上でガードを有効にしたまま、テストスイート全体を実行します。Compartmentが保護できない対象を含む完全な脅威モデルについては、SECURITY.mdをご覧ください。
アプリから
日々の操作はすべてボタンで行えます。Unlock を押すとパスフレーズを求められます。Lock を押すとボルトを閉じ、保存されているすべての認証情報を消去します。Change password でキーを再設定し、Auto-lock では操作がない状態が続いたときに自動ロックするまでの時間を15分、30分、60分、またはなしから選べます。Compartment がパスワード、シード、リカバリーフレーズを生成することはなく、あなたが預けていない認証情報を保持することもありません。
ロックを解除すると、再起動または電源喪失が起きるまで、オートロックのタイマーが作動するまで、または自分でロックするまで、ログアウトやログインを挟んでもプロセス間でボルトは開いたままです。再起動または電源喪失が起きると、必ずロックされます。ロック解除用の認証情報は、カーネルメモリにのみ保存され、ディスクには決して書き込まれない起動ごとにランダムなシークレットでマスターキーをラップしたものなので、新たな起動ではボルトを開けません。認証情報ファイルだけをコピーしても役に立ちません。
コマンドラインから
同じ操作に加えて、ここでのみ使える操作が2つあります。
compartment unlockとcompartment lockはボタンと同じ操作を行います。エージェントはmemory_lockツールでロックできます。(リカバリーフレーズを発行していた旧バージョンのボルトでは、引き続きそのフレーズを使用できます。)compartment 2fa enableを実行すると、2つ目の認証要素として、パスフレーズにキーファイル(たとえばUSBメモリ上のファイル)を追加できます。両方をまとめて Argon2id に入力するため、この要件は設定ではなく暗号処理によって強制されます。盗まれたボルトファイルとパスフレーズがあっても、キーファイルなしでは開けません。キーファイルの場所は記憶されるので、キーファイルがあればロック解除の操作は変わりません。- macOS での
compartment unlock --keychainは、明示的にオプトインする機能で、再起動後も有効です。
memory_unlock MCP ツールもありますが、デフォルトでは無効です。有効にするとパスフレーズがモデルのコンテキストに入るためです。
1つのボルトを複数のエージェントで、どのマシンでも
コマンドラインを使わない場合
マシン上のすべてのエージェントが同じボルトを使用し、特別な設定も必要ありません。アプリの Connect an agent ボタンで Claude、Hermes Agent、OpenClaw を接続でき、あるエージェントが保存した内容をほかのエージェントも呼び出せます。Claude、Hermes Agent、Cursor、CLI は同時にボルトを使用できます。書き込みはファイルロックによって直列化され、各プロセスはほかのプロセスによる書き込みを検知して再読み込みします。また、各エージェントはそれぞれ独自のアイデンティティと名前空間を持ちます。各サーバーは1つの埋め込み処理プロセスも共有するため、エージェントが10個あってもRAM上で使うモデルは1つです。最後のエージェントが終了してから数分後に、そのモデルは終了します。
ロックされたボルトは、ホームディレクトリの .compartment フォルダーにある memory.vault という1つのファイルです。別のマシンに移すには、ボルトをロックし、そのマシンにファイルをコピーして、Compartment をインストールし、アプリでパスフレーズを使ってロックを解除します。
コマンドラインから
同じ方法で、受け取り側が確認できるよう署名を付けて移動できます。さらに、万一の場合に備えた方法もあります。
compartment lock --sign
scp ~/.compartment/memory.vault other-machine:
compartment --vault memory.vault unlock # your passphrase (+ keyfile if 2FA)
lock --sign を指定すると、受け取り側が認証情報なしで compartment verify を使って確認できる Ed25519 マニフェストが追加されます。export --plaintext はボルトを JSONL として書き出し、import はそれを読み戻すので、いつでもボルトから移行できます。FORMAT.md では、.vault ファイルと .mpack ファイルの仕様をバイト単位で定めています。エージェントごとの名前空間には、設定ファイルで rw、ro、none の権限を指定できるため、スクラッチ用エージェントには書き込みを許可せず、読み取りのみ許可できます。
メモリパック は、厳選されたメモリをまとめた署名付きの読み取り専用バンドルです(compartment pack build | install | remove | list | export)。packs/<name> にインストールされ、すべての呼び出し元に対して読み取り専用となります。include_packs_in_search で検索対象に含めるかどうかを切り替えられます。パックの署名は、信頼している鍵と照合されます。パック内の鍵とは照合されません。参照用ファクトは、main に通常のメモリとして保存される唯一のパックです。PACKS.md では作成方法を説明しています。
compartment setup airgap-bundle はネットワークに接続されていないマシン向けのインストールを準備します。setup download-model と setup download-longmemeval は、任意のベンチマークに必要なデータを取得します。
8 GB をベースラインとするノート PC での測定値
以下の数値はすべて、お使いのマシンで compartment selftest と compartment bench を実行すれば再現できます(--longmemeval は検索ベンチマークを実行します)。compartment embed-daemon status では、共有プロセス自体のサイズを確認できます。
| 指標 | 測定値 |
|---|---|
| 新規インストールからオフラインで保管庫を開くまで | 数秒、ネットワーク通信ゼロ |
| 20k レコードのベクトル検索(HNSW) | p95 0.68 ms |
| ハイブリッド検索全体(埋め込み+ウィンドウ+キーワード+エビデンスの統合) | 中央値 11.6 ms、p95 14.7 ms |
| 共有埋め込みプロセス(モデル読み込み済み、マシンごとに一度) | 常駐メモリ 68 MB |
| 長いテキストウィンドウを64件ずつ2バッチ処理した後 | 71 MB。4.9.6 以前は各エージェントのサーバーが 1.5 GB、次いで 3 GB を使用 |
| モデルを共有デーモンに配置した MCP サーバープロセス | 60 MB に、保管庫とインデックスの分を加算 |
| メモリを1件保存(埋め込み+暗号化+ジャーナルの fsync) | 約40 ms |
| ホイールサイズ(モデルを含む) | 約30 MB |
| テストスイート(暗号、改ざん、クラッシュ、オフライン、並行処理、2FA、グラフ、ダッシュ、ランキング) | 800件以上のテスト、オフラインガード有効 |
インストール
コマンドラインは不要です。 Mac では、最新リリースから Compartment-<version>.pkg(Apple シリコン)または Compartment-<version>-intel.pkg(Intel)をダウンロードして開きます。Python、埋め込みモデル、すべての依存関係がパッケージに含まれています。パスフレーズの設定を求められ、保管庫が作成されます。Compartment はメニューバーに追加され、Connect an agent ボタンから残りの設定を行えます。
コマンドラインからインストールする場合は、どのシステムでも次のとおりです。
| pipx(推奨) | pipx install compartment && compartment init |
| uv | uv tool install compartment && compartment init |
| pip | 仮想環境内で pip install compartment && compartment init を実行します。Debian 12 以降、Ubuntu 23.04 以降、Fedora、Arch、Homebrew では、システム全体への pip install は「externally-managed-environment」として拒否されます。pipx と uv を使えばこれを回避できます。Windows では py -m pip install compartment |
| インストールスクリプト | チェックアウトしたリポジトリから、bash install/install-linux.sh(Linux、WSL、ChromeOS)、bash install/install-macos.sh、または powershell -ExecutionPolicy Bypass -File install\install-windows.ps1 を実行します。各スクリプトはマシンで動作する Python を選択し、外部管理環境への対応を行い、保管庫を作成して、検出したエージェントを接続します |
| Docker | チェックアウトしたリポジトリから docker build -t compartment . を実行します。各エージェントの接続を参照してください |
エージェント独自のストアからインストールすることもできます。Claude Desktop 拡張機能(各リリースの compartment-<version>.mcpb)、Claude Code および Codex のプラグインマーケットプレイス、Gemini CLI 拡張機能、Hermes Agent プラグインなどがあります。ただし、パスフレーズはユーザー自身が入力するため、いずれの場合も compartment init で保管庫を作成する必要があります。docs/PLUGINS.md に、すべてのストアとインストールコマンドを記載しています。
実行環境
| システム | CPU | pip/pipx/uv 用 Python | アプリ |
|---|---|---|---|
| macOS 14 以降 | Apple silicon | 3.11 - 3.14 | メニューバー;.pkg / .dmg |
| macOS 13.4 以降、およびすべての Intel Mac | Apple silicon、Intel | 3.11 - 3.13 | メニューバー;Intel では -intel.pkg / -intel.dmg |
| Windows 10 / 11 | x64 | 3.11 - 3.14 | トレイアイコン |
| ARM 搭載 Windows 11 | ARM64 | 3.12 - 3.14 | トレイアイコン |
| glibc 2.28 以降の Linux(Ubuntu 20.04 以降、Debian 11 以降、Fedora、RHEL 8 以降、Arch、openSUSE)、WSL 2、ChromeOS Linux | x86_64、aarch64(Raspberry Pi 5 を含む) | 3.11 - 3.14 | ウィンドウ(Tk が必要です:python3-tk またはディストリビューションの同等パッケージ) |
| Docker | amd64、arm64 | イメージに含まれます | ヘッドレス |
制限の原因は、どこでもホイールが提供されているわけではない唯一の依存関係である onnxruntime です。macOS 向けビルドでは、バージョン 1.24 以降で macOS 14 が必要となり、Intel Mac 向けの最後のビルド(1.23.2)は Python 3.13 までです。CI では各行の環境でテストスイートを実行し、コンパイルが必要になる依存関係がないか、マトリックス全体を確認しています(tools/wheel_coverage.py)。Windows では onnxruntime にもMicrosoft Visual C++ ランタイム(ARM64)が必要です。インストールされていない場合は、Compartment がその旨を通知します。
システムの onnxruntime を使う、その他の環境。 Alpine(musl)、FreeBSD、Android(Termux)では onnxruntime がパッケージとして提供されています。システムからインストールし、それを参照できる仮想環境を Compartment に指定してください。インストールスクリプトがこれを自動で行います。
# Alpine
apk add python3 py3-onnxruntime
# FreeBSD (default Python 3.12; the compiled dependencies come from packages)
pkg install py312-onnxruntime py312-tokenizers py312-pydantic-core py312-pynacl py312-argon2-cffi py312-numpy py312-cryptography
# Termux
pkg install python onnxruntime python-numpy rust
# then, on any of them
python3 -m venv --system-site-packages ~/.compartment-venv
~/.compartment-venv/bin/pip install compartment && ~/.compartment-venv/bin/compartment init
Termux では、再起動まで有効なロック解除用認証情報に共有メモリを使えないため、COMPARTMENT_PASSPHRASE を設定するか、compartment unlock --once を使用してください。glibc 2.28 未満、32 ビットシステム、armv7、riscv64 はサポートされていません。WSL 2 では、アイドル状態が続くと仮想マシンがシャットダウンし、ロック解除用認証情報が消去されるため、セッション間でボルトが再ロックされます。
init を実行すると、パスフレーズの選択、ボルトの作成、参照用ファクトの読み込みが行われ、インストール済みの場合は Claude Code、Hermes Agent、または OpenClaw に接続し、アプリが起動します。macOS ではメニューバー項目、Windows ではトレイアイコン、Linux ではウィンドウとして表示されます。エージェントを再起動すれば、メモリが使えるようになります。
後からエージェント、またはその他のクライアントを接続するには:
compartment integrate claude # Claude Code + Claude Desktop
compartment integrate hermes # Hermes Agent
compartment integrate openclaw # OpenClaw
compartment integrate --list # the 33 MCP clients it can wire: Cursor, VS Code, Windsurf, Cline, Roo Code, Kilo Code, Zed, OpenCode, Codex CLI, Gemini CLI, Kiro, Amazon Q, Junie, Goose, LM Studio, Continue ...
compartment integrate --all # every one of them that is installed here
claude、hermes、openclaw には、それぞれのスキルディレクトリに /compartmentalize スキルもインストールされます。それ以外の MCP クライアントでは、このブロックを使用します(stdio トランスポート、環境変数なし):
{ "mcpServers": { "compartment": { "command": "compartment", "args": ["serve"] } } }
Dock、Finder、またはスタートメニューから起動したアプリは、シェルの PATH を参照できないため、compartment だけを指定すると「spawn compartment ENOENT」というエラーが発生することがあります。which compartment(Windows では where compartment)で表示されるフルパスを使用してください。integrate は常にこのフルパスを書き込みます。
各エージェントの接続
ターミナルを使う必要はありません。アプリの エージェントを接続 ボタンを使うと、Claude、Hermes Agent、OpenClaw で同じ手順が実行されます。以下のコマンドは、コマンドを使いたい方や、アプリに一覧表示されていないクライアントを接続する方向けです。Windows では、pip install compartment の代わりに PowerShell で py -m pip install compartment を実行してください。
Claude(Code + Desktop)
pip install compartment && compartment init && compartment integrate claude
Claude Code CLI に MCP サーバーをユーザースコープ(すべてのプロジェクト)で登録し、Claude Code がメモリファイルにすでに書き込んだ記憶をインポートします(コピーのみで、何度でも実行可能です。--no-import を指定するとスキップされます)。キャプチャフックをインストールし(--no-hooks を指定するとスキップされます)、/compartmentalize スキルをインストールして、管理対象ブロックを CLAUDE.md に書き込みます。また、Claude Desktop がインストールされている場合は、事前にバックアップを作成したうえで、Claude Desktop の設定ファイルにサーバーを登録します。サーバーは MCP ハンドシェイクで自身についても説明し、回答前に記憶を呼び出すこと、長期的に役立つ事実、認証情報、名前、決定事項を保存することをモデルに伝えます。そのため、Claude は手動で指示しなくても Compartment をメモリとして使用します。
Hermes Agent
pip install compartment && compartment init && compartment integrate hermes
Hermes 環境にプロバイダープラグインをインストールし、hermes memory setup compartment を実行します。hermes memory status で確認してください。
Hermes Agent 0.20.0 以降では、ポータブルな
エージェントプラグイン形式も読み込めます。このリポジトリはその形式に対応しています。この方法では、GitHub から MCP サーバーと /compartmentalize スキルをインストールします。
pip install compartment && compartment init
hermes plugins install MaxFreedomPollard/Compartment
hermes plugins enable compartment
毎ターン記憶を呼び出して保存するため、プロバイダーを使う方法がより完全な統合です。ポータブルパッケージは、モデルがツールを呼び出した場合にのみ動作します。macOS と Windows では、どちらの方法も同じ名前のプラグインディレクトリにインストールされるため、どちらか一方を使用してください。
OpenClaw
pip install compartment && compartment init && compartment integrate openclaw
バックアップを作成してから、mcpServers エントリを ~/.openclaw/openclaw.json に書き込みます。その後、openclaw gateway restart を実行し、openclaw mcp list で確認してください。
任意の MCP クライアント
compartment integrate <client> を使うと、--list に表示される 33 個のクライアントを接続できます。設定を書き込む前に、バイト単位で完全なバックアップを作成します。既存の設定を置き換えるのではなくマージし、アトミックに書き込みます。また、解析できないファイルには書き込みません(代わりに、貼り付けるブロックを表示します)。手動で行う場合は、インストールにあるブロックを使用してください。VS Code では "type": "stdio" を含む servers キーを使い、Zed では context_servers を使い、Codex では [mcp_servers.compartment] 配下に TOML を使います。--vault と --caller は省略可能です。デフォルトは ~/.compartment/memory.vault と caller user です。
クライアントごとの手順は
docs/INTEGRATIONS.md に記載されています。
Docker
チェックアウトしたリポジトリから docker build -t compartment . を実行すると、ヘッドレスイメージ(amd64 および arm64)がビルドされます。このイメージは stdio のみで、ポートは使用せず、非特権ユーザーで動作し、オフラインガードが有効で、ボリュームは /data にバインドマウントされます。パスフレーズの入力が必要なため、まずホスト上で compartment init を実行してボールトを作成してから、クライアントに次のコマンドを指定してください。
docker run -i --rm --network none --user "$(id -u):$(id -g)" \
-v "$HOME/.compartment:/data" -e COMPARTMENT_PASSPHRASE compartment
--user を指定すると、コンテナが Linux ホスト上の 0600 のボールトを読み取れるようになります。macOS と Windows の Docker Desktop では、この指定は不要です。
設定
ここにある設定は、どれも必須ではありません。Compartment は設定済みの状態でインストールされます。何かを変更したい場合に使用できる設定項目は、以下のとおりです。
アプリ内
アイコンの背後にあるパネルには、ロック解除とロック、パスワードを変更、記憶を自動作成(キャプチャフック)、スターター情報を検索、自動ロック(15 分、30 分、60 分、またはなし)、Claude、Hermes Agent、OpenClaw の エージェントを接続 ボタン、更新、終了 があります。
コマンド
コマンドより前に指定するグローバルフラグ:--vault PATH、--caller NAME、
--keyfile PATH、--assert-offline、--version。
| コマンド | 動作 |
|---|---|
init | ボールトを作成します。--passphrase、--creator、--keychain、--no-session、--no-app |
unlock / lock | 開く/閉じます。--passphrase-stdin、--keyfile、--keychain、--once;lock --sign --identity |
status / verify / selftest | 内容、整合性、動作を確認します |
store / get / forget | 1 件のメモリを操作します。--source(必須)、--discovered、--expires、--namespace、--tag、--importance、--kind fact|opinion、--supersedes ID、--keep-both、--quarantined、--raw;forget --shred |
search / recent | 項目を検索します。--namespace、--tag、--top-k、--limit、--all、--json |
expire | 期限切れのメモリを削除します |
atomize | 上限を超える blob メモリを JSONL として一覧表示します(--out + --plaintext)。エージェントが作成した分割プランを適用します(--apply) |
opinions audit | 意見形式のレコードに kind を遡及して設定し、重複する有効な意見をグループ化して、--keep-newest で解決します。--threshold、--no-backfill、--json |
link / relations / unlink | 有効期間(--from、--to、--as-of)付きの関係グラフを操作します |
panel(menubar、tray) | アプリを操作します。--show、--self-check、--render、--login |
integrate <agent> | claude、hermes、openclaw、または一覧にある任意のクライアントを接続し、/compartmentalize をインストールします。--list、--all、--no-import、--no-hooks;integrate --refresh は、以前のインストールでエージェントのファイルに書き込まれた指示だけを更新します |
hook | Claude Code のキャプチャフックです:install --pin-vault、uninstall、status、capture |
import-claude | Claude Code がすでに書き込んだ内容を取り込みます。--dir、--namespace、--dry-run |
serve | stdio 経由で MCP サーバーを起動します |
embed-daemon | すべてのエージェントが使用する共有埋め込みプロセスです:status、stop、run |
dash | ブラウザーでボールトを読み込みます:127.0.0.1、1 回限りのトークン、GET のみ |
export / import | export --plaintext は暗号化せずに書き出し、import はそれを読み込みます |
rekey | パスフレーズを変更します。--new-passphrase-stdin |
2fa | enable、disable、status:第 2 要素としてキーファイルを使用します |
audit | ハッシュチェーンの履歴を verify、repair します |
retag | 現在のボールトからタグを再計算します(--dry-run、--prune);メモリのテキストは変更しません |
reindex | インデックスを再構築し、長いレコードに不足している埋め込みウィンドウを追加します。--int8、--f32、--re-embed、--model |
pack | 署名付きメモリパックの build、install、remove、list、export を行います(--trusted-key) |
bench | --records、--longmemeval、--variant、--limit |
setup | download-model、download-longmemeval、airgap-bundle |
update | インプレースでアップグレードし、エージェントのファイル内の指示を更新します。--source は GitHub main を指定し、--no-app は再起動を省略します |
uninstall | 削除します。--purge を指定しない限り、ボールトは保持されます |
compartment panel --login on | off | status は、ログイン時の起動を制御します(Linux ではアプリケーションメニューのエントリー)。init --no-app は、ヘッドレスマシンや CI でアプリを省略します。
compartment dash は、ターミナルからダッシュボードを開くボタンです。ブラウザーでボールト全体、経時的な増加、すべてのエンティティ名を表示する関係グラフ、タグ、エージェントごとの件数、ライブ検索を確認できます。ランダムな URL トークンで保護された読み取り専用の画面として、127.0.0.1 上の RAM からのみ配信されます。外部へのリクエストや設定はありません。Ctrl-C で終了します。
/compartmentalize スキル
compartment integrate <agent> は、エージェント固有のスキル
ディレクトリにファイルを1つ書き込み、compartment uninstall はそのファイルを削除します。
| エージェント | パス |
|---|---|
| Claude Code | ~/.claude/skills/compartmentalize/SKILL.md |
| Hermes Agent | $HERMES_HOME or ~/.hermes/skills/compartmentalize/SKILL.md |
| OpenClaw | $OPENCLAW_HOME or ~/.openclaw/skills/compartmentalize/SKILL.md |
3つすべてで同じ Agent Skills レイアウトを使用するため、ファイルは1つだけです。実行するのはユーザーだけです。コンパクト化する前、またはいつでもこれを入力すると、エージェントは会話全体をボールトに保存します。そこには、人々や連絡先、認証情報とその保存場所、URL とホスト、決定事項とその理由、セッション自体の記録が含まれます。多数の memory_store 呼び出しを行います。自分のコピーは編集できます。後でインストールすると、変更済みのコピーは上書きされず、バックアップされます。
設定ファイル
ボールトと同じ場所にある <vault>.config.json に、呼び出し元ごとの許可設定と次の項目が保存されます。
| 設定 | デフォルト | 意味 |
|---|---|---|
auto_lock_minutes | 30 | ロックされるまでのアイドル時間です。0 にするとロックされません |
search_starter_facts | true | 初期登録された事実を検索結果に含めるかどうかです |
include_packs_in_search | true | インストール済みパックについて、同様に検索結果に含めるかどうかです |
recency_half_life_share | 0.5 | メモリの意味的な根拠のオッズが半分になるまでに、ボールトのうちそのメモリより新しい情報が占める必要のある割合です。0 にすると新しさの事前確率を無効にします |
expire_memories | true | 期限切れのメモリを自動的に削除するかどうかです |
duplicate_threshold | 0.97 | ストア内容が重複と判定されるコサイン類似度です |
max_memory_chars | 200 | 作成するメモリの1つの主張あたりの長さの上限です。0 にすると長さとレイアウトのチェックを無効にします |
opinion_update_threshold | 0.80 | 新しい意見が有効な意見の更新と見なされ、置き換えの判断が必要になる類似度です |
opinion_reaffirm_threshold | 0.97 | 言い換えられた意見が新たに保存されず、現在の記録を再確認するものと見なされる類似度です |
retag_interval_hours | 6 | バックグラウンド処理でタグを再計算する間隔です。0 にすると無効になります |
retag_prune | false | その処理でタグも削除できるかどうかです |
index_precision | "f32" | "int8" にすると RAM 使用量が4分の1になります |
embed_daemon | true | このプロセスでモデルを読み込む代わりに、マシンで共有されている埋め込み処理にベクトルを要求するかどうかです |
unlock_tool_enabled | false | エージェントによるボールトのロック解除を許可します。パスフレーズがモデルのコンテキストを通過するため、デフォルトでは無効です |
環境変数
COMPARTMENT_VAULT は使用するボールト、COMPARTMENT_PASSPHRASE はスクリプトと
CI 用、COMPARTMENT_SESSION_DIR はロック解除用認証情報の保存場所、
COMPARTMENT_UI_SCALE はパネルのスケール、COMPARTMENT_ASSERT_OFFLINE はネットワークへの試行があれば
中断するかどうかを指定します。COMPARTMENT_EMBED_DAEMON=0 にすると、埋め込みモデルは共有プロセスではなく
各プロセス内に保持されます。COMPARTMENT_EMBED_SOCKET はそのプロセスのソケットの場所を変更し、COMPARTMENT_EMBED_IDLE は
最後のクライアントが終了した後にプロセスが存続する秒数を指定します(300)。該当する環境では
HERMES_HOME、OPENCLAW_HOME、XDG_DATA_HOME が読み込まれます。ENGRAM_* としてエクスポートされた環境変数も引き続き機能します。
MCP ツール
各ツールにはタイトルと、読み取り専用または破壊的操作を示す注釈があります。そのため、
クライアントは呼び出し前に、書き込みを行うツールと7つの読み取り専用ツールを判別できます。
memory_search、memory_store、memory_store_many、
memory_get、memory_recent、memory_forget、memory_link、
memory_relations、memory_unlink、memory_list_namespaces、
memory_status、memory_lock、memory_selftest。memory_unlock もありますが、
上記で有効にしない限りオフです。
ドキュメント
| docs/MEMORY.md | メモリの保存方法、記憶される内容、ランキングの設計 |
| docs/PLUGINS.md | すべてのプラグインストアと掲載情報:ユーザーがそこからインストールする方法、メンテナーが行うこと |
| docs/INTEGRATIONS.md | Hermes Agent、OpenClaw、Claude、その他すべてで Compartment を選択する方法 |
| docs/COMPARISON.md | 他のメモリサーバーとその出典 |
| SECURITY.md | 脅威モデルの全容とその限界 |
| FORMAT.md | バイトレベルの .vault および .mpack 仕様(言語非依存) |
| PACKS.md | 署名付きメモリパックの作成と配布 |
| CONTRIBUTING.md | セットアップ、歓迎される課題、維持すべき保証 |
| RELEASING.md | リリースの作成方法 |
プライバシーポリシー
Compartment はデータを一切収集しません。テレメトリも、分析も、アカウントも、実行時のネットワーク通信もありません。メモリはお使いのマシン上にのみ保存され、マシンの外に出ることのないパスフレーズで AEAD 暗号化されます。また、何も他者と共有されません。収集、保存、ネットワークアクセス、第三者との共有、保持、連絡先を網羅したポリシー全文は、次のページをご覧ください。 https://maxfreedompollard.github.io/Compartment/privacy。
公開先
Compartment は、PyPI、公式 MCP レジストリ、Cursor Directory、Glama、LobeHub、MCP Toplist、MCP Market、mcpservers.org、TensorBlock、toolsdk.ai レジストリ、Libraries.io、Snyk Advisor、deps.devに掲載されています。また、厳選リストのabordage/awesome-mcp、TensorBlock/awesome-mcp-servers、Jenqyang/Awesome-AI-Agentsにも掲載されています。
バグ報告や機能リクエスト:Issues。 サポートや質問:Discussions。 セキュリティに関する報告:SECURITY.md。 質問やアイデア:Discussions。
mcp-name: io.github.MaxFreedomPollard/compartment
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。