RLM Tools

io.github.stefanosheaPublished by GitHub account stefanosheav0.1.0Updated Oct 24, 2026

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

VerifiedSTDIODesktop onlyDeveloper ToolsAI & ML

Overview

AI-generated overview

A local Python sandbox MCP server that lets an AI coding agent explore a codebase server-side and return only compact summaries, cutting context usage.

What you can do
RLM Tools exposes three MCP tools: rlm_start opens a session on a directory, rlm_execute runs Python inside a persistent sandbox, and rlm_end closes the session. Inside the sandbox the agent gets helpers such as read_file, read_files, grep, grep_summary, grep_read, glob_files and tree, plus an optional llm_query for sub-LLM analysis. Variables persist across execute calls, so raw file and search data stays in sandbox memory and only printed output enters the model's context.
When to use it
Useful when an agent works on large codebases and burns much of its context on raw grep, glob and file-read output. It suits exploration, search and module-understanding tasks where only conclusions need to reach the model. It is a standard MCP server for clients such as Claude Code, Codex and Cursor.
Requirements
Runs locally over stdio, installed from PyPI as rlm-tools and started with uvx, so a Python/uv runtime is needed. The core read, grep, glob and tree features need no API key. The optional llm_query helper requires the ANTHROPIC_API_KEY environment variable and calls Anthropic's API. Optional settings include RLM_SUB_MODEL, RLM_MAX_SESSIONS and RLM_SESSION_TIMEOUT.
Before you install
The sandbox is described as read-only, scoped to the session directory, with path traversal blocked, restricted stdlib imports and blocked exec, eval, compile and import. The optional llm_query sends prompt and context to Anthropic's API and needs ANTHROPIC_API_KEY, so code content passed to it leaves the machine. Sessions hold resources and are subject to timeouts and call rate limits.

Installation

In SourceWeft

  1. Open RLM Tools in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

bash
# Install in one line (Claude Code)claude mcp add rlm-tools -- uvx rlm-tools
# Or Codexcodex 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:

python
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.)

json
{  "mcpServers": {    "rlm-tools": {      "command": "uvx",      "args": ["rlm-tools"]    }  }}

Direct run

bash
uvx rlm-tools

From source

bash
git clone https://github.com/stefanoshea/rlm-tools.gitcd rlm-toolsuv syncuv 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

bash
git clone https://github.com/stefanoshea/rlm-tools.gitcd rlm-toolsuv sync --devpytest tests

Run comparative benchmarks (requires a local project checkout):

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

License

MIT

Source: README.md at commit 81c1062

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts