rune-mcp v0.1.0
rune-mcp is a session-local MCP server that gives agent hosts (Claude Code, Codex, etc.) access to Rune's encrypted organizational memory. The agent host spawns one instance per session over stdio; the server runs the full embedding → AES encryption → enVector storage / FHE search path, while delegating key management and decryption to Vault over gRPC.
This is the first pre-release — a Go port of the agent-delegated path of Python rune v0.3.x.
Highlights
- 9 MCP tools for the full memory lifecycle:
activate·capture·batch_capture·recall·capture_history·configure·diagnostics·vault_status·reload_pipelines - Encrypted by construction. Content is embedded and AES-encrypted before it leaves the process; plaintext is never persisted. Key custody and FHE decryption stay in Vault.
- Lifecycle state machine —
starting → waiting_for_vault → active ↔ dormant. Until boot completes, write tools are rejected withPIPELINE_NOT_READYand only read-only tools run, in a degraded mode. - Layered architecture with a strict one-way dependency direction (
mcp → service → {policy, adapters, lifecycle, obs} → domain). Pure policy logic (novelty, rerank, query shaping, PII redaction) is isolated from external I/O. - Structured observability —
slogwith per-request IDs and sensitive-data redaction baked into the logging path.
Notable fixes in this release
activatenow clears theuser_deactivatedmarker so/rune:activatereliably resumes a dormant session.batch_capturerejects contentless items instead of fabricating placeholder entries.recalldistinguishes a top-k limit from generic invalid input, returning clearer errors.capture/batch_capturetool schemas now document the expected extraction shape.SearchByIDbase64-encodes the score blob, fixing recall by ID.
Install / run
go build -o rune-mcp ./cmd/rune-mcp
./rune-mcp --versionAs an MCP server it is normally launched over stdio by the agent host rather than run directly.
Requirements
- A reachable Vault instance (gRPC) for key management and FHE decryption
- enVector storage backend
runedshared daemon runtime
What's Changed
- feat: add version flag by @esifea in #3
- feat(tool): add
activateandconfiguretool by @esifea in #1 - feat(spawn): add runed spawner by @esifea in #2
- ci: pin linux runners to ubuntu-22.04 and name assets by build OS by @jh-lee-cryptolab in #5
- feat(embedder): map runed STATUS_IDLE to IDLE and treat as ready by @couragehong in #4
- dropped commit by @couragehong in #6
- temporary readme by @couragehong in #7
- fix(service): reject contentless batch_capture items instead of fabricating a placeholder by @jh-lee-cryptolab in #8
- fix(recall): distinguish top-k limit from generic invalid input by @jh-lee-cryptolab in #9
- fix(search): base64-encode score blob in SearchByID by @couragehong in #10
- chore: gate delete_capture tool registration (hidden this release) by @couragehong in #11
- fix(activate): clear user_deactivated marker so /rune:activate resumes by @jh-lee-cryptolab in #12
- Document capture/batch_capture extraction shape in tool schema by @jh-lee-cryptolab in #13
- Hotfix for internal go.mod dependency by @jh-lee-cryptolab in #14
New Contributors
- @esifea made their first contribution in #3
- @jh-lee-cryptolab made their first contribution in #5
- @couragehong made their first contribution in #4
Full Changelog: https://github.com/CryptoLabInc/rune-mcp/commits/v0.1.0
What's Changed
- feat: add version flag by @esifea in #3
- feat(tool): add
activateandconfiguretool by @esifea in #1 - feat(spawn): add runed spawner by @esifea in #2
- ci: pin linux runners to ubuntu-22.04 and name assets by build OS by @jh-lee-cryptolab in #5
- feat(embedder): map runed STATUS_IDLE to IDLE and treat as ready by @couragehong in #4
- dropped commit by @couragehong in #6
- temporary readme by @couragehong in #7
- fix(service): reject contentless batch_capture items instead of fabricating a placeholder by @jh-lee-cryptolab in #8
- fix(recall): distinguish top-k limit from generic invalid input by @jh-lee-cryptolab in #9
- fix(search): base64-encode score blob in SearchByID by @couragehong in #10
- chore: gate delete_capture tool registration (hidden this release) by @couragehong in #11
- fix(activate): clear user_deactivated marker so /rune:activate resumes by @jh-lee-cryptolab in #12
- Document capture/batch_capture extraction shape in tool schema by @jh-lee-cryptolab in #13
- Hotfix for internal go.mod dependency by @jh-lee-cryptolab in #14
New Contributors
- @esifea made their first contribution in #3
- @jh-lee-cryptolab made their first contribution in #5
- @couragehong made their first contribution in #4
Full Changelog: https://github.com/CryptoLabInc/rune-mcp/commits/v0.1.0