🚀 A-MEM MCP Server
このプロジェクトは、AIによるソフトウェアエンジニアリングの実験です。Claude CodeやClaude Desktopなどのツールを使用する際に、複雑なコードベースの持続的かつ進化的な理解を複数のセッションやプロジェクトにわたって維持するためのメモリサーバーを提供します。
プロジェクト名はzetmem
に変更されました。詳細はこちらを参照してください:
https://github.com/nixlim/zetmem
これはAI支援ソフトウェアエンジニアリングの実験です。
現時点では、人間が直接コードを書いていません(少なくともまだ)。
自己責任で使用してください :)
🤔 解決する問題
このZettlekastenベースのモデルコンテキストプロトコル(MCP)メモリサーバーは、Claude CodeやClaude Desktopなどのツールを使用する際に、複数のセッションやプロジェクトにわたって複雑なコードベースの持続的かつ進化的な理解を維持するという課題を解決します。従来のアプローチでは、各セッションでリセットされる断片的で永続的でないメモリが生じることが多く、包括的な知識ベースを構築して検索することが困難です。このサーバーは、新しいノートや情報が追加されると自動的に更新される「生きた」メモリシステムを作成することで、この問題を解決します。これにより、関係や接続を自動的に発見し、より深い洞察とシームレスな連続性を促進します。
🚀 クイックスタート
クイックスタートガイドについては、QUICK_START.md
を参照してください。
./scripts/install.sh
これにより、Dockerコンテナが起動し、サーバーが構築されます。
Claude DesktopにMCP設定を追加するはずです(既存の設定のバックアップを取り、必要に応じて復元スクリプトがあります) - 「私の環境では動作します」(TM)
Claude Desktopを再起動すると、MCPサーバーのリストに表示されるはずです。問題があれば、ここで報告してください :)
技術的な説明はSYSTEM_DOCUMENTATION.md
にあります。
Claude Code用のAIパワードメモリシステムで、コーディングセッション間で持続的なコンテキスト認識を可能にします。
🎯 現在の状態
最新リリース: v1.1.0 - ワークスペース管理 ✅
新機能:
- ✅ ワークスペース管理: ファイルシステムパスまたはユーザー定義の名前でメモリを論理的にグループ化
- ✅ 3つの新しいMCPツール: workspace_init、workspace_create、workspace_retrieve
- ✅ 下位互換性: プロジェクトベースの組織からのシームレスな移行
- ✅ スマートデフォルト: 自動ワークスペース検出と初期化
最近の修正:
- ✅ メモリの保存と取得: 誤ったエラー報告と関連性計算を修正
- ✅ 埋め込み統合: 次元の不一致とサービス接続性を解決
- ✅ OpenAI API統合: 重大な認証問題を修正
- ✅ MCPプロトコル準拠: JSON-RPC通知処理を解決
- ✅ コンテナ管理: クリーンアップとプロセス管理を強化
- ✅ Claude Desktop統合: 設定処理を改善
✨ 主な機能
コアメモリシステム
- メモリの作成: AIによって生成されたキーワード、タグ、埋め込みを使用してコードスニペットを保存
- メモリの取得: ランキングとフィルタリングを伴うベクトル類似性検索
- メモリの進化: AIによる分析を使用してメモリネットワークを更新および最適化
- MCP統合: Claude Codeと互換性のあるJSON-RPC 2.0サーバー
高度な機能(フェーズ2)
- 実際の埋め込み: Sentence-transformersとOpenAIの埋め込みサービス
- インテリジェントな進化: 自動メモリネットワーク最適化
- プロンプトエンジニアリング: テンプレートベースのLLMプロンプト管理
- 監視とメトリクス: 包括的なPrometheusの可観測性
- タスクスケジューリング: Cronベースの自動メンテナンス
- マルチLLMサポート: フォールバックとモデルの柔軟性のためのLiteLLMプロキシ
- ベクトルストレージ: 拡張可能な類似性検索のためのChromaDB
📦 インストール
🚀 ワンコマンドインストール
git clone git@github.com:nixlim/amem_mcp.git
cd amem_mcp
./scripts/install.sh
インストーラーは自動的に以下のことを行います:
- ✅ 前提条件と依存関係をチェック
- ✅ あなたのClaudeインストール(Code/Desktop)を検出
- ✅ 既存のコンテナとプロセスをクリーンアップ
- ✅ DockerでA-MEMサービスを起動
- ✅ 適切なAPIキーの処理を伴うClaude MCP統合を設定
- ✅ インストールをテストし、接続性を検証
- ✅ すべてのメモリ操作が正しく動作することを確認
手動インストール
手動で設定する場合は、以下の手順に従ってください:
- 前提条件: Docker、Docker Compose、Go 1.23+、OpenAI APIキー
- 設定:
cp .env.example .env
を実行し、APIキーを追加
- 起動:
docker-compose up -d && make build
- 設定: インストールガイドに従って設定
📚 ドキュメント
検証
インストール後、A-MEMが正常に動作していることを検証します:
docker-compose ps
./scripts/validate_installation.sh
💻 使用例
基本的な使用法
サーバーはClaude Code用に3つの主要なツールを公開しています:
1. store_coding_memory
AI分析を伴うコーディングメモリを保存します。
{
"tool": "store_coding_memory",
"arguments": {
"content": "function fibonacci(n) { return n <= 1 ? n : fibonacci(n-1) + fibonacci(n-2); }",
"project_path": "/projects/algorithms",
"code_type": "javascript",
"context": "Recursive implementation of Fibonacci sequence"
}
}
2. retrieve_relevant_memories
ベクトル類似性を使用して関連するメモリを検索します。
{
"tool": "retrieve_relevant_memories",
"arguments": {
"query": "How to implement fibonacci efficiently?",
"max_results": 5,
"min_relevance": 0.7
}
}
3. evolve_memory_network
メモリネットワークの進化をトリガーします(フェーズ2の機能)。
{
"tool": "evolve_memory_network",
"arguments": {
"trigger_type": "manual",
"scope": "recent",
"max_memories": 100
}
}
🔧 設定
設定はYAMLファイルと環境変数を使用して管理されます:
config/development.yaml
- 開発設定
config/production.yaml
- 本番設定
.env
- 環境変数(APIキー、オーバーライド)
主要な設定セクション:
- server: ポート、ロギング、リクエスト制限
- chromadb: ベクトルデータベースの接続
- litellm: LLMプロキシ設定とフォールバック
- evolution: メモリの進化スケジューリング
- monitoring: メトリクスとトレーシング
🏗️ アーキテクチャ
┌─────────────────┐ ┌──────────────┐ ┌──────────────┐
│ Claude Code │───▶│ MCP Server │───▶│ Memory │
│ │ │ │ │ System │
└─────────────────┘ └──────────────┘ └──────┬───────┘
│
▼
┌──────────────┐
│ LiteLLM │
│ Analysis │
└──────┬───────┘
│
▼
┌──────────────┐
│ ChromaDB │
│ Vector Store │
└──────────────┘
🔨 開発
プロジェクト構造
├── cmd/server/ # メインサーバーのエントリーポイント
├── pkg/
│ ├── config/ # 設定管理
│ ├── mcp/ # MCPプロトコルハンドラー
│ ├── memory/ # コアメモリシステム
│ ├── models/ # データモデルとスキーマ
│ └── services/ # 外部サービスの統合
├── config/ # 設定ファイル
├── prompts/ # LLMプロンプトテンプレート
└── docker/ # Docker設定
テストの実行
go test ./...
ビルド
go build -o amem-server cmd/server/main.go
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o amem-server cmd/server/main.go
📊 監視
サーバーはポート9090でPrometheusメトリクスを公開します:
- メモリ操作のカウント
- LLMリクエストの待ち時間
- ベクトル検索の時間
- エラー率
メトリクスにアクセスするには、http://localhost:9090/metrics
を参照してください。
🛠️ トラブルシューティング
一般的な問題
-
ChromaDB接続エラー:
- ChromaDBが実行中であることを確認:
docker-compose ps chromadb
- 設定内のURLを確認:
chromadb.url
-
LLM APIエラー:
.env
ファイル内のAPIキーを確認
- レート制限とクォータを確認
- 設定内のフォールバックモデルを確認
-
メモリ保存エラー:
- ChromaDBのログを確認:
docker-compose logs chromadb
- コレクションの初期化を確認
ログ
サーバーのログを表示するには:
docker-compose logs amem-server
./amem-server -log-level debug
🤝 貢献方法
- リポジトリをフォークする
- 機能ブランチを作成する
- テストを含む変更を加える
- プルリクエストを送信する
📄 ライセンス
MITライセンス - 詳細はLICENSE
ファイルを参照してください。
🗺️ ロードマップ
- フェーズ1(現在): コアメモリ操作を備えたMVP
- フェーズ2: メモリの進化と最適化
- フェーズ3: 高度なスケジューリングと監視 // TODO: 更新
- フェーズ4: マルチユーザーサポートとスケーリング
謝辞
このMCPサーバーは、以下の論文を基に構築されました:
@article{xu2025mem,
title={A-mem: Agentic memory for llm agents},
author={Xu, Wujiang and Liang, Zujie and Mei, Kai and Gao, Hang and Tan, Juntao and Zhang, Yongfeng},
journal={arXiv preprint arXiv:2502.12110},
year={2025}
}
論文のPDFへのリンク: https://arxiv.org/pdf/2502.12110v1
論文のGitHubリポジトリ: https://github.com/WujiangXu/A-mem
論文の著者は、独自のシステム実装も持っています(MCPサーバーではないと思われます):
https://github.com/WujiangXu/A-mem-sys
このシステムは動作します。テスト、起動スクリプト、ローカルDockerが用意されています。Claude DesktopとClaude Codeの統合も正常に動作します。
私は一行のコードも書いていません。AIとペアプログラミングを行い、私がナビゲートし、AIがコーディングを行いました。