Change feed
get_changesList notes created, modified, moved, or deleted in an Obsidian vault since a cursor, returning a next_since cursor to continue without gaps or duplicates.
Instructions
List what changed in your vault after a cursor: one line per note created, modified, moved or deleted, oldest first.
`since` is either the `next_since` cursor a previous call returned
(`ev:<number>`, exclusive and exact) or a UTC date/datetime
(`YYYY-MM-DD`, or ISO 8601 with `Z`/`±HH:MM`). A date or datetime *starts*
a feed and is approximate; `next_since` *continues* one without losing or
repeating an event. Store `next_since` (it is in the header and the last
line) in your own notes and pass it next session. A cursor means
something only for your own vault; one above this vault's last event is
refused (`invalid_argument`).
Each line: `- ev:<n> <UTC time> <kind> "<path>"` (a move shows
`"<from>" -> "<to>"`; paths are JSON-quoted, so a newline in a name is
`
), then reason=…where it applies, then who:by api_key ""
via orby oauth "" via , marked (you)when it was your own credential, orby human/syncfor anything the index discovered — edits outside MCP (Obsidian, a sync client, git, a shell) are human/sync. createdmeans first seen at this path: a new note, one half of a rename that could not be paired, or a note that became indexable. deletedalways carriesreason=: removed(the file is gone), not_indexable(still on disk but cannot be indexed) orquarantined`.
Two meta lines are always shown, whatever the filters: `gap` (events not
itemised, with a count) and `reset` (the index was rebuilt from empty).
After either, resync with `get_recent(order_by="content_changed",
since=…)`. `history_truncated: true` in the header means events older than
the retained history (default 90 days) were removed.
Args:
since: A `next_since` cursor (`ev:<n>`) or a UTC date/datetime.
folder: Only events whose path or source path is under this prefix (a
move out of the folder counts).
kinds: Subset of `created`, `modified`, `moved`, `deleted`.
by: `any` (default); `me` (your exact credential — the same API key,
or the same OAuth grant across token refreshes); `agents` (any MCP
caller of this vault); `human` (`human/sync`, discovered by the index).
limit: Events per page (1–500, default 50). A full page says
`more: true`; pass its `next_since` to continue.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | any | |
| kinds | No | ||
| limit | No | ||
| since | Yes | ||
| folder | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |