The Muninn tool surface
Muninn speaks MCP, so a model connected to it gets 70 tools for writing, reading and organising memory. This page is that surface, in full and in the open, so you can read what it does before you connect anything. Every word below is generated from the running source at build time — nothing here is a second telling that can drift away from what your client actually receives.
Memory — 14 tools
Writing, reading, searching and tagging what Muninn remembers. The core of the system: everything else is built on these.
-
muninn_memory_add
Store a new memory with text content and tags.
-
muninn_memory_anchor_replace
Replace the span between beginAnchor and endAnchor (inclusive) with newText.
-
muninn_memory_append
Append text to the END of a memory's body.
-
muninn_memory_delete
Permanently delete a memory by ID from all storage layers.
-
muninn_memory_get
Retrieve a single memory by its ID.
-
muninn_memory_list
List all memories for the current user with optional pagination.
-
muninn_memory_list_by_tag
Find memories by exact tag match using the D1 tag index.
-
muninn_memory_list_tags
List every distinct tag for the current user with how many memories carry it, most-used first.
-
muninn_memory_query
Query memories with composable filters: fetch by specific IDs, OR-tag match, AND-tag match, and tag exclusion.
-
muninn_memory_search
Semantically search memories using natural language.
-
muninn_memory_search_tags
Find memories by PARTIAL tag match — each pattern matches any tag CONTAINING it (substring, case-insensitive).
-
muninn_memory_tag
Add and/or remove tags on a memory WITHOUT touching its text.
-
muninn_memory_tag_many
Apply tag adds and/or removes across MANY memories in one call.
-
muninn_memory_update
Update an existing memory's text, tags, decay score, occurredAt, or project.
Artifacts — 7 tools
Output a model generated — a document, a table, a diagram, a page — stored so it outlives the session that made it, and optionally published as a link anyone can open.
-
muninn_artifact_add
Store a text-based artifact you generated — markdown, plain text, csv, json, code, a mermaid diagram, svg, or an HTML page — so it outlives this session and can be retrieved by any model or from the web app.
-
muninn_artifact_get
Retrieve a stored artifact by ID — returns its full source plus format, title, provenance, and whether it is currently shared publicly (published + publicUrl), so you can continue working on something a previous session (or a different mode
-
muninn_artifact_list
List stored artifacts, newest first, optionally narrowed to one format.
-
muninn_artifact_name
Give a published artifact a readable address under the user's handle, rename it, or remove the name — use when the user says name this page, give it a nicer url, rename that link, change the address, or make the link readable.
-
muninn_artifact_password
Set, change or remove the password a reader must type to open a published artifact — use when the user says password protect this, put a password on that link, lock this page, change the password, or remove the password.
-
muninn_artifact_publish
Share a stored artifact publicly and get back a link anyone can open — use when the user says publish this, share this, make this public, give me a link to send someone, put this on the web, or asks for a URL they can paste into a chat or a
-
muninn_artifact_unpublish
Revoke an artifact's public link — use when the user says unpublish, unshare, make this private again, take it down, or stop sharing that link.
Bundles — 17 tools
Structured collections: ordered folders, decision records and the graph edges between them, assembled into a readable whole.
-
muninn_bundle_closure
Build the transitive closure of a bundle subtree: all (ancestor, descendant, depth) pairs reachable via 'contains' edges from rootKey.
-
muninn_bundle_create
Create a new OKF bundle (root node + backing metadata memory).
-
muninn_bundle_decision_add
Record a structural decision and attach it, in one call, as a reference leaf to the bundle node it governs — so the 'why this is here / why this title / why this order' renders WITH the thing and the next session can't miss it.
-
muninn_bundle_edge_add
Add an edge between two bundle nodes (parent→child).
-
muninn_bundle_edge_move
Move a child to a new position among its siblings using midpoint arithmetic — no sibling renumber ever.
-
muninn_bundle_edge_remove
Remove an edge between two bundle nodes.
-
muninn_bundle_export_okf
Export a bundle as an OKF v0.1 bundle object.
-
muninn_bundle_get
Retrieve a bundle by its root node key.
-
muninn_bundle_list
List bundle roots owned by the current user.
-
muninn_bundle_node_create
Create a bundle node that points at an EXISTING memory and attach it under a parent — in one call.
-
muninn_bundle_node_delete
Hard-delete a bundle node and ALL edges touching it (as parent and child, contains + reference).
-
muninn_bundle_node_repoint
Repoint an existing bundle node at a DIFFERENT backing memory WITHOUT delete+recreate.
-
muninn_bundle_node_reslug
Rename a bundle node's slug in place.
-
muninn_bundle_nodes_create
Bulk-attach MANY existing memories as children under ONE parent in a single call (vs one bundle_node_create per child).
-
muninn_bundle_nodes_remove
Detach multiple child nodes from a parent in one call.
-
muninn_bundle_update
Update a bundle root's title and/or description.
-
muninn_render_bundle
Render a bundle rooted at rootKey.
Tasks — 6 tools
Things with a due date. Muninn surfaces them as they ripen rather than waiting to be asked.
-
muninn_task_add
Create a task memory — a memory carrying task fields (entityType 'task').
-
muninn_task_complete
Mark a task complete.
-
muninn_task_delete
Permanently delete a task memory by ID from all storage layers.
-
muninn_task_list
List task memories, filtered by project/status/due window.
-
muninn_task_snooze
Snooze a task: hide it from reminders (session boot and per-call) until a given time.
-
muninn_task_update
Update a task's fields.
Tables — 4 tools
User-defined record types with typed fields, for the things that are genuinely rows rather than prose.
-
muninn_table_define
Declare a table (a kind of thing you want to track — Staff, Sources, Clients) and the fields its records share.
-
muninn_table_list
List every table you have declared, with its fields and how many records each holds.
-
muninn_table_record_add
Add a record to a table.
-
muninn_table_records_list
List the records in a table, in order.
Teams — 12 tools
Sharing memories by tag with other people, and the membership and invitation machinery that governs it.
-
muninn_team_add_member
Add a user to a team as a member.
-
muninn_team_create
Create a new team.
-
muninn_team_delete
Delete a team permanently.
-
muninn_team_invite
Invite someone to a team by email.
-
muninn_team_invite_accept
Accept a team invite using the token from your invite email.
-
muninn_team_invites_list
List pending invites for a team.
-
muninn_team_list
List all teams the current user belongs to.
-
muninn_team_remove_member
Remove a member from a team.
-
muninn_team_share_add
Share all memories with a given tag into a team.
-
muninn_team_share_remove
Revoke a share rule.
-
muninn_team_shares_list
List all active share rules for a team.
-
muninn_team_transfer_owner
Transfer team ownership to an existing member.
Skills — 5 tools
The tools that manage skills themselves — creating them, updating them, and telling a client when its installed copies have fallen behind.
-
muninn_skill_check
Check whether installed Muninn skills are up to date.
-
muninn_skill_create
Create a new Muninn-native skill from name, description, and body.
-
muninn_skill_delete
Permanently delete a Muninn-native skill by name.
-
muninn_skill_registry
Assemble and return the <available_skills> XML block from all skill-entry memories.
-
muninn_skill_update
Update an existing Muninn-native skill's body and/or description.
Mirror — 5 tools
Keeping a copy of what Muninn holds in a place you control: a GitHub repository, or a folder in your own Google Drive.
-
muninn_mirror_connect
Start the connection flow for a mirror provider.
-
muninn_mirror_designate
Designate (or un-designate) a bundle for mirroring to a provider.
-
muninn_mirror_push
Force an immediate mirror push of one bundle.
-
muninn_mirror_reconcile
Manually trigger a mirror reconciliation pass: enqueues every memory the mirror has never seen and re-marks any that changed since their last push, so both re-push on the next cron tick.
-
muninn_mirror_status
Report mirror connection state and push health per provider.
Tools are the API. The judgement about when to reach for one lives in skills — see what Muninn knows how to do. Or start with what it is for.