mcpField
R
RLM Tools

RLM Tools

ローカル
github.com開発ツール837 週間前に更新

RLM Tools について

RLM Tools は、AI コーディングエージェントがコードベースを調べるための永続的な Python サンドボックスです。生データはサーバー側に保持し、実行結果だけを会話に返します。大量のコード検索や読み取りに適しており、ファイルアクセスは読み取り専用で指定ディレクトリ内に制限されます。

主な機能

  1. 01永続的な Python サンドボックスセッション
  2. 02コードファイルの読み取り、検索、絞り込み
  3. 03ディレクトリツリーとパターン検索
  4. 04読み取り専用のディレクトリ限定アクセス

活用シーン

  1. 01大量の grep 結果を要約
  2. 02複数ファイルを読み、情報を抽出
  3. 03プロジェクトのモジュールを段階的に調査
  4. 04サンドボックス内で任意のセマンティック分析を実行

MCP 対応

この MCP サーバーは、セッション開始、Python コード実行、セッション終了のツールと、ファイル読み取り、検索、ディレクトリ閲覧の組み込み関数を提供します。任意の llm_query は Anthropic API を使い、サンドボックス内でセマンティック分析を行います。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"stefanoshea-rlm-tools": {
"command": "uvx",
"args": [
"rlm-tools"
]
}
}
}
起動コマンドuvx rlm-tools

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypirlm-tools0.1.0

ツール

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

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

詳細

RLM Tools

AI コーディングエージェントは、コードについて推論することよりも、コードを「読む」ことにトークン予算の大半を費やしています。grep、ファイルの読み込み、glob の結果がすべて会話に出力されます。大規模なコードベースでは、モデルが見る必要のない生データにコンテキスト(とコスト)の 25~35%が消費されます。

RLM Tools は、エージェントがコードを探索するための永続的なサンドボックスを提供します。データはサーバー側に保持され、結論だけが返されます。

# Install in one line (Claude Code)
claude mcp add rlm-tools -- uvx rlm-tools

# Or Codex
codex mcp add rlm-tools -- uvx rlm-tools

これだけです。エージェントは探索時にサンドボックスを自動的に使用します。設定も、プロンプトの変更も必要ありません。

何が変わるのか

RLM Tools なしの場合 — エージェントが import UIKit を grep すると、500 件の一致がコンテキストに出力されます。10 個のファイルを読み込み、その内容すべてにトークンを消費します。コンテキストウィンドウがいっぱいになり、エージェントは作業内容を忘れてしまいます。

RLM Tools ありの場合 — エージェントはサーバー側の Python サンドボックスで同じ探索を実行します。データはサンドボックスのメモリ内に保持され、コンテキストに入るのは print() の出力だけです。

matches = grep("import UIKit")
by_module = {}
for m in matches:
    module = m["file"].split("/")[0]
    by_module.setdefault(module, []).append(m)
for module, ms in sorted(by_module.items(), key=lambda x: -len(x[1]))[:5]:
    print(f"{module}: {len(ms)} files")

grep の結果 500 行が、5 行の要約になります。エージェントに必要な情報だけが表示され、それ以外は表示されません。

実際の効果

一般的なコーディングワークフローでは、コンテキストを 25~35%削減できます。 つまり、コンテキストの上限に達するまでに、エージェントが探索できるコードがおよそ 40~50%増えます。

多数のファイルを読んだり、広範囲を検索したりする探索量の多いタスクでは、削減効果がさらに大きくなります。

シナリオ標準ツールRLM Tools削減率
アプリ全体を grep で検索40,045 chars1,644 chars95.9%
大きなファイルを 10 個読む1,493,720 chars13,588 chars99.1%
複数ステップの探索136,102 chars5,285 chars96.1%
grep してから一致箇所を読む340,408 chars6,022 chars98.2%
パターンの使用箇所をすべて探す13,478 chars3,691 chars72.6%
モジュールを理解する94,745 chars16,925 chars82.1%

ベンチマークの方法と再現手順の詳細:docs/benchmarks.md

仕組み

MCP ツールは 3 つだけです。API はこれですべてです。

ツール用途
rlm_start(path, query)ディレクトリを対象にセッションを開始
rlm_execute(session_id, code)サンドボックス内で Python を実行
rlm_end(session_id)セッションを終了し、リソースを解放

サンドボックスには、次のヘルパーが組み込まれています。

  • read_file(path) / read_files(paths) — ファイルを変数に読み込む(呼び出し間でキャッシュ)
  • grep(pattern) / grep_summary(pattern) / grep_read(pattern) — 検索
  • glob_files(pattern) — パターンに一致するファイルを検索
  • tree(path, max_depth) — ディレクトリ構造を表示
  • llm_query(prompt, context) — サブ LLM による分析(任意、API キーが必要)

変数はセッション内の rlm_execute 呼び出し間で保持されます。エージェントは検索、絞り込み、読み込み、分析を通じて段階的に理解を深められ、その間のデータがコンテキストウィンドウに触れることはありません。

対応環境

RLM Tools は標準的な MCP サーバーです。Claude Code、Codex、Cursor など、MCP 互換のあらゆるクライアントで動作します。

その他のインストール方法
JSON MCP 設定(Cursor、Windsurf など)
{
  "mcpServers": {
    "rlm-tools": {
      "command": "uvx",
      "args": ["rlm-tools"]
    }
  }
}
直接実行
uvx rlm-tools
ソースからインストール
git clone https://github.com/stefanoshea/rlm-tools.git
cd rlm-tools
uv sync
uv run rlm-tools

次に、MCP クライアントで command: uv、args: ["--directory", "/path/to/rlm-tools", "run", "rlm-tools"] を指定します。

設定

.env.example を .env にコピーしてカスタマイズします。すべての設定は任意です。RLM Tools は設定なしですぐに使えます。

基本的な探索機能(read、grep、glob、tree)に API キーは必要ありません。任意の llm_query() ヘルパーは、サンドボックス内での意味解析に Anthropic API を呼び出します。キーが必要なのはこの機能だけです。

変数デフォルト説明
ANTHROPIC_API_KEY—llm_query() のみに必要です。Anthropic の API(Claude)を使用します。
RLM_SUB_MODELclaude-haiku-4-5-20251001llm_query() で使用する Claude モデル
RLM_MAX_SESSIONS5同時セッションの最大数
RLM_SESSION_TIMEOUT10セッションのタイムアウト時間(分)

セキュリティ

サンドボックスは読み取り専用で、制限されています。

  • インポート:安全な標準ライブラリのみ(re、json、collections、math など)
  • 組み込み関数:exec、eval、compile、__import__、breakpoint をブロックします
  • ファイルアクセス:読み取り専用で、セッションディレクトリ内に限定され、パストラバーサルはブロックされます
  • 実行:呼び出しごとにタイムアウトを設定できます(デフォルトは 30s)
  • レート制限:セッションごとの最大呼び出し回数を設定できます

背景

RLM Tools は、RLM スタイルの探索ループを実装しています。生データはツール側のメモリに保持し、コンパクトな出力のみをモデルに送信します。Model Context Protocol 上に構築されています。

開発

git clone https://github.com/stefanoshea/rlm-tools.git
cd rlm-tools
uv sync --dev
pytest tests

比較ベンチマークを実行します(ローカルのプロジェクトチェックアウトが必要です)。

RLM_EVAL_PROJECT_PATH=/path/to/project pytest evals -q -s

ライセンス

MIT

コメント

MCP は初めてですか?

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

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