Settings
A configured repository has a .vault/ folder at its root:
.vault/
settings.jsonc every setting, in one file
instructions.md what the assistant should know about this repository
types/<name>.md one file per note type
tools/<name>.md one file per special tool
Settings are data, prose is Markdown. The server alone reads .vault/: no
tool reads or writes it, and the admin keeps it by hand, like any other
file in the repository.
settings.jsonc
JSON with comments. Acme’s projects repository:
{
"format": 3,
"role": "root",
"name": "projects",
"prompts": [],
"resources": [],
// One line for every reader's tool list, at most 120 characters.
"summary": "One folder per project: plans, decisions and meeting notes.",
// The folders that belong to the vault; "/" opens the whole repository.
"folders": ["active/", "archive/"],
// Where a note names its type, and where it sums itself up.
"typeField": "type",
"summaryField": "summary",
// A note without a type: a "hint" or an "error".
"untyped": "hint"
}
| Key | What it says | Default |
|---|---|---|
format, role, name |
The format (3), the repository’s role (root), and its name. |
required |
prompts, resources |
MCP prompts and resources the repository offers. | required, may be empty |
summary |
The repository’s one line in the tool list. Only the admin writes it: it reaches every reader. | none |
folders |
The folders the tools work in, relative to the root. | ["/"] |
typeField |
The frontmatter field that holds a note’s type. | type |
summaryField |
The frontmatter field that sums a note or a folder up. | summary |
untyped |
How a note without a type is reported: hint or error. |
hint |
frontmatterSchema |
How a note that breaks its type’s schema is reported: hint or warning. |
hint |
exempt |
Paths no type rule applies to, such as templates. | [] |
defaultType |
The type create_note uses when a call names none. |
none |
order |
The order of the repository’s special tools in the list. | by name |
overview |
Which frontmatter field is a note’s topic, and which fields list_notes shows with each note. |
none |
instructions.md
Plain Markdown, sent with initialize to everyone who can read the
repository, under a heading with its name. Keep it short: every reader’s
assistant gets it at the start of every chat. Acme’s projects says:
Every decision names who made it and when.