You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Returns the raw markdown of a note. The identifier is resolved through a
39
39
cascade: direct permalink lookup, then exact title match, then full-text
40
-
search. If nothing matches exactly, read-note returns guidance text instead
41
-
of an error: a ranked list of related notes, each with a copy-pasteable
40
+
search. If nothing matches exactly, MCP text mode returns guidance:
41
+
a ranked list of related notes, each with a copy-pasteable
42
42
`read_note()` call, plus suggested `search_notes()` and `write_note()` next
43
-
steps. A miss is a navigable dead end, not an exception.
43
+
steps. JSON mode returns null note fields plus `error: "NOTE_NOT_FOUND"`,
44
+
a message naming the identifier, and `related_results` when available.
45
+
The CLI exits with status 1 for a missing note in every output mode, retaining
46
+
suggestions in JSON, plain, and Rich output. An existing empty note still succeeds.
44
47
45
48
Accepted identifier forms (all verified):
46
49
@@ -56,7 +59,7 @@ Accepted identifier forms (all verified):
56
59
-**project_id** (string | null, optional, default: None) — Project external_id (UUID). Prefer this over `project` when known — it routes to the exact project regardless of name collisions across cloud workspaces. Takes precedence over `project`. Get from list_memory_projects().
57
60
-**page** (integer, optional, default: 1) — Page of fallback-search results to use when the identifier does not resolve to a note directly (default: 1). A direct or exact-title match returns the note content — page/page_size never chunk the note itself, and the title-match lookup pages through fixed-size pages of title results until an exact match is found or results are exhausted, regardless of page or page_size. Aliases: page_number.
58
61
-**page_size** (integer, optional, default: 10) — Number of fallback-search results per page (default: 10). When no match is found, this caps how many related-note suggestions are listed. Aliases: limit, per_page.
59
-
-**output_format** (string, optional, default: "text") — "text" returns markdown content or guidance text. "json" returns a structured object with title/permalink/file_path/content/frontmatter.
62
+
-**output_format** (string, optional, default: "text") — "text" returns markdown content or guidance text. "json" returns a structured object with title/permalink/file_path/content/frontmatter. Unresolved notes carry error="NOTE_NOT_FOUND" and a message, with related_results when suggestions are available.
60
63
-**include_frontmatter** (boolean, optional, default: False) — For unsliced JSON reads, include opening YAML in content; parsed frontmatter is returned either way. Explicit line ranges are never stripped. CLI: --frontmatter (--include-frontmatter is a deprecated alias).
61
64
-**start_line** (integer | null, optional, default: None) — First document line to read (1-based, inclusive). Defaults to 1 when only end_line is given. Line scans count the full Markdown, including frontmatter, matching cat's default line coordinates.
62
65
-**end_line** (integer | null, optional, default: None) — Last document line to read (inclusive); omitted means EOF. Out-of-file ranges return empty content; invalid/reversed ranges fail. With either bound, text output is numbered and JSON carries coordinates, has_more, and next_start_line/next_end_line. include_frontmatter does not strip an explicitly addressed range. Edits between calls may shift lines.
0 commit comments