Skip to main content
Glama

memory-mcp

AIエージェント向けの永続的、検索可能、バージョン管理されたメモリ。 Valkey (Redis互換) をバックエンドとし、HTTP経由で MCP サーバーとして公開されます。

Claude Code、Cursor、VS Codeなど、MCP互換のあらゆるエージェントで動作します。

機能

  • タグ、タイプ、プロジェクトスコープを指定したメモリエントリーの保存

  • タグの積集合検索、タイプ/プロジェクトによるフィルタリング、部分文字列検索

  • ヒット数追跡(アクセス頻度の高いエントリーが上位に表示されます)

  • ロールバック機能付きの完全なバージョン履歴

  • Prometheusメトリクスエンドポイント

  • オプションのBearerトークン認証

Related MCP server: CORTEX Memory MCP

クイックスタート

cp .env.example .env
# Optional: set MEMORY_MCP_AUTH_TOKEN in .env (see Auth section)
docker compose up -d

これにより、GHCRからビルド済みのイメージがプルされます。MCPサーバーは http://127.0.0.1:3106/mcp で利用可能になります。

ローカルでビルドする場合:

docker compose build
docker compose up -d

既存のRedisまたはValkeyを使用する

デフォルトでは docker compose up -d でバンドルされたValkeyコンテナが起動します。既存のRedisまたはValkeyインスタンスに接続するには、VALKEY_URL を設定し、memory-mcp サービスのみを起動してください:

# .env
VALKEY_URL=redis://your-host:6379

docker compose up -d memory-mcp

Redis互換のサーバー(Redis 6以上、Valkey、KeyDB、Upstashの rediss:// など)であれば何でも動作します。サーバーはハッシュ、リスト、セットといった基本的なデータ構造のみを使用します。

エージェントの設定

このリポジトリの AGENTS.md をプロジェクトルートにコピーしてください。これには、エージェントがメモリツールをどのように使用し、何を保存し、いつ使用すべきかが記載されています。

次に、エージェントクライアントにMCPサーバーを登録します:

Claude Code

# Without auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp

# With auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp \
  --header "Authorization: Bearer your-token"

または ~/.claude.json に手動で追加します:

{
  "mcpServers": {
    "memory": {
      "type": "http",
      "url": "http://127.0.0.1:3106/mcp",
      "headers": { "Authorization": "Bearer your-token" }
    }
  }
}

Cursor

~/.cursor/mcp.json (グローバル) または .cursor/mcp.json (プロジェクト) に追加します:

{
  "mcpServers": {
    "memory": {
      "url": "http://127.0.0.1:3106/mcp",
      "headers": { "Authorization": "Bearer your-token" }
    }
  }
}

VS Code (GitHub Copilot, MCP拡張機能)

プロジェクト内の .vscode/mcp.json に追加します:

{
  "servers": {
    "memory": {
      "type": "http",
      "url": "http://127.0.0.1:3106/mcp",
      "headers": { "Authorization": "Bearer your-token" }
    }
  }
}

認証を使用していない場合は、設定内の headers / Authorization 行を省略してください。

設定

.env.example を .env にコピーし、必要に応じて編集してください。

変数

デフォルト

説明

MEMORY_MCP_BIND

127.0.0.1

バインドするインターフェース。AUTH_TOKEN を設定する場合のみ 0.0.0.0 を使用してください。

MEMORY_MCP_HOST_PORT

3106

ホスト側で公開するポート

MEMORY_MCP_AUTH_TOKEN

(空)

/mcp 用のBearerトークン。空の場合は認証なし。生成方法: openssl rand -hex 32

MEMORY_MCP_MAX_ENTRIES_WARN

300

ソフトキャップ — 超過時に書き込み時に警告

MEMORY_MCP_MAX_VERSIONS_PER_ENTRY

20

エントリーごとの最大バージョンスナップショット数

MEMORY_MCP_MEM_LIMIT

256m

コンテナのメモリ制限

VALKEY_IMAGE

valkey/valkey:9.0.3

使用するValkeyイメージ

認証

デフォルトでは、サーバーは認証なしで実行されます。ループバック (127.0.0.1) にバインドされ、ローカルマシンからのみアクセスされる場合は安全です。

認証を有効にするには:

# Generate a token
openssl rand -hex 32

# Add to .env
MEMORY_MCP_AUTH_TOKEN=your-generated-token

docker compose up -d

その後、POST /mcp へのすべてのリクエストには以下を含める必要があります:

Authorization: Bearer <token>

GET /health および GET /metrics は常に認証不要です。

利用可能なツール

ツール

説明

memory_search

タグ(積集合)、タイプ、プロジェクト、またはテキストの部分文字列で検索

memory_get

IDでエントリーを1つ取得(ヒットカウンターをインクリメント)

memory_set

エントリーの作成または更新(書き込みごとにバージョン管理)

memory_list

タイプ/プロジェクトフィルターを指定してエントリーを一覧表示

memory_delete

エントリーを削除(最初に削除済みフラグのバージョンが書き込まれます)

memory_history

エントリーのバージョン履歴を表示

memory_rollback

エントリーを以前のバージョンに復元

memory_prune_candidates

ヒット数ゼロの古いエントリーをレビュー用に抽出(読み取り専用)

メモリタイプ

pattern, decision, reference, feedback, incident, project, entity, state

エンドポイント

メソッド

パス

認証

説明

POST

/mcp

設定時のみ

MCP JSON-RPCエンドポイント

GET

/health

なし

ヘルスチェック

GET

/metrics

なし

Prometheusメトリクス

データモデル

各エントリーは mem:<id> というRedisハッシュとして保存されます:

フィールド

説明

title

短い説明タイトル

body

コンテンツ全文

type

エントリータイプ

tags

カンマ区切りのタグリスト

source

作成者

project

プロジェクトスコープ(空の場合はプロジェクト横断)

created

作成日(ISO形式)

updated

最終更新日(ISO形式)

hits

memory_get で取得された回数

ttl

有効期限(秒、オプション)

バージョン履歴は memver:<id> というRedisリストに保存されます(最新順、MAX_VERSIONS_PER_ENTRY で制限)。

タグ、タイプ、プロジェクトのインデックスはRedisセット (tag:<name>, type:<name>, project:<name>) です。

ライセンス

MIT

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers