Skip to main content
Glama

RemembrallMCP

License: MIT Crates.io CI Docker

AIエージェントのための永続的な知識メモリとコードインテリジェンス。Rustコア、Postgres + pgvector、MCPプロトコルを採用。

課題: AIコーディングエージェントはステートレスです。すべてのセッションがゼロから始まり、過去の決定事項の記憶も、コードベースの全体像の理解も、変更による影響範囲の把握もできません。

解決策: RemembrallMCPは、ほとんどのメモリツールが提供していない2つの機能を提供します。

1. 永続的メモリ - セッション間をまたいで保持される決定事項、パターン、組織的な知識。ハイブリッドセマンティック+全文検索により、関連するコンテキストを即座に見つけ出します。

2. コード依存関係グラフ - tree-sitterで構築されたコードベースのライブマップ。8言語にわたる関数、クラス、インポート、呼び出し関係を網羅します。「これを変更すると何が壊れるか?」という問いに対し、エージェントが何かに触れる前に、ミリ秒単位で回答を得られます。

remembrall_recall("authentication middleware patterns")
-> 3 relevant memories from past sessions

remembrall_index("/path/to/project", "myapp")
-> Builds dependency graph: 847 symbols, 1,203 relationships

remembrall_impact("AuthMiddleware", direction="upstream")
-> 12 files depend on AuthMiddleware (with confidence scores)

remembrall_store("Switched from JWT to session tokens because...")
-> Decision stored for future sessions

コードグラフが重要な理由

RemembrallMCPがない場合、エージェントはセッションごとにコードベースをゼロから探索します。Claude CodeはExploreエージェントを生成し、Codexは数十のファイルを読み込み、Cursorはディレクトリをgrepします。これらはすべて、何が何を呼び出しているかを理解するためだけにトークンと時間を浪費しています。「この関数の呼び出し元をすべて見つける」という単一のタスクでさえ、複数のツール呼び出しを通じて数千トークンを消費する可能性があります。

RemembrallMCPがあれば、同じクエリは単一のremembrall_impact呼び出しとなり、探索トークンゼロで1ms未満で結果が返ります。依存関係グラフはすでに構築され、待機しているからです。

RemembrallMCPなし

RemembrallMCPあり

「UserServiceを呼び出しているのは?」

エージェントがgrepし、8〜15ファイルを読み込み、サブエージェントを生成

remembrall_impact - 1回呼び出し、1ms未満

「認証ミドルウェアはどこで定義されている?」

エージェントがglobし、一致箇所を読み込み、フィルタリング

remembrall_lookup_symbol - 1回呼び出し、1ms未満

「キャッシュについてどう決めた?」

エージェントはコンテキストを持たず、あなたに尋ねる

remembrall_recall - 1回呼び出し、約25ms

一般的な探索コスト

質問ごとに5,000〜20,000トークン

約200トークン(ツール呼び出し+応答)

節約効果はコードベースの規模に応じて拡大します。小規模なプロジェクトではエージェントがgrepして読み進めることも可能ですが、500ファイル規模のモノレポでは、その探索がボトルネックとなります。エージェントはコンテキスト制限に達したり、複数のサブエージェントを生成したり、モジュール間の依存関係を見落としたりします。RemembrallMCPのグラフクエリは、構造が実行時ではなくPostgresに事前インデックスされているため、プロジェクトサイズに関係なく10ms以下に収まります。

これが、毎回コードベースを探索するエージェントと、すでに理解しているエージェントとの違いです。

ベンチマーク

RemembrallMCPは現在、以下の2つの側面でベンチマークされています。

  • コードタスクにおけるエージェントの生産性 - pallets/click v8.1.7(594シンボル、1,589関係)でテスト。5つの同一コーディングタスクをRemembrallMCPの有無で実行。完全なレポート

  • メモリ想起の品質 - 検索品質、フィルタリング、エッジケース、ランキング、レイテンシをカバーする31の正解クエリに対するローカル想起ハーネスを実行。

メトリクス

RemembrallMCPなし

RemembrallMCPあり

デルタ

合計ツール呼び出し (5タスク)

112

5

-95.5%

推定トークン数

~56,000

~1,000

-98.2%

質問あたりの平均ツール呼び出し

22.4

1.0

-95.5%

節約効果は大規模なコードベースでさらに高まります。Clickは約90ファイルですが、500ファイル以上のモノレポでは、RemembrallMCPなしのエージェントは比例して多くの探索呼び出しが必要になる一方、グラフクエリはサイズに関係なく10ms以下を維持します。

メモリ想起メトリクス

結果

パスしたクエリ

31 / 31

Recall@5

0.917

Precision@5

0.619

MRR

0.908

p95レイテンシ

14ms

ベンチマークを自分で実行するには、ハーネスとタスク定義についてbenchmarks/を参照してください。

メモリ検索、長期記憶、コードグラフの正確性、エージェントの生産性にわたるより広範なベンチマーク戦略については、docs/benchmark-roadmap.mdを参照してください。

要件

  • Docker(最も簡単なセットアップ)またはPostgreSQL 16とpgvector

  • GitHub取り込み用: GitHub CLI (gh) がインストールされ、認証済みであること

Related MCP server: smriti

クイックスタート

オプション1: Docker Compose(最も簡単)

git clone https://github.com/cdnsteve/remembrallmcp.git
cd remembrallmcp

# Start Postgres + initialize schema + download embedding model
docker compose up -d

# Verify it's running
docker compose exec remembrall remembrall status

以上です。pgvector付きのPostgres、スキーマ、埋め込みモデルが自動的にセットアップされます。データベースとモデルキャッシュは再起動後も保持されます。

MCPサーバーを実行するには:

docker compose run --rm remembrall

オプション2: 事前ビルド済みバイナリのダウンロード

# macOS (Apple Silicon)
curl -fsSL https://github.com/cdnsteve/remembrallmcp/releases/latest/download/remembrall-aarch64-apple-darwin.tar.gz | tar xz
sudo mv remembrall /usr/local/bin/

# Linux (x86_64)
curl -fsSL https://github.com/cdnsteve/remembrallmcp/releases/latest/download/remembrall-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv remembrall /usr/local/bin/

# Initialize (sets up Postgres via Docker, creates schema, downloads model)
remembrall init

オプション3: ソースからビルド(Rust 1.94+が必要)

cargo build -p remembrall-server --release
# Binary is at target/release/remembrall

remembrall init

MCPクライアントへの接続

Codex

Codexは同じMCPサーバー定義形式を使用します。サーバーをremembrallとして登録し、インストールされたバイナリまたはローカルのリリースビルドを指定します。

remembrallPATHにインストールされている場合:

{
  "mcpServers": {
    "remembrall": {
      "command": "remembrall"
    }
  }
}

ローカルのソースチェックアウトから実行する場合:

{
  "mcpServers": {
    "remembrall": {
      "command": "/path/to/remembrallmcp/target/release/remembrall",
      "env": {
        "DATABASE_URL": "postgres://postgres:postgres@localhost:5450/remembrall"
      }
    }
  }
}

CodexからDocker Composeを使用する場合:

{
  "mcpServers": {
    "remembrall": {
      "command": "docker",
      "args": ["compose", "-f", "/path/to/remembrallmcp/docker-compose.yml", "run", "--rm", "-T", "remembrall"]
    }
  }
}

サーバーを追加した後、Codexを再起動して再接続し、ツールを読み込んでください。

Claude Code、Cursor、およびその他のMCPクライアント

プロジェクトの.mcp.jsonに追加します(Claude Code、Cursor、およびMCP互換クライアントで動作します)。

事前ビルド済みバイナリまたはソースからビルドした場合:

{
  "mcpServers": {
    "remembrall": {
      "command": "remembrall"
    }
  }
}

Docker Composeを使用する場合:

{
  "mcpServers": {
    "remembrall": {
      "command": "docker",
      "args": ["compose", "-f", "/path/to/remembrallmcp/docker-compose.yml", "run", "--rm", "-T", "remembrall"]
    }
  }
}

ソースから実行する場合(PATHにインストールされていない):

{
  "mcpServers": {
    "remembrall": {
      "command": "/path/to/remembrallmcp/target/release/remembrall",
      "env": {
        "DATABASE_URL": "postgres://postgres:postgres@localhost:5450/remembrall"
      }
    }
  }
}

MCPクライアントを再起動します。9つのツールすべてが自動的に利用可能になります。

試してみる

> "Store a memory: We chose Postgres over MongoDB because our query patterns
   are relational. Type: decision, tags: database, architecture"

> "Recall what we know about database decisions"

> "Index this project and show me the impact of changing UserService"

MCPツール

メモリ

ツール

説明

remembrall_recall

メモリの検索 - RRF融合によるハイブリッドセマンティック+全文検索

remembrall_store

決定事項、パターン、知識をベクトル埋め込みで保存

remembrall_update

既存のメモリを更新(コンテンツ、要約、タグ、重要度)

remembrall_delete

UUIDでメモリを削除

remembrall_ingest_github

GitHubリポジトリからマージ済みPRの説明を一括インポート

remembrall_ingest_docs

ディレクトリ内のMarkdownファイルをスキャンし、メモリとして取り込む

コードインテリジェンス

ツール

説明

remembrall_index

プロジェクトディレクトリを解析して依存関係グラフを作成(8言語)

remembrall_impact

影響範囲分析 - 「これを変更すると何が壊れるか?」

remembrall_lookup_symbol

プロジェクト全体で関数やクラスがどこで定義されているかを探す

対応言語

言語

拡張子

品質スコア

Python

.py

A (94.1)

Java

.java

A (92.6)

JavaScript

.js, .jsx

A (92.0)

Rust

.rs

A (91.0)

Go

.go

A (90.7)

Ruby

.rb

B (87.9)

TypeScript

.ts, .tsx

B (84.3)

Kotlin

.kt, .kts

B (82.9)

スコアは、自動化された正解テストを使用して、実際のオープンソースプロジェクト(Click, Gson, Axios, bat, Cobra, Sidekiq, Hono, Exposed)に対して測定されました。

コールドスタート

新しいRemembrallMCPインスタンスには知識がありません。取り込みツールを使用して、既存のプロジェクト履歴からブートストラップしてください。

GitHub PR履歴から:

> remembrall_ingest_github repo="myorg/myrepo" limit=100

gh経由でマージ済みPRを取得し、タイトルと本文をメモリに要約し、プロジェクトごとにタグ付けします。本文が50文字未満のPRはスキップされます。コンテンツのフィンガープリントによる重複排除により、繰り返し実行しても再取り込みを防ぎます。

Markdownドキュメントから:

> remembrall_ingest_docs path="/path/to/project"

ディレクトリツリーを走査し、すべての.mdファイルを見つけ、H2セクションヘッダーで分割し、各セクションを検索可能なメモリとして保存します。node_modules.gittargetなどのディレクトリはスキップします。README、ARCHITECTURE、ADR、およびその他のドキュメントに適しています。

プロジェクトごとに一度ずつ実行してください。取り込み後、remembrall_recallは即座にコンテキストを把握します。

アーキテクチャ

Source Code                   Organizational Knowledge
    |                                 |
    v                                 v
Tree-sitter Parsers           Ingestion Pipeline
(8 languages)                 (GitHub PRs, Markdown docs)
    |                                 |
    v                                 v
+--------------------------------------------------+
|              Postgres + pgvector                  |
|                                                   |
|  memories (text + embeddings + metadata)          |
|  symbols (functions, classes, methods)            |
|  relationships (calls, imports, inherits)         |
+--------------------------------------------------+
                          |
                    MCP Server (stdio)
                          |
              Any MCP-compatible AI agent
  • 解析: tree-sitter (Rustバインディング、パイプラインにPythonは不使用)

  • 埋め込み: fastembed (all-MiniLM-L6-v2, 384次元, プロセス内ONNX Runtime)

  • 検索: ハイブリッドRRF (セマンティックコサイン類似度 + 全文tsvector)

  • グラフクエリ: サイクル検出と信頼度減衰を伴う再帰的CTE

  • トランスポート: rmcp経由のstdio

CLIコマンド

コマンド

説明

remembrall init

データベース、スキーマ、埋め込みモデルのセットアップ

remembrall serve

MCPサーバーの実行(サブコマンドなしのデフォルト)

remembrall start

Dockerデータベースコンテナの起動

remembrall stop

Dockerデータベースコンテナの停止

remembrall status

メモリ数、シンボル数、接続状態の表示

remembrall doctor

一般的な問題のチェック(Docker, pgvector, スキーマ, モデル)

remembrall reset --force

スキーマの削除と再作成(全データを削除)

remembrall version

バージョンと設定パスの表示

設定

設定ファイル: ~/.remembrall/config.toml (remembrall initで作成)

環境変数は設定ファイルの値よりも優先されます:

変数

説明

REMEMBRALL_DATABASE_URL または DATABASE_URL

PostgreSQL接続文字列

REMEMBRALL_SCHEMA

データベーススキーマ名 (デフォルト: remembrall)

プロジェクト構造

crates/
  remembrall-core/          # Library - parsers, memory store, graph store, embedder
  remembrall-server/        # MCP server + CLI binary
  remembrall-test-harness/  # Parser quality testing against ground truth
  remembrall-recall-test/   # Search quality testing
docs/                       # Architecture and test plan docs
test-fixtures/              # Ground truth TOML files for 8 languages
tests/                      # Recall test fixtures

パフォーマンス

操作

時間

メモリ保存

7ms

セマンティック検索 (HNSW)

1ms未満

全文検索

1ms未満

ハイブリッド想起 (エンドツーエンド)

約25ms

影響分析

4-9ms

シンボル検索

1ms未満

89個のPythonファイルのインデックス作成

2.3s

ライセンス

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Universal AI memory layer that provides cross-client, cross-repo context management with semantic search, automatic code indexing, and session management. Enables persistent developer memory across projects with typed memories, graph-based relationships, and RAG-powered retrieval.
    5
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A lightning-fast, self-hosted knowledge store and memory layer for AI agents
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI coding agents with persistent, graph-connected memory across projects, enabling cross-project context retrieval via synaptic connections and hybrid search.
    8 npm
    8
    MIT