mcpField
L
Loomem

Loomem

ローカル
github.com/vvooki-sysメモリ・ナレッジ42 日前に更新

Loomem について

Loomemは、MCPクライアント間で知識を保持したいLLMエージェント向けの、Rust製ローカル優先コンテキストストアです。外部データベースなしで、ハイブリッド検索、時刻を扱う事実、エンティティグラフを備えています。

主な機能

  1. 01テキスト・ベクトル・エンティティの混合検索
  2. 02事実の統合と矛盾の処理
  3. 03イベント時刻と記録時刻を持つ事実
  4. 04別名と関係を含むエンティティグラフ
  5. 05任意のフィールド単位の保存時暗号化

活用シーン

  1. 01複数のMCPクライアントでコンテキストを共有
  2. 02意味や時刻を基準に会話の事実を検索
  3. 03人物やプロジェクト間の関係を調査

MCP 対応

MCPのストリーミングHTTP経由で15個の`memory_*`ツールを公開します。標準入出力でローカルサーバーに接続するクライアント向けのブリッジにも対応します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細


Loomem は、LLM エージェント向けのオープンソースのコンテキストレイヤーです。ノートパソコン上で動作する単一の Rust バイナリを MCP 経由で提供し、Claude、ChatGPT、Codex、その他あらゆる MCP クライアントに、ユーザーのために実際の作業を行ううえで必要な事実、決定事項、履歴を提供します。モデルを入れ替え、ツールを切り替えても、コンテキストは引き継がれます。

Loomem は会話から抽出した構造化ナレッジを保存し、ハイブリッド検索を通じて、あらゆる MCP 対応クライアント(Claude、ChatGPT、Codex、Cursor、独自のエージェント)に提供します。

  • ハイブリッド検索 — BM25(Tantivy)+ベクトル埋め込み+エンティティグラフのシグナルを、重み付きハイブリッドスコア(ベクトル 0.6/BM25 0.4)で統合します。
  • 統合 — バックグラウンドワーカーが関連する事実を統合し、矛盾を解消し、古くなった事実を徐々に減衰させます(「夢を見る」)。
  • 二時点モデル — 事実には取り込み時刻とイベント時刻の両方(valid_from/valid_until)が記録されるため、「3 月に何を知っていたか」と「3 月に何が起きたか」は別々に検索できます。
  • エンティティグラフ — 人物、プロジェクト、テクノロジーをエイリアスや関係性とともにグラフとして抽出し、検索と探索の両方に利用します。
  • MCP ネイティブ — 標準の MCP HTTP トランスポートを介して 15 個の memory_* ツールを提供します。リモートコネクター向けの OAuth 動的クライアント登録も含まれます。
  • 保存データの暗号化(任意)— 環境から取得するマスターキーを使った、フィールド単位の AES-GCM エンベロープ暗号化に対応します。

RocksDB と Tantivy を基盤に Rust で構築されています。単一のバイナリで動作し、外部サービスは不要です。

ステータス:初期段階です。 エンジンはしばらく前から日常的に個人利用されていますが、公開 API とストレージ形式は今後変更される可能性があります。まだ粗削りな部分があります。Issue や PR を歓迎します。

クイックスタート

何もない状態から、macOS または Linux で、会話をまたいで Claude が記憶できるようにします。各手順は独立しているため、順番に実行してください。

1. バイナリをインストールします(sudo 不要。~/.loomem にインストールされます):

curl -fsSL https://raw.githubusercontent.com/vvooki-sys/loomem/main/install.sh | sh

2. ~/.loomem/bin を PATH に追加します(インストーラーにも表示されます):

echo 'export PATH="$HOME/.loomem/bin:$PATH"' >> ~/.zshrc   # or ~/.bashrc
exec $SHELL

3. ローカル埋め込みモデルをダウンロードします(約 113 MB。初回のみ)。インストーラーはこのモデルを取得しません。モデルがないとサーバーは起動しません:

curl -fsSL https://raw.githubusercontent.com/vvooki-sys/loomem/main/scripts/fetch-embedding-model.sh | sh

4. 抽出、統合、ドリーミング用の LLM キーを設定するか、キーなしモードを使用します(FAQを参照):

export OPENAI_API_KEY="sk-..."     # or: export LOOMEM_ALLOW_KEYLESS=1

5. サーバーを起動します(設定はすでに ~/.loomem に作成されています):

cd ~/.loomem && loomem-server

6. 起動を確認します(別のターミナルで実行):

curl http://localhost:3030/health
# {"status":"ok","version":"0.5.4"}

インストーラーはデフォルトでポート 3030 を使用し、すでに使用中の場合は別のポートを尋ねます(プロンプトをスキップするには LOOMEM_PORT を設定してください)。別のポートを選んだ場合は、以下のコマンドでもそのポートを使用してください。

7. Claude Code を接続します:

claude mcp add --transport http loomem http://localhost:3030/mcp

7b. Claude デスクトップアプリ(または Cowork)を使う場合:HTTP ではなく stdio 経由でローカルサーバーに接続するため、claude_desktop_config.json でブリッジを設定し、Claude を再起動してください。ネイティブ対応、Node 不要(Loomem ≥ v0.2.1):

{ "mcpServers": { "loomem": { "command": "/absolute/path/to/.loomem/bin/loomem-cli", "args": ["mcp-stdio", "--url", "http://127.0.0.1:3030"] } } }

(すべてのバージョンで利用できますが、Node が必要です:"command": "npx", "args": ["-y", "mcp-remote", "http://127.0.0.1:3030/mcp", "--allow-http"]。)認証と詳細については、MCP クライアントを接続するを参照してください。

8. 試してみましょう。 Claude で「すべてのツールでダークモードを使うのが好みだと覚えておいて」と入力します。次に、新しい会話で「私の好みについて何を知っていますか?」と尋ねます。答えは Loomem から返されます。

その他のクライアント(claude.ai、ChatGPT、OpenClaw)、TLS/リモート公開、およびすべてのオプション一覧については、以下と docs/installation.md を参照してください。

インストール

ワンライナー(ビルド済みバイナリ、macOS + Linux)
curl -fsSL https://raw.githubusercontent.com/vvooki-sys/loomem/main/install.sh | sh

loomem-server、loomem-cli、loomem-migrate を ~/.loomem/bin にインストールします(sudo 不要)。設定テンプレートは ~/.loomem に配置されます。バージョンを固定するには LOOMEM_VERSION=v0.2.0 を、インストール先を変更するには LOOMEM_INSTALL_DIR を設定してください。アーカイブはリリースページの SHA256SUMS と照合して検証されます。インストーラーはローカル埋め込みモデルをダウンロードしません。クイックスタートの手順 3 に従って取得してください。

詳しいガイド — 要件、バージョンの固定、チェックサムの手動検証、アップグレード、アンインストール、トラブルシューティングについては、docs/installation.mdを参照してください。

ソースから
git clone https://github.com/vvooki-sys/loomem.git
cd loomem
cp entities.toml.example entities.toml   # personal entity config (gitignored)
(cd loomem-dashboard && npm ci && npm run build)   # dashboard, embedded at compile time
./scripts/fetch-embedding-model.sh                 # local embedding model → ~/.loomem/models
cargo build --release -p loomem-server -p loomem-cli
export OPENAI_API_KEY="sk-..."   # or LOOMEM_ALLOW_KEYLESS=1 to run without a key (see below)
cargo run --release -p loomem-server
# server listens on http://127.0.0.1:3030, data in ./data

Rust(stable)、Node.js(ダッシュボード用)、および libclang(RocksDB のビルド用)が必要です。Debian/Ubuntu では apt install libclang-dev を実行してください。macOS では Xcode CLT に含まれています。Windows については INSTALL_WINDOWS.md を参照してください。

各手順は重要です。省略してもビルド自体は失敗しませんが、ダッシュボードをビルドしないとダッシュボードは 404 を返し、loomem-cli がないと Claude デスクトップアプリ用の stdio ブリッジがありません。ローカル埋め込みモデルは必須です。デフォルトの embedding_provider = "local" では、モデルがないとサーバーは起動しません(「クラウドへのフォールバックを拒否」)。API キーの有無は問いません。デフォルト設定では LLM を使った抽出とドリーミングも有効になっているため、LLM キー(export OPENAI_API_KEY=...)を設定するか、LOOMEM_ALLOW_KEYLESS=1 を設定しない限り、サーバーは起動を拒否します。キーなしモードでは、memory_ingest はキー不足エラーを返し、何も保存しません。エンティティ抽出は無効になり、ドリーミングも失敗します。memory_store と検索は引き続き動作します。

Docker
docker build -t loomem .
export LOOMEM_AUTH_TOKEN=$(openssl rand -hex 32)
export LOOMEM_AT_REST_MASTER_KEY=$(openssl rand -base64 32)
export OPENAI_API_KEY="sk-..."
docker run -p 3030:3030 -v loomem-data:/data \
  -e LOOMEM_AUTH_TOKEN -e LOOMEM_AT_REST_MASTER_KEY -e OPENAI_API_KEY \
  -e LOOMEM_EMBEDDING_PROVIDER=openai -e LOOMEM_EMBEDDING_DIM=1536 loomem

認証は、ローカル(ループバック)で実行する場合に限り、デフォルトで無効です。Docker イメージは 0.0.0.0 にバインドするため、サーバーには LOOMEM_AUTH_TOKEN が必要です(設定されていない場合、起動を拒否します)。また、イメージのデフォルトでは、保存データ用のマスターキーも必要です。キーは Authorization: Bearer <key> として渡します。意図的に無効化する場合は、LOOMEM_ALLOW_UNAUTH=1(認証なし)および LOOMEM_AT_REST_EXPECT_ENABLED=0(保存データを平文で保持)を指定してください。詳しくは docs/SECURITY.md をご覧ください。

イメージにはローカルの埋め込みモデルが含まれていないため、このコマンドでは埋め込みのプロバイダーを OpenAI に切り替え(LOOMEM_EMBEDDING_PROVIDER=openai、LOOMEM_EMBEDDING_DIM=1536)、OPENAI_API_KEY を渡します。保存したテキストは OpenAI API に送信されます。これらの変数を設定しない場合、サーバーは起動を拒否します(クラウドへのフォールバックは拒否されます)。

MCP クライアントに接続する

Loomem は /mcp でストリーミング可能な HTTP を介して MCP を使用します。MCP 対応のクライアントであれば利用できます。よく使われるクライアントの設定例を以下に示します。

Claude Code
claude mcp add --transport http loomem http://localhost:3030/mcp
Claude デスクトップアプリ(および Cowork)— ローカル stdio ブリッジ

Claude デスクトップアプリ(および Cowork)は、HTTP ではなく stdio を介してローカルの MCP サーバーに接続します。また、設定画面の「カスタムコネクタを追加」欄で受け付けるのは https:// URL のみです。そのため、そこに http://localhost:3030/mcp を貼り付けることはできません。Loomem のローカル HTTP エンドポイントを stdio にブリッジします。以下のいずれかのブロックを claude_desktop_config.json(macOS:~/Library/Application Support/Claude/claude_desktop_config.json、Windows:%APPDATA%\Claude\claude_desktop_config.json)に追加し、Claude を完全に再起動してください。

推奨 — ネイティブブリッジ、Node 不要(Loomem ≥ v0.2.1。すでにインストール済みの loomem-cli に含まれています):

{
  "mcpServers": {
    "loomem": {
      "command": "/absolute/path/to/.loomem/bin/loomem-cli",
      "args": ["mcp-stdio", "--url", "http://127.0.0.1:3030"]
    }
  }
}

loomem-cli の絶対パスを指定してください(例:/Users/you/.loomem/bin/loomem-cli)。デスクトップアプリはシェルの PATH を引き継ぎません。認証を有効にしている場合は、args に "--token", "<your token>" を追加するか、"env" ブロックで LOOMEM_AUTH_TOKEN を設定してください。

代替手段 — mcp-remote(すべてのバージョンで動作し、Node 18+ / npx が必要):

{
  "mcpServers": {
    "loomem": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://127.0.0.1:3030/mcp", "--allow-http"]
    }
  }
}

エンドポイントは localhost 上の通常の HTTP であるため、--allow-http が必要です。認証するには、args に "--header", "Authorization: Bearer ${LOOMEM_AUTH_TOKEN}" を追加し、"env": { "LOOMEM_AUTH_TOKEN": "<your token>" } を設定してください。どちらのブロックも、stdio のみをサポートする他のデスクトップクライアントで使用できます。(Claude Code は例外です。HTTP をネイティブに使用するため、ブリッジではなく、上記の claude mcp add の設定例を使ってください。)

Claude — リモートコネクタ(HTTPS、別の場所でホスト)

別のマシンで実行している Loomem インスタンスに接続するには、claude.ai/デスクトップアプリのリモートコネクタが HTTPS を使用します。TLS を設定したリバースプロキシ(または Cloudflare Tunnel などのトンネル)の背後にインスタンスを公開し、SERVER_ORIGIN=https://your-domain を設定してください(OAuth メタデータに正しい URL を通知するために必要です)。その後、Claude の設定で https://your-domain/mcp を指定してコネクタを追加します。Loomem は OAuth の動的クライアント登録を標準でサポートしています(/.well-known/oauth-authorization-server)。

ChatGPT — カスタムコネクタ

ChatGPT のカスタムコネクタには HTTPS と OAuth が必要です(静的 API キーはサポートされていません)。また、開発者モードを有効にする必要があります(Pro/Team/Enterprise プラン)。上記の手順でサーバーを HTTPS 経由で公開し、ChatGPT → 設定 → コネクタ → カスタムコネクタを追加 に進み、https://your-domain/mcp を貼り付けて OAuth フローを完了してください。

OpenClaw
openclaw mcp add loomem --url http://localhost:3030/mcp --transport http \
  --header "Authorization: Bearer $LOOMEM_AUTH_TOKEN"

リモートの OpenClaw ゲートウェイを使用する場合は、--url に HTTPS エンドポイントを指定してください。

汎用 MCP クライアントの設定
{
  "mcpServers": {
    "loomem": {
      "type": "http",
      "url": "http://localhost:3030/mcp",
      "headers": { "Authorization": "Bearer <your LOOMEM_AUTH_TOKEN>" }
    }
  }
}
スタンドアロンサーバーに関する注意

1 つの Loomem インスタンスで、複数のクライアント(ローカルの Claude Code、HTTPS エンドポイント経由の ChatGPT など)に同時に対応できます。それらのクライアントは同じコンテキストを共有します。TLS と認証で保護しない限り、バインドアドレスは 127.0.0.1 のままにしてください。HTTP ポートをそのままインターネットに公開しないでください。

アーキテクチャ

                    ┌──────────────────────────────────────────────┐
                    │                loomem-server                 │
 MCP client ──────► │  /mcp (JSON-RPC) ── dispatcher ─┐            │
 HTTP client ─────► │  /v1/* + /api/* ─── handlers ───┤            │
                    └─────────────────────────────────┼────────────┘
                                                      ▼
                    ┌──────────────────────────────────────────────┐
                    │                 loomem-core                  │
                    │  hybrid search (BM25 + vector + graph + RRF) │
                    │  consolidation / decay / dream workers       │
                    │  entity extraction + alias graph             │
                    │  encryption at rest (optional)               │
                    └───────┬───────────────┬──────────────────────┘
                            ▼               ▼
                       RocksDB          Tantivy
                  (chunks, graph,    (full-text index)
                   embeddings)

ワークスペースのクレート:loomem-core(エンジン)、loomem-server(HTTP/MCP サーバー)、loomem-migrate(オフラインの DB メンテナンス)、loomem-cli(コマンドラインクライアント)。

ドキュメント

FAQ

Loomem とは何ですか? LLM エージェント向けのオープンソースのコンテキストレイヤーです。Rust で書かれており、RocksDB と Tantivy 上で単一のバイナリとして動作し、Model Context Protocol(MCP)経由で提供されます。Claude、ChatGPT、Codex、その他あらゆる MCP クライアントに、あなたのために実際の作業を行うのに必要な事実、決定事項、履歴を提供します。ポータブルで、ローカルファースト、そしてあなた自身が所有できます。

Loomem は mem0、Zep、Letta、cognee とどう違いますか? Loomem は外部サービスを必要としない単一の Rust バイナリとして提供されます。ほとんどの代替製品では、別途ベクトルデータベースやグラフデータベースが必要です。コンテキストの所有権とポータビリティを重視し、完全なセルフホストとローカルファーストに対応しています。また、ローカル ONNX モデルによるオフラインの埋め込みに対応し、初めから MCP にネイティブ対応しています。

Loomem は無料のオープンソースですか? はい。Apache-2.0 ライセンスで、無料でセルフホストできます。ソースコードはこのリポジトリにあります。

Loomem の利用にインターネット接続や OpenAI は必要ですか? 基本的な利用にインターネット接続は必要ありません。埋め込みはローカル ONNX モデルを使ってデバイス上で実行でき、コンテキストの保存と検索は完全にオフラインで動作します。OpenAI API キーが必要なのは LLM を利用する処理(memory_ingest による抽出、統合、dream、矛盾の検出)のみです。キーがない場合、これらの処理は利用できません。また、デフォルト設定で起動するには LOOMEM_ALLOW_KEYLESS=1 が必要ですが、memory_store と検索は引き続き利用できます。

どの LLM クライアントを接続できますか? MCP に対応するクライアントならどれでも接続できます。Loomem はストリーミング可能な HTTP 経由で MCP を利用し、Claude、Claude Code、ChatGPT、Codex、Cursor 向けの設定例に加え、リモートコネクター向けの OAuth 動的クライアント登録を提供します。

ChatGPT や Claude に組み込まれたメモリ機能を使うだけではだめですか? 組み込みのメモリ機能は、特定のベンダーに縛られます。Loomem なら、構造化されたエンティティグラフと双時系列の履歴を使って、すべてのツールやモデルでコンテキストをポータブルに保ち、あなた自身がセルフホストして所有できます。単一ベンダーの機能では、これは実現できません。

作者

Loomem は Łukasz Gumowski が作成・保守しています — [email protected]。

ライセンス

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

コメント

MCP は初めてですか?

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

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