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.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
RLM_DATA_DIR, OLLAMA_URLต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
claude mcp add massive-context --env RLM_DATA_DIR='ใส่ค่าของคุณ' --env OLLAMA_URL='ใส่ค่าของคุณ' -- uvx massive-context-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"massive-context": {
"command": "uvx",
"args": [
"massive-context-mcp"
],
"env": {
"RLM_DATA_DIR": "ใส่ค่าของคุณ",
"OLLAMA_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"massive-context": {
"type": "stdio",
"command": "uvx",
"args": [
"massive-context-mcp"
],
"env": {
"RLM_DATA_DIR": "ใส่ค่าของคุณ",
"OLLAMA_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
RLM_DATA_DIR envOLLAMA_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub egoughnour ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (3.0.1) เข้า registry 10 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv), MCPB ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Aiterm MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
Persistent terminals and one launcher for Claude, Codex, Grok, Cursor, and Antigravity harnesses.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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"
ตัดมาแค่ช่วงต้น อ่านต่อใน repo