muninn-mcp
Provides read-only recall of memories stored in Turso, with server-side BM25 ranking, recency decay, and FTS escaping for querying Muninn's memory database.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@muninn-mcprecall memories about the MCP migration plan"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
muninn-mcp
Remote MCP server for Muninn's memory. Read-only. Stage 1.
Green half of the migration in
muninn-utilities/docs/mcp-migration.md ยง5.
Blue โ the Python skill talking to Turso directly โ stays installed and functional
throughout. Data is single-homed; blue-green applies to the access path, not
the stack, because a memory database cannot be forked and merged: supersede
chains, refs provenance and is_superseded flags encode order.
Status
Stage | ||
0 | write provenance ( | โ shipped, muninn-utilities #98 |
1 | green read-only + parity harness | ๐จ this repo โ gate at 58/64, 0 regressions |
2 | reads promoted to production | |
3 | writes, shadowed | |
4 | cutover | |
5 | collapse the double implementation |
Five tools, all read-only. Write tools do not exist here โ not disabled, absent โ and must not appear until the parity harness is green on the production corpus.
Tool | |
| search memories by text and tags |
| one memory by id, its reference chain, or a decision's alternatives |
| the profile / ops / journal config store |
| the deferred reference, for clients that don't read resources |
| the composed boot payload |
Plus resources: muninn://reference/{recall,types,vocabulary},
muninn://utilities and muninn://utilities/{name} (17 pages), and
muninn://boot. ยง8's progressive disclosure โ ~30KB of reference is addressable
without any of it entering a tool schema.
Related MCP server: Memlord
Layout
Same shape as sage's mcp/, deliberately โ
one architecture across sage-mcp, muninn-mcp and later muninnd.
src/turso.tsโ retrieval layer. Ported fromremembering/scripts/turso.py.src/expansion.tsโ blue's multi-stage expansion, the layer above the SQL.src/queries.tsโ the by-id and config reads.src/boot.tsโ_format_boot_output, byte-equal against blue.src/tools.tsโ tool bodies and output formatting.src/docs.ts+src/docs-generated.tsโ the ยง8 registry. Generated byscripts/build-docs.mjsfrom muninn-utilities; runnpm run build:docs.src/resources.tsโ both doors onto that registry, plusmuninn://boot.src/server.tsโbuildServer(): registration only, Zod schemas.src/index.tsโ bearer-token Worker entry, and the shared dispatch module.src/mcp-oauth.tsโ the OAuth entry claude.ai connectors need.wranglermain.harness/โ the blue-vs-green parity gate. Seeharness/README.md.
Docs: deploying.md to get it running,
operating.md to run the gate and read its verdicts.
The gate
ยง5 is explicit that the harness, not the Worker, is Stage 1's deliverable. It
lives in harness/: 64 frozen recall shapes run through blue-Python and
green-TypeScript against the same database, normalized to id order and
diffed.
export TURSO_URL=... TURSO_TOKEN=... # both sides read these two names
npm run harness # capture blue, capture green, diffId order, not row contents: access_count and last_accessed are written by
the act of reading, and composite_score embeds julianday('now'), so neither
is comparable across two captures. Order is stable under both and is what ยง5
actually asks for.
No credentials to hand? npm run harness:fts verifies the FTS vectors, and both
capture scripts take --dry-run.
Parity, not unit tests
src/fts-golden.json was generated by running the live Python
(_escape_fts5_server) over 33 inputs. Those are blue's actual outputs, frozen โ
not hand-written expectations. Regenerate them from Python and any divergence
fails CI โ npm run harness:fts is the regenerator, and it needs no credentials.
That file matters more than it looks. FTS escaping is the one place where a difference between blue and green changes which memories come back instead of failing loudly, which is why the migration doc calls it the highest-value test of the whole port.
The ranking itself is server-side SQL in both worlds โ BM25, recency decay,
priority and confidence are computed by Turso, not by application code. turso.ts
transcribes SQL strings; it does not reimplement retrieval. That is what keeps the
port tractable.
Protocol
@modelcontextprotocol/server v2, serving the 2026-07-28 revision and the
2025-era handshake from one route and one factory. tools/list carries a public
cache hint (SEP-2549); nothing else may, since recall results are private memory.
Develop
npm install
npm test # 620 assertions across 7 suites
npx tsc --noEmit # typecheck
npm run dev # local worker
npm run build:docs # regenerate the muninn:// resource content
npm run harness # the blue-vs-green gate (needs live credentials)
npm run harness:selftest # prove the gate still refuses a real reorderingPoint TURSO_URL at a branch database for Stage 1:
turso db create muninn-green --from-db <production>Full deployment walkthrough โ KV namespace, secrets, the claude.ai connector, and
what the design concentrates in one place โ is in docs/deploying.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA simple MCP server that recalls and saves memories from and to Apple Notes.Last updated212MIT
- AlicenseAqualityAmaintenanceSelf-hosted MCP memory server for personal use and teamsLast updated1028AGPL 3.0
- Alicense-qualityBmaintenanceA local MCP server that provides a sovereign memory substrate for LLMs, enabling capture, recall, explanation, and anticipation of conversation turns with bi-temporal events and a strict read-only query surface.Last updatedApache 2.0
- Alicense-qualityAmaintenanceMCP server exposing memory search, index, and stats tools for agents, with honesty guards to prevent re-litigation of settled decisions.Last updated2MIT
Related MCP Connectors
Cloud-hosted MCP server for durable AI memory
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/oaustegard/muninn-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server