RLM Tools

Official registry Other

Persistent Python sandbox for token-efficient codebase exploration in MCP clients

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

PYPI package rlm-tools
Claude Code
claude mcp add rlm-tools -- uvx rlm-tools==0.1.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "rlm-tools": {
            "command": "uvx",
            "args": [
                "rlm-tools==0.1.0"
            ]
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. RLM Tools
  2. What Changes
  3. Real-World Impact
  4. How It Works
  5. Works With
  6. Configuration
  7. Security
  8. Background
  9. Development
  10. License

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

Frequently asked questions

What is RLM Tools?

Persistent Python sandbox for token-efficient codebase exploration in MCP clients

How do I install RLM Tools?

It runs on your machine. In Claude Code: claude mcp add rlm-tools -- uvx rlm-tools==0.1.0. For other clients, paste the JSON configuration from this page into their MCP settings.

Does RLM Tools need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is RLM Tools open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains RLM Tools?

It is published by stefanoshea. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.