Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Handles 10M+ token contexts with chunking, sub-queries, and local Ollama inference.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
RLM_DATA_DIR, OLLAMA_URL你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
链接指向作者自己的文件;我们不托管也不重新打包它。打开文件后,Claude Desktop 会进行安装。
在终端中运行这条命令
claude mcp add massive-context --env RLM_DATA_DIR=your-value --env OLLAMA_URL=your-value -- uvx massive-context-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"massive-context": {
"command": "uvx",
"args": [
"massive-context-mcp"
],
"env": {
"RLM_DATA_DIR": "your-value",
"OLLAMA_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"massive-context": {
"type": "stdio",
"command": "uvx",
"args": [
"massive-context-mcp"
],
"env": {
"RLM_DATA_DIR": "your-value",
"OLLAMA_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
RLM_DATA_DIR envOLLAMA_URL env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 egoughnour 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(3.0.1)于10个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv), MCPB。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Tethered Trust
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Handle massive contexts (10M+ tokens) with chunking, sub-queries, and free local inference via Ollama.
flowchart TD
A[Claude Code] --> B[RLM MCP Server] B --> C{rlm_ollama_status} C -->|cached 60s| D{provider = auto}
D -->|Ollama running| E[🦙 Ollama gemma3:12b] D -->|Ollama unavailable| F[☁️ Claude SDK claude-haiku-4-5]
E --> G[["💰 $0 Free local inference"]] F --> H[["💰 ~$0.80/1M Cloud inference"]]
style A fill:#ff922b,color:#fff style B fill:#339af0,color:#fff style E fill:#51cf66,color:#fff style F fill:#748ffc,color:#fff style G fill:#51cf66,color:#fff style H fill:#748ffc,color:#fff
Based on the Recursive Language Model pattern. Inspired by richardwhiteii/rlm.
📸 Screenshots
Instead of feeding massive contexts directly into the LLM:
Option 1: PyPI (Recommended)
uvx massive-context-mcp
pip install massive-context-mcp
With Optional Extras:
# With Code Firewall integration (security filter for rlm_exec)
pip install massive-context-mcp[firewall]
pip install massive-context-mcp[claude]
pip install massive-context-mcp[firewall,claude]
Option 2: Claude Desktop One-Click
Download the .mcpb from Releases and double-click to install.
Option 3: From Source
git clone https://github.com/egoughnour/massive-context-mcp.git
cd massive-context-mcp uv sync
Add to ~/.claude/.mcp.json (Claude Code) or claude_desktop_config.json (Claude Desktop):
{
"mcpServers": { "massive-context": { "command": "uvx", "args": ["massive-context-mcp"], "env": { "RLM_DATA_DIR": "~/.rlm-data", "OLLAMA_URL": "http://localhost:11434" } } } }
| Tool | Purpose |
|---|---|
rlm_system_check | Check system requirements — verify macOS, Apple Silicon, 16GB+ RAM, Homebrew |
rlm_setup_ollama | Install via Homebrew — managed service, auto-updates, requires Homebrew |
rlm_setup_ollama_direct | Install via direct download — no sudo, fully headless, works on locked-down machines |
rlm_ollama_status | Check Ollama availability — detect if free local inference is available |
| Tool | Purpose |
|---|---|
rlm_auto_analyze | One-step analysis — auto-detects type, chunks, and queries |
rlm_load_context | Load context as external variable |
rlm_inspect_context | Get structure info without loading into prompt |
rlm_chunk_context | Chunk by lines/chars/paragraphs |
rlm_get_chunk | Retrieve specific chunk |
rlm_filter_context | Filter with regex (keep/remove matching lines) |
rlm_exec | Execute Python code against loaded context (sandboxed) |
rlm_sub_query | Make sub-LLM call on chunk |
rlm_sub_query_batch | Process multiple chunks in parallel |
rlm_store_result | Store sub-call result for aggregation |
rlm_get_results | Retrieve stored results |
rlm_list_contexts | List all loaded contexts |
rlm_auto_analyzeFor most use cases, just use rlm_auto_analyze — it handles everything automatically:
rlm_auto_analyze(
name="my_file", content=file_content, goal="find_bugs" # or: summarize, extract_structure, security_audit, answer: )
What it does automatically:
Supported goals:
| Goal | Description |
|---|---|
summarize | Summarize content purpose and key points |
find_bugs | Identify errors, issues, potential problems |
extract_structure | List functions, classes, schema, headings |
security_audit | Find vulnerabilities and security issues |
answer: | Answer a custom question about the content |
rlm_execFor deterministic pattern matching and data extraction, use rlm_exec to run Python code directly against a loaded context. This is closer to the paper's REPL approach and provides full control over analysis logic.
Tool: rlm_exec
Purpose: Execute arbitrary Python code against a loaded context in a sandboxed subprocess.
Parameters:
code (required): Python code to execute. Set the result variable to capture output.context_name (required): Name of a previously loaded context.timeout (optional, default 30): Maximum execution time in seconds.Features:
context variablere, json, collectionsExample — Finding patterns in a loaded context:
# After loading a context
rlm_exec( code=""" import re amounts = re.findall(r'\$[\d,]+', context) result = {'count': len(amounts), 'sample': amounts[:5]} """, context_name="bill" )
Example Response:
{
"result": { "count": 1247, "sample": ["$500", "$1,000", "$250,000", "$100,000", "$50"] }, "stdout": "", "stderr": "", "return_code": 0, "timed_out": false }
Example — Extracting structured data:
rlm_exec(
code=""" import re import json
emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', context)
from collections import Counter domains = [e.split('@')[1] for e in emails] domain_counts = Counter(domains)
result = { 'total_emails': len(emails), 'unique_domains': len(domain_counts), 'top_domains': domain_counts.most_common(5) } """, context_name="dataset", timeout=60 )
When to use `rlm_exec` vs `rlm_sub_query`:
| Use Case | Tool | Why |
|---|---|---|
| Extract all dates, IDs, amounts | rlm_exec | Regex is deterministic and fast |
| Find security vulnerabilities | rlm_sub_query | Requires reasoning and context |
| Parse JSON/XML structure | rlm_exec | Standard libraries work perfectly |
| Summarize themes or tone | rlm_sub_query | Natural language understanding needed |
| Count word frequencies | rlm_exec | Simple computation, no AI needed |
| Answer "Why did X happen?" | rlm_sub_query | Requires inference and reasoning |
Tip: For large contexts, combine both — use rlm_exec to filter/extract, then rlm_sub_query for semantic analysis of filtered results.
For enhanced security, integrate code-firewall-mcp to filter dangerous code patterns before execution:
pip install massive-context-mcp[firewall]
When installed, rlm_exec can automatically check code against a blacklist of known dangerous patterns (e.g., os.system(), eval(), subprocess with shell=True). The firewall uses structural similarity matching — normalizing code to its skeleton and comparing against blacklisted patterns via embeddings.
How it works:
_, strings → "S")Configuration (environment variables):
RLM_FIREWALL_ENABLED=true — Enable firewall checks (auto-enabled when package installed)RLM_FIREWALL_MODE=warn|block — Warn or block on matches (default: warn)Example blocked patterns:
os.system(user_input) — Command injectioneval(untrusted_data) — Code injectionsubprocess.Popen(..., shell=True) — Shell injectionUse rlm_firewall_status to check firewall availability and configuration.
RLM automatically detects and uses the best available provider:
| Provider | Default Model | Cost | Use Case |
|---|---|---|---|
auto | (best available) | $0 or ~$0.80/1M | Default — prefers Ollama if available |
ollama | gemma3:12b | $0 | Local inference, requires Ollama |
claude-sdk | claude-haiku-4-5 | ~$0.80/1M input | Cloud inference, always available |
When you use provider="auto" (the default), RLM:
OLLAMA_URL (default: http://localhost:11434)The status is cached for 60 seconds to avoid repeated network checks.
Use rlm_ollama_status to see what's available:
rlm_ollama_status()
Response when Ollama is ready:
{
"running": true, "models": ["gemma3:12b", "llama3:8b"], "default_model_available": true, "best_provider": "ollama", "recommendation": "Ollama is ready! Sub-queries will use free local inference by default." }
Response when Ollama is not available:
{
"running": false, "error": "connection_refused", "best_provider": "claude-sdk", "recommendation": "Ollama not available. Sub-queries will use Claude API. To enable free local inference, install Ollama and run: ollama serve"
只显示了开头部分;其余内容请在仓库中阅读