Vault over MCP

Read, search and edit the environment's knowledge Vault from any MCP client: four tools, one revision rule.

The Vault is part of the default connection, so these four tools work without any ?tools= selection.

ToolDoes
browse_vaultList or search documents. query, pathPrefix, cursor, limit.
read_vault_documentsRead up to 10 documents. Returns the revision an edit will need.
create_vaultBuild the environment's first Vault from a public website URL.
apply_vault_changesCreate, update, move or delete up to 20 documents, atomically.

The Read-then-write Rule

Every update operation must carry the revision returned by read_vault_documents. If the document changed since you read it, the whole call is rejected and nothing is partly applied.

read_vault_documents {
  "documents": [{ "path": "brand/voice.md" }]
}
→ { "path": "brand/voice.md", "revision": "r_8f21…", "content": "# How we write\n…" }

apply_vault_changes {
  "commitMessage": "Ban 'seamless'",
  "operations": [{
    "type": "update",
    "path": "brand/voice.md",
    "revision": "r_8f21…",
    "content": "# How we write\n…\nseamless is banned.\n"
  }]
}

Reading Less

browse_vault returns paths, titles and body snippets, enough to decide what is relevant. To keep context small:

Scope by prefix

browse_vault { "pathPrefix": "competitors/" } rather than listing everything. This is what folder structure is for.

Read the two or three that matter

It takes up to 10, but 10 long documents is usually more context than the task needs.

Use offset and maxChars on long documents

Both are per-document, so a 6,000-word file can be read in the region you care about.

Creating the First Vault

create_vault takes one websiteUrl and builds the environment's first Vault from it: Surface crawls the public site and writes a first pass of what you do, who it is for and how you talk, for you to correct. See getting docs in.

Batching Edits

apply_vault_changes is transactional across up to 20 operations, so a restructure is one call rather than twenty:

apply_vault_changes {
  "commitMessage": "Split the brand book",
  "operations": [
    { "type": "move",   "from": "brand-book.md", "to": "brand/voice.md", "revision": "r_1…" },
    { "type": "create", "path": "brand/boilerplate.md", "content": "…" },
    { "type": "delete", "path": "old/legacy-tone.md", "revision": "r_9…" }
  ]
}

Write a real commitMessage.

A read-only connection (?readonly=1) exposes browse_vault and read_vault_documents only. That is how you let an agent read your positioning without editing it.

Vault overview · Tool reference · Tool bundles

On this page