-
-
Notifications
You must be signed in to change notification settings - Fork 0
Comparison with MCP
Rune and MCP solve different problems.
Rune is not an alternative to MCP.
They are complementary.
MCP answers:
How do models access tools and resources?
Rune answers:
What does the repository mean?
Application
├── Claude Code
├── Cursor
├── Codex
└── Gemini CLI
│
├── MCP
│
└── Rune Context
│
Repository
MCP and Rune operate at different layers.
Model Context Protocol (MCP) provides a standard way for models to access:
tools
APIs
files
databases
external resources
Examples:
GitHub
PostgreSQL
Google Drive
Slack
MCP standardizes tool access.
Rune provides persistent repository understanding.
Examples:
dependency graphs
file summaries
feature maps
coding conventions
architectural relationships
Rune standardizes repository context.
MCP focuses on:
How do I access information?
Rune focuses on:
What does this information mean?
User asks:
Add Google OAuth.
Without Rune:
The agent may load:
auth.py
user.py
settings.py
jwt.py
middleware.py
session.py
...
and repeatedly consume thousands of tokens.
With Rune:
The context engine returns:
{
"related_files": [
"auth.py",
"user.py",
"settings.py"
]
}
The agent loads only those files.
Suppose an MCP server exposes:
GitHub repository
MCP enables access.
But access alone does not explain:
architecture
conventions
dependencies
ownership
Rune provides those layers.
Think of MCP as:
USB
and Rune as:
Filesystem
USB connects devices.
Filesystems organize meaning.
They solve different problems.
Provides:
tool discovery
capability negotiation
resource access
Examples:
GitHub
databases
cloud services
APIs
Provides:
repository summaries
dependency graphs
feature maps
ownership metadata
session context
No.
Rune works without MCP.
A coding agent can simply read:
.rune/
No servers are required.
No.
MCP can function without Rune.
Tool access and repository understanding are independent concerns.
Yes.
Claude Code
│
▼
MCP Server
│
GitHub Repository
│
.rune/
Workflow:
MCP retrieves files.
Rune provides understanding.
The agent performs reasoning.
Because Rune should remain:
simple
local-first
dependency-free
The interface is:
.rune/
not:
localhost:8080
Avoiding servers keeps Rune portable.
Yes.
An adapter could expose:
.rune/spec.md
.rune/graph.json
.rune/features/
through MCP.
Possible architecture:
Claude Code
│
▼
Rune MCP Adapter
│
.rune/
The adapter would live outside the Rune core.
Both Rune and MCP value:
interoperability
standardization
model independence
Neither should depend on a particular model provider.
| Aspect | MCP | Rune |
|---|---|---|
| Purpose | Tool access | Repository understanding |
| Main Question | How do I access information? | What does the repository mean? |
| Requires Server | Usually | No |
| Persistent State | No | Yes |
| Primary Format | Protocol messages | Files |
| Focus | Capabilities | Meaning |
| Human Readable | Not necessarily | Yes |
| Versioned in Git | No | Yes |
| Local-First | Optional | Yes |
| Offline by Default | Depends on implementation | Yes |
Agent
│
├── MCP
│ └── Access
│
└── Rune
└── Understanding
MCP provides connectivity.
Rune provides understanding.
The agent provides intelligence.
Access is not understanding.
Knowing where the files are does not mean knowing what they mean.
Git stores history.
Rune stores understanding.
.git/ explains what changed.
.rune/ explains what the codebase means.
Rune Context — Git for repository understanding.
Git for repository understanding.
- RCP-001 — Repository Format
- RCP-002 — Plugin Protocol
- RCP-003 — Graph Format
- RCP-004 — File Summary Format
- RCP-005 — Feature Map Format
- RCP-006 — Ownership Metadata
- RCP-007 — Session Memory
- RCP-008 — Context Retrieval API
- RCP-009 — Incremental Indexing
- RCP-010 — Multi-Agent Coordination
Git stores history.
Rune stores understanding.