hypervault-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| save_to_hypervaultA | Save an artifact (HTML page, React/JSX component, report, game, etc.) permanently to the user's HyperVault and get back a shareable URL. React/JSX content is detected automatically and wrapped into a working standalone page — you can pass a bare component and it will just work. |
| read_artifactA | Read the current source of one of the user's artifacts, so you can iterate on it. Returns the editable source: the raw React/JSX for a JSX artifact (what the page re-wraps and renders), or the stored HTML otherwise — not the wrapped page chrome. Pair it with write_artifact to make an edit: read, modify the returned content, then write it back. |
| write_artifactA | Write a new iteration of a mutable artifact — a git commit on the living document. The artifact is updated to the new content in place (its URL never
changes), and the write is kept as a version you can list with
artifact_history and revert to. Only artifacts saved with mutable=true
accept writes; an immutable artifact returns an error telling you to
re-create it as mutable. React/JSX is auto-detected and re-wrapped, exactly
like save_to_hypervault. Writing content identical to the current version
is a no-op (returns Typical loop: read_artifact(ref) → modify the returned content → write_artifact(ref, new_content, message="what changed"). |
| artifact_historyA | List the version history (git commits) of a mutable artifact, newest first. Each entry carries the commit message, its author (you'll appear as your API key prefix), the content fingerprint, and whether it's the current head. Use the returned version ids with read_artifact(ref, version=...) to inspect an old iteration, or write its content back to revert. |
| claim_vanity_subdomainA | Claim a vanity subdomain (e.g. nova.vault.cool) for the user's vault. The claim takes effect immediately — the address serves the user's public vault as soon as this returns. Names are lowercase letters, digits, and hyphens, 2–63 characters. Pro accounts can hold up to 10 subdomains, and every one of them serves the user's full vault. |
| connect_vault_itemsA | Connect two items already in the user's HyperVault. Items can be artifacts or memories, in any combination: artifact↔artifact, memory↔memory, or memory↔artifact (a semantic bridge between the wiki and the vault). Connections are bidirectional and appear as edges in the vault's graph view. Use list_my_vault_items or recall_from_memory first to find the right items. |
| list_my_vault_itemsA | List the artifacts already saved in the user's HyperVault. Useful before saving (to avoid duplicates), or to link new artifacts to existing ones via save_to_hypervault's connect_to parameter. Returns:
dict with |
| delete_vault_itemA | Permanently delete an artifact from the user's HyperVault. Deletion is immediate and irreversible: the share URL stops working and the item's graph connections are removed. Use list_my_vault_items first to find the right item, and only delete when the user clearly asks. |
| create_artifact_groupA | Save a multi-file "artifact group" — several .html/.css/.js/.jsx files that run together as one project — to the user's HyperVault. Unlike save_to_hypervault (a single file), a group bundles a whole
little project: markup, styles, and script(s) as separate files that
reference each other normally (e.g. |
| read_artifact_groupA | Read an artifact group's full file set and metadata, so you can iterate on it (e.g. before calling edit_artifact_group_item). |
| list_artifact_groupsA | List the artifact groups already saved in the user's HyperVault. Useful before creating a new one (to avoid duplicates) or to find a slug to pass to read_artifact_group / add_artifact_group_item / etc. Returns:
dict with |
| add_artifact_group_itemA | Add a new file to an existing artifact group. Fails if a file already exists at that path — use edit_artifact_group_item to change one, or read_artifact_group first if you're not sure what's already there. |
| edit_artifact_group_itemA | Replace the content of an existing file in an artifact group. Fails if no file exists at that path yet — use add_artifact_group_item to create one. This is also how you update index.html itself. |
| remove_artifact_group_itemA | Remove a file from an artifact group. The root index.html can't be removed this way — a group must always keep its entry point. Replace its content with edit_artifact_group_item instead, or delete the whole group with delete_artifact_group if you no longer need it. |
| delete_artifact_groupA | Permanently delete an artifact group from the user's HyperVault. Deletion is immediate and irreversible: the share/preview URL stops working and the group's graph connections are removed. Use list_artifact_groups first to find the right one, and only delete when the user clearly asks. |
| memorizeA | Store a chunk of context in the user's private memory wiki (Imaging V2). Call this whenever the user says "remember this", "memorize this", or shares a decision, preference, or insight worth keeping beyond this session. The backend auto-titles, auto-tags, and summarizes the chunk, then links it to related memories in the user's knowledge graph. Memories are private to the user — they never appear on public pages. |
| recallA | Search the user's private memory wiki with a natural-language query. Use this to answer questions like "what did I say about the Rust borrow checker last month?" — it combines full-text search with relevance scoring over the user's stored memories. The top matches include the exact stored content; the rest return summaries. Each result also lists the titles of linked memories, so you can follow the knowledge graph with further recall calls. |
| list_memoriesA | List everything in the user's private memory wiki, newest first. Useful for a broad look at what the user has memorized before deciding what to recall in detail — each entry carries the summary and tags, not the full content. |
| forget_memoryA | Delete one memory from the user's wiki (recorded as a delete commit). Only call this when the user explicitly asks to forget or delete a memory. The memory's knowledge-graph links are removed with it. The deletion is a commit, so the page stays in history and can be restored with mind_revert. |
| edit_memoryA | Edit a wiki page — the change lands as an update commit, never overwriting history (see memory_history for the page's revisions). Content edits re-derive the summary and merge in fresh auto-tags; new knowledge-graph links ride in the same commit. |
| memory_historyA | Every revision of one wiki page, newest first — its edit history. Each revision carries the commit that produced it: message, author (the user, or the agent key prefix that wrote it), branch, and time. Pass a revision_id to mind_revert to restore an old version. |
| mind_logA |
|
| mind_branchesA | List the branches of the user's mind, with live memory counts. Returns:
dict with |
| mind_branchA | Branch the user's ideas: fork the wiki so edits, new memories, and forgets there don't touch the source branch until merged. Branch names are lowercase letters, digits, and /_- (max 63 chars). |
| mind_diffA | Diff the user's mind between two refs — branch names, commit ids, or timestamps ("what changed in my memory since last week?"). Without memory_id: memories added/changed/removed (with content hunks) and links added/removed. With memory_id: just that page's diff. |
| mind_mergeA | Merge understanding: fold a branch into a target (default main) with a three-way merge from their common ancestor. Memories only one side touched merge automatically; links merge set-wise. If both sides changed the same memory the call fails with the conflict list (each has base/ours/theirs snapshots and hunks) — resolve by calling again with resolutions like [{"memory_id": "...", "resolution": "theirs"}] or [{"memory_id": "...", "resolution": {"title": "...", "content": "..."}}] for a hand-merged version. Relay conflicts to the user when the choice isn't obvious. |
| mind_revertA | Restore a memory to an earlier revision — including undeleting a forgotten one. History is never rewritten: the restore lands as a new commit. Find revision ids with memory_history. |
| mind_stateA | Time-travel: the whole wiki (memories + links) as it stood at a commit, branch head, or moment in time. |
| create_task_boardA | Create a universal task board — a shared, versioned task list that you and the user work from together. One call creates both halves: a JSON data artifact ( Use this at the start of any multi-step piece of work the user will want
visibility into. Seed it with the plan you already have — passing |
| list_task_boardsA | List the user's existing task boards, so you can join one instead of creating a duplicate. Call this at session start when the user refers to ongoing work ("keep going on the choir firmware") and you don't already have the project id. Returns:
dict with |
| tasklist_getA | Read a task board's full list — every task with its status, assignee, lock, and note thread. Read this at session start, and re-poll it at tool boundaries so the
user's steering from the board page (re-prioritizing, adding tasks,
unblocking you) is picked up while you work. Pass |
| tasklist_summaryA | Get a board's rollup — counts, progress, epics, and who's holding what — without pulling every task. Prefer this over tasklist_get whenever you're reporting status to the user or deciding what to pick up next; a large board's full list is token-heavy. |
| task_createA | Add a task to an existing board. Add work as you discover it — a task you create here shows up on the
user's board immediately, which is the point. Prefer seeding known work
through create_task_board's |
| task_updateA | Patch one task on a board — status, progress, a note, or any other field. Only the arguments you pass are changed. Push every meaningful change the moment it happens: the user's board polls
the same list, so a note or a progress bump is how they see you're alive
and steer you before you go too far. |
| task_claimA | Claim a task before you start it — a lock plus assignment, so multiple agents can share one board without colliding. Claiming sets the task to in_progress, assigns it to you, and takes a lock
(60 minutes by default, 24 h max; re-claiming your own task renews it).
Claim deliberately: prefer tasks already assigned to you or unassigned,
and never silently take another agent's live claim — a live foreign lock
fails with a 409 naming the holder. Use |
| task_completeA | Mark a task done: status done, progress 100, lock released, in one call. Complete a task as soon as it's actually finished — don't batch
completions at the end of a session; the user is watching the board fill
in. Pass a closing |
| extract_source_promptA | Extract the original source prompt from a HyperVault artifact URL. HyperVault artifacts can carry the prompt that generated them as a hidden |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_vault_help | How to use HyperVault from an agent. |
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/johnnyclem/hypervault-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server