mcpField
R
RLM Tools

RLM Tools

Local
github.comDeveloper Tools8Updated 37w ago

About RLM Tools

RLM Tools is a persistent Python sandbox for AI coding agents exploring codebases; raw data stays server-side while only execution results enter the conversation. It is suited to searches and reads across large codebases, with read-only, directory-scoped file access.

Key features

  1. 01Persistent Python sandbox sessions
  2. 02Read, search, and filter code files
  3. 03Browse directory trees and match patterns
  4. 04Read-only, directory-scoped access

Use cases

  1. 01Summarize large grep results
  2. 02Read and distill information across files
  3. 03Explore project modules incrementally
  4. 04Run optional semantic analysis in the sandbox

MCP support

The MCP server provides tools to start sessions, execute Python code, and end sessions, with built-in helpers for reading files, searching, and browsing directories. The optional llm_query uses the Anthropic API for semantic analysis inside the sandbox.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"stefanoshea-rlm-tools": {
"command": "uvx",
"args": [
"rlm-tools"
]
}
}
}
Run commanduvx rlm-tools

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypirlm-tools0.1.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

RLM Tools

Your AI coding agent spends most of its token budget just reading your code — not reasoning about it. Every grep, file read, and glob result gets dumped into the conversation. On a large codebase, that's 25-35% of your context (and cost) burned on raw data the model never needed to see.

RLM Tools gives your agent a persistent sandbox to explore code in. Data stays server-side. Only the conclusions come back.

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

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

That's it. Your agent automatically uses the sandbox for exploration. No config, no prompting changes.

What Changes

Without RLM Tools — agent greps for import UIKit, gets 500 matches dumped into context. Reads 10 files, burns all their content as tokens. Context window fills up. Agent forgets what it was doing.

With RLM Tools — agent runs the same exploration in a server-side Python sandbox. Data stays in sandbox memory. Only the print() output enters context:

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")

500 lines of grep results become 5 lines of summary. The agent sees what it needs, nothing more.

Real-World Impact

In typical coding workflows: 25-35% context reduction. That means your agent can explore roughly 40-50% more code before hitting context limits.

In heavy exploration tasks (reading many files, broad searches), savings go much further:

ScenarioStandard ToolsRLM ToolsSaved
Grep across full app40,045 chars1,644 chars95.9%
Read 10 large files1,493,720 chars13,588 chars99.1%
Multi-step exploration136,102 chars5,285 chars96.1%
Grep then read matches340,408 chars6,022 chars98.2%
Find all usages of a pattern13,478 chars3,691 chars72.6%
Understand a module94,745 chars16,925 chars82.1%

Full benchmark methodology and reproduction steps: docs/benchmarks.md

How It Works

Three MCP tools. That's the entire API:

ToolPurpose
rlm_start(path, query)Open a session on a directory
rlm_execute(session_id, code)Run Python in the sandbox
rlm_end(session_id)Close session, free resources

The sandbox provides built-in helpers:

  • read_file(path) / read_files(paths) — Read files into variables (cached across calls)
  • grep(pattern) / grep_summary(pattern) / grep_read(pattern) — Search
  • glob_files(pattern) — Find files by pattern
  • tree(path, max_depth) — Directory structure
  • llm_query(prompt, context) — Sub-LLM analysis (optional, requires API key)

Variables persist across rlm_execute calls within a session. The agent can build up understanding incrementally — search, filter, read, analyze — without any intermediate data touching the context window.

Works With

RLM Tools is a standard MCP server. It works with any MCP-compatible client: Claude Code, Codex, Cursor, and others.

Other installation methods
JSON MCP config (Cursor, Windsurf, etc.)
{
  "mcpServers": {
    "rlm-tools": {
      "command": "uvx",
      "args": ["rlm-tools"]
    }
  }
}
Direct run
uvx rlm-tools
From source
git clone https://github.com/stefanoshea/rlm-tools.git
cd rlm-tools
uv sync
uv run rlm-tools

Then point your MCP client to command: uv, args: ["--directory", "/path/to/rlm-tools", "run", "rlm-tools"].

Configuration

Copy .env.example to .env to customize. All settings are optional — RLM Tools works out of the box with zero config.

The core exploration features (read, grep, glob, tree) require no API key. The optional llm_query() helper calls the Anthropic API for semantic analysis within the sandbox — this is the only feature that requires a key.

VariableDefaultDescription
ANTHROPIC_API_KEY—Required for llm_query() only. Uses Anthropic's API (Claude).
RLM_SUB_MODELclaude-haiku-4-5-20251001Claude model used for llm_query()
RLM_MAX_SESSIONS5Max concurrent sessions
RLM_SESSION_TIMEOUT10Session timeout in minutes

Security

The sandbox is read-only and restricted:

  • Imports: Safe stdlib only (re, json, collections, math, etc.)
  • Builtins: Blocks exec, eval, compile, __import__, breakpoint
  • File access: Read-only, scoped to session directory, path traversal blocked
  • Execution: Configurable per-call timeout (default 30s)
  • Rate limits: Configurable max calls per session

Background

RLM Tools implements an RLM-style exploration loop: keep raw data in tool-side memory, send only compact outputs to the model. Built on the Model Context Protocol.

Development

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

Run comparative benchmarks (requires a local project checkout):

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

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.