sovseal-memory について
sovseal-memoryは、平文をデバイス内に保つ必要がある環境向けに、MCPクライアントやAIエージェントへローカル優先の永続メモリを提供します。埋め込みと検索はローカルで行い、同期時もAES-256-GCMの暗号文だけを送信できます。
主な機能
- 01ローカルなセマンティックメモリと検索
- 02ブラウザー拡張による複数プラットフォームの記録
- 03任意のゼロ知識暗号化同期
- 04Node SDKとエッジエンドポイント
- 05保存メモリ内容の暗号化
活用シーン
- 01プライバシー制約のあるチームで作業コンテキストを保存
- 02複数のAIプラットフォーム間でメモリを共有
- 03エージェントのタスク状態を永続化
MCP 対応
MCPサーバーはstore_memoryとrecall_memoryツールを公開し、ローカルのLanceDBでメモリを保存・検索します。stdioとHTTP/SSEのトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| content | string | はい |
詳細
クラウドに送信できない業務向けの、ゼロ知識・ローカルファーストな AI メモリです。
Claude、ChatGPT、Cursor、あらゆる MCP クライアントで使える、1 つのプライベートメモリです。平文が物理的にマシンから出ることはありません。
@sovseal/mcp-server
·
npm の @sovseal
·
クイックスタート
·
比較を見る
·
変更履歴
これが必要な理由
コード、クライアント、データなど、アップロードが許可されていない情報を扱う場合、たとえば医療、法律、フィンテック、防衛、NDA の対象となる業務では、現在の AI メモリの選択肢はどれも、そのルールを破るよう求めてきます。プラットフォームのメモリ機能では、コンテキストが各社のクラウド上に保存され、1 つのプラットフォームの閉じた環境にとどまります。クラウド型のメモリレイヤーでは、会話の生データがサードパーティのサーバーや抽出 API を経由します。
sovseal は別の道を選びます。キャプチャ、埋め込み、想起はすべて、お使いのデバイス上で実行されます。 平文がネットワークを通過することはありません。任意の同期プランでは、AES-256-GCM で暗号化されたデータのみが送信されます。サーバーは、たとえ望んだとしてもメモリを読み取れません。また、MCP に対応し、ブラウザー拡張機能を利用するため、6 つのサイロに分かれるのではなく、使用するすべての AI で 1 つの メモリを使えます。
実測パフォーマンスとベンチマーク(2026 年 5 月)
クラウドでホストされるメモリレイヤーでは、レイテンシー、プライバシー、コストの間で妥協を迫られます。想起のたびに、他社のデータベースとの間で 200~800 ms の往復通信が発生します。sovseal はこの妥協を解消します。 LanceDB と Transformers.js は エージェントのプロセス内 で動作します。
| ワークロード | 操作 | p50 | p95 | p99 | ネットワーク |
|---|---|---|---|---|---|
| 10K 件のレコード · 1K 件のクエリ | recall_memory(ウォーム) | 6.1 ms | 10.4 ms | 21.8 ms | 0 RTT |
| コールドスタート | recall_memory(初回呼び出し) | 約 1.2 s | — | — | 0 RTT |
| 単一書き込み | store_memory | 3.8 ms | 7.2 ms | 12.5 ms | 0 RTT(遅延書き込み) |
次のコマンドで、すべてのベンチマークを再現できます:pnpm --filter @sovseal/mcp-server run bench-v2(事前にシードした 10K 件のメモリ、連続する 1K 件のクエリ、市販ハードウェアで CPU バウンドの ONNX 埋め込み)。
高速性とプライバシーを実現する仕組み:
- p99 の想起が 25 ms 未満 — セマンティック検索は HTTP 呼び出しではなく、ローカルのベクトルクエリです。
- デバイス上での埋め込み — 固定され、ハッシュ検証済みの 384 次元 MiniLM モデル(量子化 ONNX、約 22 MB)がローカルで動作します。埋め込み API は不要で、呼び出しごとのコストもかかりません。
- ゼロ知識同期 — レプリケーションを有効にしている場合、デバイスからデータが 1 バイトでも出る前に AES-256-GCM 暗号化が行われます。サーバーは復号できない暗号文を保存します。
- 検証済みセマンティック想起(VSR) — 読み込みのたびに
sha256(canonicalize(payload))を再導出し、一致しない場合は処理を中止します。 - 決定論的なリネージ — スナップショットグラフにより、バイト単位で等価な状態の復元が可能です。
はじめに
sovseal は、AI アシスタントや自律エージェントに、ユーザーが所有する永続的でポータブルなコンテキストを提供します。MCP 対応クライアントに組み込めるほか、ブラウザー拡張機能を通じて主要なチャットプラットフォームから情報を取り込み、平文をあるべき場所、つまりお使いのハードウェア上に保管します。
主な機能とユースケース
主な機能:
- ローカルファーストのセマンティックメモリ:デバイス上のLanceDBと384次元のTransformers.js埋め込みにより、0-RTTで情報を呼び出せます。
- クロスプラットフォームでのキャプチャ:ブラウザー拡張機能でChatGPT、Claude、Perplexity、Grok、Gemini、DeepSeek間の情報をキャプチャして呼び出せます。1つのメモリを6つのプラットフォームで利用でき、どこでも⌘/Ctrl+Mでアクセスできます。
- ゼロ知識同期(任意):複製されるのは、エンドツーエンドで暗号化されたAES-256-GCM暗号文のみです。ローカル専用モードはアカウントなしで完全にオフライン動作します。
- 書き込み後の複製:ツール呼び出しはローカルでのコミット時に戻り、暗号文の同期は非同期で行われます。
- 開発者にやさしい設計:すぐに組み込めるMCP サーバー、Node SDK、セルフホスト可能なエッジエンドポイントを提供します。
対象ユーザー:
- プライバシー要件の厳しいチーム:平文をデバイス上にとどめることがポリシーで求められる、医療、法務、フィンテック、防衛関連のチーム。
- AIのヘビーユーザー:Claude Desktop、Cursor、ChatGPTなど複数の環境を使い分ける中で、6つのAIがそれぞれ別々に記憶を失うことにうんざりしている方。
- エージェントフレームワーク:ElizaOS、Hermes、CrewAI、LangGraphはMCP サーバーをネイティブに利用できます。ローカルメモリを使えるため、呼び出しごとのAPI料金はかかりません。
⚖️ sovsealの比較
いずれ聞かれると思うので、率直に比較します。
| プラットフォーム標準のメモリ(ChatGPT / Claude) | クラウド型メモリレイヤー(mem0、Zep、ホスト型MCPメモリ) | sovseal | |
|---|---|---|---|
| 平文の保存場所 | プロバイダーのクラウド | プロバイダーのクラウド、または自分のサーバー(セルフホストの場合は自分で運用) | 自分のデバイスのみ |
| 抽出パイプライン | プロバイダー内部 | 通常、元のテキストに対するLLM API呼び出し | デバイス上の埋め込み。LLMは処理に介在しません |
| プラットフォーム間での利用 | いいえ。各プラットフォームは独立しています | はい(各サービスのクラウド経由) | はい。ローカルでMCPと拡張機能を介して利用できます |
| オフライン | いいえ | いいえ(クラウド)/一部対応(セルフホスト) | はい |
| 同期モデル | プロバイダーが管理 | サーバーがデータを読み取ります | サーバーに見えるのは暗号文のみです |
| 呼び出しごとのコスト | サブスクリプションが必要 | API/ホスティング費用 | $0、ローカルで処理 |
sovsealで利用できない点も率直にお伝えします。代わりにデータを巧みに抽出するクラウドLLMはありません(設計上の判断です。まさにその情報漏えいを防ぐために存在しています)。また、鍵は自分で管理する必要があります(脅威モデルを参照)。どちらも気にならず、1つのプラットフォームだけを使っているなら、そのプラットフォーム標準のメモリで十分かもしれません。気になる場合、この表のほかの選択肢には右端の列と同じことはできません。
🚀 クイックスタートガイド
利用方法を選ぶ
sovsealは、1つのプロトコルを3つの形態で提供します。コードの実行場所に応じて選んでください。
| MCP サーバー | ブラウザー拡張機能 | Node SDK/セルフホスト | |
|---|---|---|---|
| 最適な用途 | Claude Desktop/Code、Cursor、Windsurf、Zed、エージェントフレームワーク | ブラウザー上のChatGPT、Claude.ai、Perplexity、Grok、Gemini、DeepSeek | Node/TSサービス内での利用。データを完全に自社管理できます |
| インストール | npx -y @sovseal/mcp-server | Chrome ウェブストア + ローカルホストインストーラー | npm install @sovseal/sdk |
| 呼び出し遅延 | 0 RTT(ローカルのLanceDB) | 0 RTT(ローカルエンジンへのネイティブメッセージング) | 0 RTT(ローカルのLanceDB) |
| 料金 | 無料(Hobby) | 無料(Hobby) | 有料(セルフホスト同期にはStarter以上) |
MCP サーバー
AIコーディングアシスタントや、MCPに対応するあらゆるエージェントフレームワーク向けの標準的な方法です。サーバーバイナリは1つ、設定スニペットも1つで、すべてのクライアントで使えます。
Claude Desktop、Cursor、Windsurf、Zed — mcp.jsonまたはclaude_desktop_config.jsonに追加します。
{
"mcpServers": {
"sovseal-memory": {
"command": "npx",
"args": ["-y", "@sovseal/mcp-server"]
}
}
}
Claude Code向けの1行インストール:
claude mcp add sovseal -- npx -y @sovseal/mcp-server
システムプロンプトのスニペット(Claude Desktop/Cursorのプロジェクト指示): AIがメモリサーバーをネイティブに利用するよう、以下をカスタム指示に貼り付けてください。
This session has persistent memory via sovseal. At conversation start, check the sovseal://context/recent resource. Whenever the user shares preferences, plans, or personal context, store it via store_memory.
常時稼働する自律型エージェントでは、HTTP/SSEトランスポートに切り替えると、1回のツール呼び出しが終わってもsovsealプロセスを稼働させ続けられます。
SOVSEAL_TRANSPORT=sse SOVSEAL_PORT=4040 npx -y @sovseal/mcp-server
ブラウザー拡張機能
MCP に対応していない AI プラットフォーム向けです。この拡張機能は、Native Messaging を介して ChatGPT、Claude.ai、Perplexity、Grok、Gemini、DeepSeek を同じオンデバイスエンジンに接続します。チャット中の送信時にキャプチャし、⌘/Ctrl+M でどこからでも呼び出せます。サイトごとの切り替えやワンクリック削除にも対応しています。
- Chrome ウェブストアからインストールし、初回のみローカルホストインストーラーを実行します。
- ポップアップに 「On-device engine connected.」 と表示されることを確認します。
- 通常どおりチャットします。対応プラットフォームで ⌘/Ctrl+M を押すと呼び出せます。
拡張機能がキャプチャした内容はすべて、MCP サーバーが読み取るものと同じローカルデータベースに保存されます。Claude.ai に一度伝えれば、Claude Code もすでにその内容を把握しています。
Node SDK(ライブラリ)
バックエンドサービスを構築していて、エージェントの状態の永続化をプログラムから管理したい場合は、Node SDK クライアントをインポートします。クライアント側でエンドツーエンドの AES-256-GCM 暗号化を行い、選択した同期エンドポイントにチェックポイントを複製します。
npm install @sovseal/sdk
import { AgentStateClient, CryptoService } from "@sovseal/sdk";
const client = new AgentStateClient({
endpoint: "https://your-project.supabase.co/functions/v1/v2-agent-state",
apiKey: "sov_proj_your_project_uuid",
});
const key = await CryptoService.generateAESKey();
// Client-side AES-GCM encrypted snapshot upload
const receipt = await client.snapshot({
key,
payload: {
agent_id: "agent_a1b2c3",
sequence_number: 0,
parent_snapshot: null,
policy_hash: "0000000000000000000000000000000000000000000000000000000000000000",
timestamp: new Date().toISOString(),
active_context: {
project: "acme-migration",
decisions: ["Postgres over Mongo — team expertise", "Cut scope: no SSO in v1"],
open_question: "Client prefers staged rollout; confirm dates with their ops lead."
}
}
});
// Restore the latest state snapshot
const { receipt: latestReceipt, ciphertextUrl } = await client.restore({
agentId: "agent_a1b2c3",
});
セルフホスト型エッジ
複製エンドポイントは Deno のエッジ関数です。オープンソースで、任意の Supabase プロジェクトにデプロイでき、データレジデンシーを完全に管理できます。
# From the repo root
supabase functions deploy v2-agent-state
supabase db push # applies the agent_state_snapshots schema
# Point any client at it:
export SOVSEAL_ENDPOINT="https://<your-project>.supabase.co/functions/v1/v2-agent-state"
ソース:supabase/functions/v2-agent-state/。
🔗 統合とエージェントフレームワーク
これらはすべて、各フレームワークに標準搭載された MCP サポートを通じて同じ MCP サーバーを利用します。sovseal 固有のアダプターは不要です。
| フレームワーク | MCP の利用方法 |
|---|---|
| ElizaOS | @fleek-platform/eliza-plugin-mcp(設定のみで利用可能。stdio または SSE) |
| Hermes Agent | ネイティブ MCP、stdio + リモート HTTP |
| CrewAI | エージェントの mcps=[...] フィールド |
| LangGraph · LangChain | langchain-mcp-adapters(npm + PyPI) |
| Microsoft Agent Framework | MCP ワークベンチを標準搭載 |
| OpenAI Agents SDK | ネイティブの MCPServerStdio / MCPServerSse |
| OpenClaw | ネイティブの openclaw mcp コンシューマー |
🛠️ LLM に公開される MCP ツール
| ツール | 引数 | 動作 |
|---|---|---|
store_memory | { content: string } | 埋め込み(384 次元、オンデバイス)→ ローカルの LanceDB に書き込み → 返します。暗号文の複製はライトビハインド方式で実行され、処理をブロックしません。 |
recall_memory | { query: string, topK?: number } | クエリを埋め込み(LRU キャッシュ)→ ローカルの LanceDB でベクトル検索 → L2 距離の近い順にランク付けした上位 K 件の一致を返します。0 RTT。 |
🔒 脅威モデル — 利用を始める前にお読みください
何が保護されているのか、まだ保護されていないのか、そしてどこまでが当方の責任で、どこからが利用者の責任なのかを正確に公開しています。詳細は SECURITY.md をご覧ください。
現在有効な保証:
- 同期時の機密性。 スナップショットごとに96ビットのランダムなIVを使用したAES-256-GCMで、送信前に暗号化します。同期サーバーには、読み取れない暗号文が保存されます。
- 完全性(VSR)。 リコールのたびに
sha256(canonicalize(payload))を再導出し、保存されているclient_payload_hashと照合します。破損したストレージはフェイルクローズします。 - サードパーティによる処理なし。 埋め込みは、バージョンが固定されハッシュ検証されたモデルによってデバイス上で計算されます。テキストが埋め込み API や抽出 API に送信されることはありません。
- 認証。 ベアラートークンは
~/.sovseal/config.json内のsov_proj_<uuid v4>です。 - ストレージ。 暗号文は Supabase Storage バケットに保存されます。オブジェクトパスは SHA-256 から導出されるため、
project_idがなければ推測できません。
現状の正直な説明 — セキュリティ強化を進行中(v0.3.5):
| 制御項目 | 状態 |
|---|---|
| ゼロ知識レプリケーション(AES-256-GCM + コンテンツハッシュ) | ✅ リリース済み |
| デバイス上で動作するハッシュ固定済み埋め込みモデル | ✅ リリース済み |
| クエリ述語インジェクションに対する識別子のサニタイズ | ✅ リリース済み |
| ローカルデータベースの保存時暗号化 | ✅ v0.3.5 でリリース済み — メモリコンテンツをフィールド単位で AES-256-GCM 暗号化(埋め込みベクトルは依然として平文) |
| OS キーチェーン内のマスターキー(保存時用と同期用のサブキーを HKDF で分離) | ✅ v0.3.5 でリリース済み |
| 書き込み前のプログラムによるシークレットの秘匿化 | 🔄 予定 — 現時点ではプロンプトレベルでのみ適用 |
| 読み込み前のモデル完全性の厳格な検証 | ✅ v0.3.5 でリリース済み — 初回ダウンロード時の処理も含む |
v0.3.5 では、メモリコンテンツは保存時に暗号化され、マスターキーは OS キーチェーンに保存されるため、ローカルファイルシステムを読み取られてもメモリは漏えいしません。プログラムによるシークレットの秘匿化は、引き続きプロンプトレベルでのみ行われます — SECURITY.md をご覧ください。後から知ることになるより、ここで率直にお伝えすることを選びました。
- キーの紛失(Hobby/Starter/Growth)。
~/.sovseal/config.jsonを失うと、これまでに同期したすべてのスナップショットを失います。これらのプランには、エスクローも復旧手段もありません。 - キーの復旧(Pro/Enterprise)。 Pro プランでは Shamir 分割によるエスクロー管理を通じたマネージドキー復旧が利用でき、Enterprise では HSM によるキー復旧が利用できます。
🤝 コントリビューション
pnpm install
pnpm --filter @sovseal/mcp-server build
node packages/sovseal-mcp-server/dist/index.js # stdio MCP server
テスト(ユニット + インテグレーション + 暗号化の往復):
pnpm --filter @sovseal/mcp-server test
pnpm --filter @sovseal/mcp-server run bench-v2
CONTRIBUTING.md をご覧ください。
🗺️ ロードマップ
中核となるオープンソースモジュール — stdio/SSE MCP サーバー、ブラウザー拡張機能、Node SDK、セルフホスト可能な Supabase エッジ関数 — は安定しており、無料で、Apache 2.0 ライセンスの下で提供されています。
今後の予定(順次):
- v0.3.5 — セキュリティ強化 + 初のインテリジェンス機能:ローカルの保存時暗号化、OS キーチェーンによるキー管理、コードによって強制されるシークレットの秘匿化、そして強化を考慮したリコールを伴う型付きメモリ(エピソード型 / 意味型 / 手続き型)の開始です。これにより、sovseal はあなたが言ったことだけでなく、試したこと も記憶できるようになります。
- アンビエントキャプチャ:Claude Code およびトランスクリプト対応クライアントのための、決定論的なセッション観察です。保存を意識しなくても形成されるメモリを実現します。
- ホスト型同期プラン — 独自のエッジ関数を運用したくないチーム向けの、マネージドな高可用性の暗号文レプリケーションです。(ゼロ知識は維持されます。当方がホストするのは、読み取れないバイト列です。)
- ウォレットキーモード(オプトイン) — Base L2 と Irys を介した Arweave の永続性により、当社を含むあらゆる企業よりも長く、暗号化されたスナップショットを保存したいユーザーに対応します。完全に任意であり、中核製品はブロックチェーンに依存しません。
進捗は CHANGELOG.md とイシュートラッカーでご確認ください。
📚 ドキュメントとサポート
- クイックスタート:クイックスタートガイドをご覧ください
- インテグレーション:インテグレーションとエージェントフレームワークをご覧ください
- セキュリティ:SECURITY.md
- ソース:
packages/sovseal-mcp-server/·apps/extension/·supabase/functions/v2-agent-state/ - リリースノート:
packages/sovseal-mcp-server/CHANGELOG.md - 課題とプルリクエスト:このリポジトリ
- お問い合わせ:[email protected]
⚖️ ライセンス
Apache 2.0 — 公開されているすべての部分(MCP サーバー、拡張機能、SDK、コアプロトコル、エッジ関数、ドキュメント)が対象です。自由にフォーク、リリース、実行してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。