MCP tools
On S3, a conditional write_file sends its condition with the PUT; see Storage.
| Tool | Cost | What it does |
|---|---|---|
search |
cheap | Full-text and, when on, meaning search over the index. Filters: folder, status, tag, kind, area, path_prefix, since, include_archive, include_superseded, limit. |
context |
cheap | The session-start bundle for a path and repo; format: "json" answers it as data. |
backlog |
cheap | The backlog by priority then age, filtered by area and priority. |
list_files |
cheap | Paths only. |
whoami |
cheap | The account a connection signs in as and whether it may write. |
read_file |
moderate | One note, prefixed with etag: <version>. A superseded note carries a warning callout. |
lint |
moderate | Reads every note and reports drift. |
write_file |
write | Validates against the schema and refuses the write if it does not hold. Stamps updated, fills date. expected_etag makes the write conditional; "*" creates a note that must not exist yet. Only .md notes outside dot-folders are written. |
append_file |
write | Appends and bumps updated; the note must exist and still satisfy the schema. |
set_status |
write | Changes a note's status, with priority and source for the backlog. |
close |
write | Finishes a note and moves it into the archive. |
backlog_add |
write | Files a backlog note. |
log_append |
write | One dated line in the repo log, with the commits and the branch. |
move_file |
write | Moves or renames a note; it must satisfy the schema at the destination. |
delete_file |
write | Deletes for good. Prefer close. |
init |
write | Sets up a vault without a schema: the schema of the preset it is given and the Bases views. On a vault with a schema it only writes the missing views. |
obsidian_access |
write | Server only. Mints the WebDAV password for Obsidian's Remotely Save and shows it once. |
The init tool sets up only a vault without a schema, so an MCP client cannot change the rules that check its own writes.
A server also serves claim, release, snapshot, changelog, lint_and_park and view to a machine signed in with login, for the task, log and snapshot commands, changelog, lint --write --park-stale and the terminal output of the command line that run through it. Connectors and keys made on a vault's page never see them.
Over HTTP, a connection carries vault:read or vault:read vault:write. A write tool called on a read-only connection fails with an error saying so, rather than half-writing.
Lifecycle explains how close, set_status, backlog_add and log_append work together.