longmem について
longmemは、CursorとClaude Codeのコーディングエージェント向けの永続メモリMCPサーバーです。セマンティック検索とキーワード検索を組み合わせ、プロジェクトやセッションをまたいだ解決策の再利用を支援します。設定、レビュー、データ交換用のコマンドラインツールも備えています。
主な機能
- 01セマンティック検索とキーワード検索
- 02過去の解決策の保存と検索
- 03プロジェクトをまたぐメモリ共有
- 04設定、状態確認、レビュー用CLI
- 05メモリエントリーのインポートとエクスポート
活用シーン
- 01別プロジェクトで修正方法を再利用
- 02繰り返し発生するバグの過去の解決策を検索
- 03保存した解決策をチームで共有
MCP 対応
IDEがlongmemをMCPサーバーとして必要に応じて起動します。保存済みの解決策を検索、保存、修正、補足、管理するツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| tags | any | いいえ | 検索を絞り込むための任意のキーワード(ライブラリ名、フレームワーク、エラーの種類、ツール名など)。例:['kubernetes','oom','python']。 |
| problem | string | はい | 解決しようとしている問題を説明してください。 |
| category | string | いいえ | 問題の領域。次のいずれか:ci_cd、containers、infrastructure、cloud、networking、observability、auth_security、data_pipeline、ml_training、model_serving、experiment_tracking、llm_rag、llm_api、vector_db、agents、database、api、async_concurrency、dependencies、performance、testing、architecture、other。不明な場合は 'other' を使用してください。 |
| language | string | いいえ | 該当する場合は、プログラミング言語を入力してください。例:'python'、'typescript'。 |
| threshold | any | いいえ | 最小類似度(0~1)。デフォルトでは config.toml の similarity_threshold(デフォルト値は 0.85)を使用します。 |
詳細
半年後、別のプロジェクトでAIが同じバグを解決します。同じ定型コードを書き、同じパターンを説明します。答えはすでにわかっていたのに。
longmem は、あらゆるプロジェクトやセッションで使える永続的なメモリをAIに提供します。ゼロから推論する前に、すでに解決したことを検索します。うまくいったら、それを保存します。使い続けるほど、同じことを繰り返さなくて済みます。
You describe a problem
│
▼
search_similar()
┌─────────────────────────────────────────────────────┐
│ 1. pre-filter by category (ci_cd / auth / db / …) │
│ 2. semantic search (Ollama or OpenAI embeddings) │
│ 3. keyword search (SQLite FTS5 exact match) │
│ 4. merge + rank results │
└─────────────────────────────────────────────────────┘
│ │
score ≥ 85% score < 85%
│ │
▼ ▼
cached solution AI reasons from scratch
+ edge cases │
+ team knowledge "it works"
(any project) │
▼
confirm_solution()
saved once — surfaces
from every future project
longmem を選ぶ理由
| longmem | その他 | |
|---|---|---|
| コスト | 無料 — ローカルの Ollama による埋め込み | セッションごとに API 呼び出しが必要 |
| プライバシー | データがマシンの外に出ることはありません | 観察データを外部 API に送信 |
| プロセス | 必要に応じて起動し、デーモンは不要 | バックグラウンドワーカーとポートの開放が必要 |
| IDE 対応 | Cursor + Claude Code | 主に 1 つの IDE のみ |
| 検索 | ハイブリッド:セマンティック検索 + キーワード検索(FTS5) | ベクトル検索のみ、またはキーワード検索のみ |
| チーム | エクスポート/インポート/共有 DB パス/S3 | シングルユーザー |
| ライセンス | MIT | AGPL/プロプライエタリ |
クイックスタート
1. インストール
pipx install longmem
2. セットアップ — Ollama を確認し、埋め込みモデルを取得して、IDE の設定を書き込みます
longmem init
3. 各プロジェクトで有効化 — AI にメモリの使い方を伝えるルールファイルをコピーします
cd your-project
longmem install
4. IDE を再起動します。 メモリツールがすべてのチャットで有効になります。
Ollama が必要ですか? ollama.com からインストールし、
ollama pull nomic-embed-textを実行してください。または OpenAI を使用できます。詳しくは設定をご覧ください。
仕組み
longmem はMCP サーバーです。IDE が必要に応じて起動します。ワークフローは 2 つのルールに基づいています。
ルール 1 — まず検索します。 AI はバグや質問について推論する前に、search_similar を呼び出します。一致する結果が見つかった場合(コサイン類似度 ≥ 85%)、エッジケースに関するメモとともに、キャッシュされた解決策が返されます。しきい値を下回る場合は、通常どおり解決します。
ルール 2 — 成功したら保存します。 うまくいったことを確認すると、AI は confirm_solution を呼び出します。パラメーターは 1 つだけで、解決策のテキストを指定します。問題のメタデータは、先ほどの検索結果から自動入力されます。
ルールファイル(Cursor 用の longmem.mdc、Claude Code 用の CLAUDE.md)が、この仕組みを自動的に設定します。手動でプロンプトを入力する必要はありません。
AI が保存し忘れましたか? longmem review を実行してください。30 秒で解決策を保存できる対話型 CLI です。
コールドスタート — 初日から価値を引き出す
longmem はエントリーが蓄積されると、最も役立ちます。最も手早くデータを投入する方法は次のとおりです。
オプション 1 — その都度レビューする。 今週、問題を解決するたびに longmem review を実行し、修正した内容を説明します。10 件もあれば、違いを実感できます。
オプション 2 — チームでインポートする。 チームメイトがすでにエントリーを持っている場合、その人がエクスポートし、あなたがインポートします。
# teammate
longmem export team_knowledge.json
# you
longmem import team_knowledge.json
オプション 3 — DB を共有する。 チーム全員で同じ場所を指すように db_path(S3/クラウドの場合は db_uri)を設定します。保存するたびに、その内容がすぐに全員に共有されます。
CLI
| コマンド | 内容 |
|---|---|
longmem init | 初回セットアップ:Ollama の確認、モデルのプル、IDE 設定の書き込み |
longmem install | ルールを現在のプロジェクトにコピー |
longmem status | 設定、Ollama への接続状況、エントリー数、DB サイズ |
longmem export [file] | すべてのエントリーを JSON に出力 — バックアップや共有に使用 |
longmem import <file> | JSON エクスポートを読み込み — チームメイトの参加やマシンの移行に使用 |
longmem review | AI が忘れた解決策を手動で保存 |
引数なしで longmem を実行すると、MCP サーバー(IDE が使用)を起動します。
設定
設定は ~/.longmem/config.toml にあります。すべてのフィールドは省略可能です。ローカルの Ollama インスタンスであれば、デフォルト設定のままで動作します。
OpenAI の埋め込みに切り替える
embedder = "openai"
openai_model = "text-embedding-3-small"
openai_api_key = "sk-..." # or set OPENAI_API_KEY
追加パッケージをインストールします:pip install 'longmem[openai]'
チーム共有データベース
チームメンバー全員の設定で、同じパスを指定します。
# NFS / shared drive
db_path = "/mnt/shared/longmem/db"
または、クラウドストレージを使用します。
# S3 (uses AWS env vars)
db_uri = "s3://my-bucket/longmem"
# LanceDB Cloud
db_uri = "db://my-org/my-db"
lancedb_api_key = "ldb_..." # or set LANCEDB_API_KEY
共有マウントがない場合は、longmem export/longmem import を使ってスナップショットを配布します。
チームナレッジベース
スタック全体で共通する事実を project="shared" として保存すると、どのリポジトリからでも見つかるようになります。
save_solution(
problem="why oauth2-proxy uses port 4181 not default 4180",
solution="General: 4180 is the oauth2-proxy default. 4181 means something else already occupies 4180.\n\nThis team's setup: Sinfonia always runs on 4180. Every other project uses 4181+ by convention.",
project="shared",
category="networking",
tags=["oauth2-proxy", "ports", "nginx"]
)
search_similar はすべてのプロジェクトを検索するため、shared のエントリーは search_by_project を使わなくても、どのリポジトリからでも自動的に見つかります。
3 層の解決策フォーマット — 見つけた人が誰でも使えるように、解決策を記述します。
| 層 | 範囲 | 保存方法 |
|---|---|---|
| 1. 一般的なパターン | 汎用 — どのチームでも使用可能 | 解決策のテキストに必ず含める |
| 2. チーム全体の事実 | スタック全体 | project="shared" |
| 3. プロジェクトの詳細 | 1 つのリポジトリのみ | project="<repo>" + enrich_solution |
調整
similarity_threshold = 0.85 # minimum score to surface a cached result (default 0.85)
duplicate_threshold = 0.95 # minimum score to block a save as a near-duplicate (default 0.95)
MCP ツール
サーバーは 11 個のツールを公開します。最も頻繁に使用するのは次の 2 つです。
search_similar— セマンティック検索とキーワード検索を組み合わせたハイブリッド検索です。類似度スコア、エッジケース、およびベクトルの類似性ではなく完全一致するテキストから結果が得られた場合に付くkeyword_matchフラグとともに、関連度順の一致結果を返します。confirm_solution— 1 つのパラメーターで解決策を保存します。問題のメタデータは直前の検索結果から自動的に入力されます。
全ツール一覧:save_solution、correct_solution、enrich_solution、add_edge_case、search_by_project、delete_solution、rebuild_index、list_recent、stats。
エントリー数が 256 件以上になったら、rebuild_index を 1 回実行してデータベースをコンパクト化し、検索を高速化する ANN インデックスを構築します。
カテゴリーのリファレンス
カテゴリーでベクトル検索の前に絞り込むため、どの規模でも高速に検索できます。
| カテゴリー | 用途 |
|---|---|
ci_cd | GitHub Actions、Jenkins、GitLab CI、ビルドの失敗 |
containers | Docker、Kubernetes、Helm、OOM キル |
infrastructure | Terraform、Pulumi、CDK、IaC のドリフト |
cloud | AWS/GCP/Azure SDK、IAM、クォータエラー |
networking | DNS、TLS、ロードバランサー、タイムアウト、プロキシ |
observability | ロギング、メトリクス、トレーシング、Prometheus、Grafana |
auth_security | OAuth、JWT、RBAC、シークレット、CVE |
data_pipeline | Airflow、Prefect、Dagster、ETL、データ品質 |
ml_training | GPU/CUDA、分散トレーニング、OOM |
model_serving | vLLM、Triton、推論のレイテンシ、バッチ処理 |
experiment_tracking | MLflow、W&B、DVC、再現性 |
llm_rag | チャンキング、埋め込み、検索、再ランキング |
llm_api | レート制限、トークンコスト、プロンプトエンジニアリング |
vector_db | Pinecone、Weaviate、Qdrant、LanceDB |
agents | LangChain、LlamaIndex、ツール呼び出し、エージェントのメモリ |
database | SQL/NoSQL、マイグレーション、遅いクエリ |
api | REST、GraphQL、gRPC、バージョニング |
async_concurrency | 競合状態、イベントループ、デッドロック |
dependencies | バージョンの競合、パッケージング、ロックファイル |
performance | プロファイリング、メモリリーク、キャッシュ |
testing | 不安定なテスト、モック、結合テストと単体テスト |
architecture | デザインパターン、サービス境界、リファクタリング |
other | 上記のどれにも当てはまらない場合 |
コントリビューション
コントリビューションを歓迎します。このプロジェクトは、利用するコミュニティとともに成長していきます。
バグ修正、新機能、ドキュメントの改善、あるいはユースケースの共有など、どのような貢献も役立ちます。アイデアがプロジェクトに合うかどうかわからない場合は、まず issue を作成してください。一緒に検討しましょう。
はじめに:
git clone https://github.com/marerem/longmem
cd longmem
uv sync --group dev
uv run pytest
初めてのコントリビューションにおすすめ:
- 新しいカテゴリーの提案
- 実際のプロジェクトで遭遇したエッジケース
- IDE との統合(JetBrains、VS Code、Neovim など)
- エラーメッセージの改善
- シードデータセット — 独自のエントリーをエクスポートして、スターターパックとして共有する
コードを書かずに貢献する方法:
- 便利だと思ったらリポジトリにスターを付ける
- チームと共有する
- わかりにくい点があれば issue を作成する — わかりにくい UX はバグです
ライセンス
MIT — LICENSE を参照してください。
mcp-name: io.github.marerem/longmem
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。