obsidian-mcp-server 3.1.2 → 3.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -8
- package/changelog/3.1.x/3.1.3.md +23 -0
- package/dist/mcp-server/tools/definitions/_shared/schemas.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/_shared/schemas.js +4 -2
- package/dist/mcp-server/tools/definitions/_shared/schemas.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +68 -52
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-append-to-note.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-append-to-note.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/obsidian-append-to-note.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-delete-note.tool.d.ts +3 -3
- package/dist/mcp-server/tools/definitions/obsidian-delete-note.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-delete-note.tool.js +3 -3
- package/dist/mcp-server/tools/definitions/obsidian-delete-note.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-execute-command.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/obsidian-execute-command.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-get-note.tool.d.ts +11 -3
- package/dist/mcp-server/tools/definitions/obsidian-get-note.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-get-note.tool.js +60 -6
- package/dist/mcp-server/tools/definitions/obsidian-get-note.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-list-notes.tool.d.ts +2 -2
- package/dist/mcp-server/tools/definitions/obsidian-list-notes.tool.js +5 -5
- package/dist/mcp-server/tools/definitions/obsidian-list-notes.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-list-tags.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-list-tags.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-manage-frontmatter.tool.d.ts +3 -3
- package/dist/mcp-server/tools/definitions/obsidian-manage-frontmatter.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-manage-frontmatter.tool.js +5 -5
- package/dist/mcp-server/tools/definitions/obsidian-manage-frontmatter.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-manage-tags.tool.d.ts +3 -3
- package/dist/mcp-server/tools/definitions/obsidian-manage-tags.tool.js +4 -4
- package/dist/mcp-server/tools/definitions/obsidian-manage-tags.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-open-in-ui.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-open-in-ui.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-open-in-ui.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-patch-note.tool.d.ts +3 -3
- package/dist/mcp-server/tools/definitions/obsidian-patch-note.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-patch-note.tool.js +5 -5
- package/dist/mcp-server/tools/definitions/obsidian-patch-note.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-replace-in-note.tool.d.ts +4 -4
- package/dist/mcp-server/tools/definitions/obsidian-replace-in-note.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-replace-in-note.tool.js +5 -5
- package/dist/mcp-server/tools/definitions/obsidian-replace-in-note.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-search-notes.tool.d.ts +2 -2
- package/dist/mcp-server/tools/definitions/obsidian-search-notes.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-search-notes.tool.js +7 -12
- package/dist/mcp-server/tools/definitions/obsidian-search-notes.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-write-note.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/obsidian-write-note.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/obsidian-write-note.tool.js.map +1 -1
- package/package.json +11 -1
- package/server.json +3 -3
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](https://www.npmjs.com/package/obsidian-mcp-server) [](https://www.npmjs.com/package/obsidian-mcp-server) [](./CHANGELOG.md) [](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) [](https://modelcontextprotocol.io/)
|
|
11
11
|
|
|
12
12
|
[](./LICENSE) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
13
13
|
|
|
@@ -278,9 +278,11 @@ MCP_TRANSPORT_TYPE=http OBSIDIAN_API_KEY=... bun run start:http
|
|
|
278
278
|
| `MCP_HTTP_HOST` | Host for the HTTP server. | `127.0.0.1` |
|
|
279
279
|
| `MCP_HTTP_PORT` | Port for the HTTP server. | `3010` |
|
|
280
280
|
| `MCP_HTTP_ENDPOINT_PATH` | Endpoint path for the JSON-RPC handler. | `/mcp` |
|
|
281
|
+
| `MCP_PUBLIC_URL` | Public origin override for TLS-terminating reverse-proxy deployments (landing page, Server Card, RFC 9728 metadata). | unset |
|
|
281
282
|
| `MCP_AUTH_MODE` | Auth mode: `none`, `jwt`, or `oauth`. | `none` |
|
|
282
283
|
| `MCP_AUTH_SECRET_KEY` | **Required when `MCP_AUTH_MODE=jwt`.** ≥32-char shared secret used to verify incoming JWTs. | — |
|
|
283
284
|
| `MCP_LOG_LEVEL` | Log level (RFC 5424). | `info` |
|
|
285
|
+
| `LOGS_DIR` | Directory for log files (Node.js only). | `<project-root>/logs` |
|
|
284
286
|
| `OTEL_ENABLED` | Enable OpenTelemetry. | `false` |
|
|
285
287
|
|
|
286
288
|
See [`.env.example`](./.env.example) for the full list of optional overrides.
|
|
@@ -289,13 +291,6 @@ See [`.env.example`](./.env.example) for the full list of optional overrides.
|
|
|
289
291
|
|
|
290
292
|
### Local development
|
|
291
293
|
|
|
292
|
-
- **Hot-reload dev mode:**
|
|
293
|
-
|
|
294
|
-
```sh
|
|
295
|
-
bun run dev:stdio
|
|
296
|
-
bun run dev:http
|
|
297
|
-
```
|
|
298
|
-
|
|
299
294
|
- **Build and run the production version:**
|
|
300
295
|
|
|
301
296
|
```sh
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: obsidian_get_note grows an opt-in includeLinks flag that surfaces the note's outgoing wikilinks and markdown links; tool descriptions, schema defaults, and recovery hints tightened across the surface.
|
|
3
|
+
breaking: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 3.1.3 — 2026-05-04
|
|
7
|
+
|
|
8
|
+
## Added
|
|
9
|
+
|
|
10
|
+
- **`obsidian_get_note` — `includeLinks` flag.** With `format: "full"` and `includeLinks: true`, the response carries `outgoingLinks[]`: an array of `{ target, type: 'wikilink' | 'markdown' }` parsed from the note body. Captures `[[Target]]`, `[[Target|alias]]`, `[[Target#section]]`, `![[embed]]`, and `[text](path.md)`; filters external URIs (`http:`, `mailto:`, etc.). No existence check — this is the link graph as written. Pure regex over content already returned, zero extra HTTP. Default `false` keeps the response compact. Closes [#43](https://github.com/cyanheads/obsidian-mcp-server/issues/43).
|
|
11
|
+
- **`package.json` `funding` field** — GitHub Sponsors and Buy Me a Coffee links so the npm registry surfaces them on the package page.
|
|
12
|
+
|
|
13
|
+
## Changed
|
|
14
|
+
|
|
15
|
+
- **Tool descriptions tightened across the surface.** `obsidian_get_note`, `obsidian_search_notes`, `obsidian_list_notes`, `obsidian_patch_note`, `obsidian_replace_in_note`, `obsidian_write_note`, `obsidian_manage_frontmatter`, `obsidian_manage_tags`, `obsidian_append_to_note`, `obsidian_execute_command`, and `obsidian_list_tags` all received a leaner first-line summary and clearer per-field `.describe()` text. No behavior change — the tools do the same things, the LLM gets a sharper picture of what each one is for.
|
|
16
|
+
- **Schema defaults instead of optional+manual fallback.** `obsidian_list_notes.depth`, `obsidian_search_notes.contextLength`, and `obsidian_search_notes.maxMatchesPerHit` now use Zod `.default(...)` so the default appears in the published schema and the handler reads `input.field` directly.
|
|
17
|
+
- **Recovery hints simplified.** Removed the "check the server startup banner" hint from every `path_forbidden` recovery — the wire payload's `activeScope` is the source of truth. The `no_active_file` recovery now points the LLM at `obsidian_open_in_ui` instead of telling it to open a note manually. The `periodic_disabled` recovery no longer instructs the LLM to change Obsidian plugin settings (which it can't) — it just tells it to switch to a path target.
|
|
18
|
+
- **`SectionSchema.target` description** clarifies that block references are written without the leading caret (`2d9b4a`, not `^2d9b4a`) — matches the Local REST API plugin's expectation.
|
|
19
|
+
|
|
20
|
+
## Fixed
|
|
21
|
+
|
|
22
|
+
- **README env var table** documents `MCP_PUBLIC_URL` (TLS-terminating reverse-proxy origin override) and `LOGS_DIR` (Node.js log directory) — both supported by the framework but missing from the table.
|
|
23
|
+
- **README** drops the stale `bun run dev:stdio` / `bun run dev:http` instructions; those scripts were removed in 3.1.1 but the README still referenced them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/definitions/_shared/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,4EAA4E;AAC5E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;2BA4BvB,CAAC;AAEH,yCAAyC;AACzC,eAAO,MAAM,aAAa;;;;;;;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/definitions/_shared/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,4EAA4E;AAC5E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;2BA4BvB,CAAC;AAEH,yCAAyC;AACzC,eAAO,MAAM,aAAa;;;;;;;iBAUxB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;kBAiBlB,CAAC;AAEd,eAAO,MAAM,iBAAiB;;;GAK3B,CAAC;AAEJ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -37,11 +37,13 @@ export const TargetSchema = z.discriminatedUnion('type', [
|
|
|
37
37
|
]);
|
|
38
38
|
/** Sub-document target inside a note. */
|
|
39
39
|
export const SectionSchema = z.object({
|
|
40
|
-
type: z
|
|
40
|
+
type: z
|
|
41
|
+
.enum(['heading', 'block', 'frontmatter'])
|
|
42
|
+
.describe('Heading by name, block by reference, or frontmatter field by key.'),
|
|
41
43
|
target: z
|
|
42
44
|
.string()
|
|
43
45
|
.min(1)
|
|
44
|
-
.describe('Heading name (use "::" for nested headings), block reference (e.g. "2d9b4a"), or frontmatter field name.'),
|
|
46
|
+
.describe('Heading name (use "::" for nested headings), block reference without leading caret (e.g. "2d9b4a", not "^2d9b4a"), or frontmatter field name.'),
|
|
45
47
|
});
|
|
46
48
|
export const PatchOptionsSchema = z
|
|
47
49
|
.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/definitions/_shared/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACvD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACnE,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,kEAAkE,CAAC;KAChF,CAAC;SACD,QAAQ,CAAC,4CAA4C,CAAC;IACzD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACnF,CAAC;SACD,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC1F,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aAC3D,QAAQ,CAAC,4BAA4B,CAAC;QACzC,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,KAAK,CAAC,qBAAqB,CAAC;aAC5B,QAAQ,EAAE;aACV,QAAQ,CAAC,mDAAmD,CAAC;KACjE,CAAC;SACD,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC,CAAC;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/definitions/_shared/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACvD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACnE,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,kEAAkE,CAAC;KAChF,CAAC;SACD,QAAQ,CAAC,4CAA4C,CAAC;IACzD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACnF,CAAC;SACD,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC1F,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aAC3D,QAAQ,CAAC,4BAA4B,CAAC;QACzC,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,KAAK,CAAC,qBAAqB,CAAC;aAC5B,QAAQ,EAAE;aACV,QAAQ,CAAC,mDAAmD,CAAC;KACjE,CAAC;SACD,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC,CAAC;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;SACzC,QAAQ,CAAC,mEAAmE,CAAC;IAChF,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,+IAA+I,CAChJ;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,qBAAqB,EAAE,CAAC;SACrB,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,yEAAyE,CAAC;IACtF,uBAAuB,EAAE,CAAC;SACvB,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,wGAAwG,CACzG;IACH,oBAAoB,EAAE,CAAC;SACpB,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,wEAAwE,CAAC;CACtF,CAAC;KACD,QAAQ,EAAE,CAAC;AAEd,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KAC1B,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CACP,qPAAqP,CACtP,CAAC"}
|
|
@@ -39,6 +39,7 @@ export declare const readToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
39
39
|
}>;
|
|
40
40
|
target: import("zod").ZodString;
|
|
41
41
|
}, import("zod/v4/core").$strip>>;
|
|
42
|
+
includeLinks: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
42
43
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
43
44
|
result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
44
45
|
format: import("zod").ZodLiteral<"content">;
|
|
@@ -55,6 +56,13 @@ export declare const readToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
55
56
|
mtime: import("zod").ZodNumber;
|
|
56
57
|
size: import("zod").ZodNumber;
|
|
57
58
|
}, import("zod/v4/core").$strip>;
|
|
59
|
+
outgoingLinks: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
60
|
+
target: import("zod").ZodString;
|
|
61
|
+
type: import("zod").ZodEnum<{
|
|
62
|
+
markdown: "markdown";
|
|
63
|
+
wikilink: "wikilink";
|
|
64
|
+
}>;
|
|
65
|
+
}, import("zod/v4/core").$strip>>>;
|
|
58
66
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
59
67
|
format: import("zod").ZodLiteral<"document-map">;
|
|
60
68
|
path: import("zod").ZodString;
|
|
@@ -84,7 +92,7 @@ export declare const readToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
84
92
|
readonly reason: "path_forbidden";
|
|
85
93
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
86
94
|
readonly when: "The target path is outside OBSIDIAN_READ_PATHS (and OBSIDIAN_WRITE_PATHS, since write paths imply read access).";
|
|
87
|
-
readonly recovery: "Use a path inside the configured read scope. The error data echoes the active scope
|
|
95
|
+
readonly recovery: "Use a path inside the configured read scope. The error data echoes the active scope.";
|
|
88
96
|
}, {
|
|
89
97
|
readonly reason: "note_missing";
|
|
90
98
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -94,7 +102,7 @@ export declare const readToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
94
102
|
readonly reason: "no_active_file";
|
|
95
103
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
96
104
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
97
|
-
readonly recovery: "
|
|
105
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
98
106
|
}, {
|
|
99
107
|
readonly reason: "periodic_not_found";
|
|
100
108
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -104,12 +112,12 @@ export declare const readToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
104
112
|
readonly reason: "periodic_disabled";
|
|
105
113
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
106
114
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
107
|
-
readonly recovery: "
|
|
115
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
108
116
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
109
117
|
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
110
118
|
extension: import("zod").ZodOptional<import("zod").ZodString>;
|
|
111
119
|
nameRegex: import("zod").ZodOptional<import("zod").ZodString>;
|
|
112
|
-
depth: import("zod").
|
|
120
|
+
depth: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
113
121
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
114
122
|
path: import("zod").ZodString;
|
|
115
123
|
entries: import("zod").ZodArray<import("zod").ZodObject<{
|
|
@@ -139,7 +147,7 @@ export declare const readToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
139
147
|
readonly reason: "regex_invalid";
|
|
140
148
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
141
149
|
readonly when: "The supplied `nameRegex` is not a valid ECMAScript regex.";
|
|
142
|
-
readonly recovery: "
|
|
150
|
+
readonly recovery: "Use a valid ECMAScript regex (e.g. `^Project.*\\.md$`), or omit nameRegex to disable filtering.";
|
|
143
151
|
}, {
|
|
144
152
|
readonly reason: "path_forbidden";
|
|
145
153
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
@@ -167,7 +175,7 @@ export declare const readToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
167
175
|
readonly reason: "path_forbidden";
|
|
168
176
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
169
177
|
readonly when: "The target path is outside OBSIDIAN_READ_PATHS (and OBSIDIAN_WRITE_PATHS, since write paths imply read access).";
|
|
170
|
-
readonly recovery: "Use a path inside the configured read scope. The error data echoes the active scope
|
|
178
|
+
readonly recovery: "Use a path inside the configured read scope. The error data echoes the active scope.";
|
|
171
179
|
}, {
|
|
172
180
|
readonly reason: "note_missing";
|
|
173
181
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -181,9 +189,9 @@ export declare const readToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
181
189
|
}>;
|
|
182
190
|
query: import("zod").ZodOptional<import("zod").ZodString>;
|
|
183
191
|
logic: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
184
|
-
contextLength: import("zod").
|
|
192
|
+
contextLength: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
185
193
|
pathPrefix: import("zod").ZodOptional<import("zod").ZodString>;
|
|
186
|
-
maxMatchesPerHit: import("zod").
|
|
194
|
+
maxMatchesPerHit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
187
195
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
188
196
|
result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
189
197
|
mode: import("zod").ZodLiteral<"text">;
|
|
@@ -280,7 +288,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
280
288
|
readonly reason: "path_forbidden";
|
|
281
289
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
282
290
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
283
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
291
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
284
292
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
285
293
|
target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
286
294
|
type: import("zod").ZodLiteral<"path">;
|
|
@@ -305,7 +313,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
305
313
|
readonly reason: "path_forbidden";
|
|
306
314
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
307
315
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
308
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
316
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
309
317
|
}, {
|
|
310
318
|
readonly reason: "cancelled";
|
|
311
319
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InvalidRequest;
|
|
@@ -320,7 +328,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
320
328
|
readonly reason: "no_active_file";
|
|
321
329
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
322
330
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
323
|
-
readonly recovery: "
|
|
331
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
324
332
|
}, {
|
|
325
333
|
readonly reason: "periodic_not_found";
|
|
326
334
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -330,7 +338,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
330
338
|
readonly reason: "periodic_disabled";
|
|
331
339
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
332
340
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
333
|
-
readonly recovery: "
|
|
341
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
334
342
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
335
343
|
operation: import("zod").ZodEnum<{
|
|
336
344
|
set: "set";
|
|
@@ -377,7 +385,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
377
385
|
readonly reason: "path_forbidden";
|
|
378
386
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
379
387
|
readonly when: "`get` requires the path to be readable; `set`/`delete` require it to be inside OBSIDIAN_WRITE_PATHS, with OBSIDIAN_READ_ONLY=false.";
|
|
380
|
-
readonly recovery: "Use a path inside the configured scope
|
|
388
|
+
readonly recovery: "Use a path inside the configured scope. The error data echoes the active scope.";
|
|
381
389
|
}, {
|
|
382
390
|
readonly reason: "value_required";
|
|
383
391
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
@@ -392,7 +400,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
392
400
|
readonly reason: "no_active_file";
|
|
393
401
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
394
402
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
395
|
-
readonly recovery: "
|
|
403
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
396
404
|
}, {
|
|
397
405
|
readonly reason: "periodic_not_found";
|
|
398
406
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -402,7 +410,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
402
410
|
readonly reason: "periodic_disabled";
|
|
403
411
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
404
412
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
405
|
-
readonly recovery: "
|
|
413
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
406
414
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
407
415
|
target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
408
416
|
type: import("zod").ZodLiteral<"path">;
|
|
@@ -457,7 +465,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
457
465
|
readonly reason: "path_forbidden";
|
|
458
466
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
459
467
|
readonly when: "`list` requires the path to be readable; `add`/`remove` require it to be inside OBSIDIAN_WRITE_PATHS, with OBSIDIAN_READ_ONLY=false.";
|
|
460
|
-
readonly recovery: "Use a path inside the configured scope
|
|
468
|
+
readonly recovery: "Use a path inside the configured scope. The error data echoes the active scope.";
|
|
461
469
|
}, {
|
|
462
470
|
readonly reason: "tags_required";
|
|
463
471
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
@@ -472,7 +480,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
472
480
|
readonly reason: "no_active_file";
|
|
473
481
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
474
482
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
475
|
-
readonly recovery: "
|
|
483
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
476
484
|
}, {
|
|
477
485
|
readonly reason: "periodic_not_found";
|
|
478
486
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -482,7 +490,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
482
490
|
readonly reason: "periodic_disabled";
|
|
483
491
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
484
492
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
485
|
-
readonly recovery: "
|
|
493
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
486
494
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
487
495
|
target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
488
496
|
type: import("zod").ZodLiteral<"path">;
|
|
@@ -542,7 +550,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
542
550
|
readonly reason: "path_forbidden";
|
|
543
551
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
544
552
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
545
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
553
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
546
554
|
}, {
|
|
547
555
|
readonly reason: "note_missing";
|
|
548
556
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -552,7 +560,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
552
560
|
readonly reason: "no_active_file";
|
|
553
561
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
554
562
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
555
|
-
readonly recovery: "
|
|
563
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
556
564
|
}, {
|
|
557
565
|
readonly reason: "periodic_not_found";
|
|
558
566
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -562,7 +570,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
562
570
|
readonly reason: "periodic_disabled";
|
|
563
571
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
564
572
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
565
|
-
readonly recovery: "
|
|
573
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
566
574
|
}, {
|
|
567
575
|
readonly reason: "section_target_missing";
|
|
568
576
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
@@ -605,12 +613,12 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
605
613
|
readonly reason: "path_forbidden";
|
|
606
614
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
607
615
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes. (The pre-read also requires the path to be readable.)";
|
|
608
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
616
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
609
617
|
}, {
|
|
610
618
|
readonly reason: "regex_invalid";
|
|
611
619
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
612
620
|
readonly when: "A `useRegex: true` replacement supplied a `search` pattern that is not a valid ECMAScript regex.";
|
|
613
|
-
readonly recovery: "
|
|
621
|
+
readonly recovery: "Use a valid ECMAScript regex, or set useRegex to false to match `search` as a literal string.";
|
|
614
622
|
}, {
|
|
615
623
|
readonly reason: "note_missing";
|
|
616
624
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -620,7 +628,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
620
628
|
readonly reason: "no_active_file";
|
|
621
629
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
622
630
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
623
|
-
readonly recovery: "
|
|
631
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
624
632
|
}, {
|
|
625
633
|
readonly reason: "periodic_not_found";
|
|
626
634
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -630,7 +638,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
630
638
|
readonly reason: "periodic_disabled";
|
|
631
639
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
632
640
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
633
|
-
readonly recovery: "
|
|
641
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
634
642
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
635
643
|
target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
636
644
|
type: import("zod").ZodLiteral<"path">;
|
|
@@ -675,7 +683,7 @@ export declare const writeToolDefinitions: (import("@cyanheads/mcp-ts-core").Too
|
|
|
675
683
|
readonly reason: "path_forbidden";
|
|
676
684
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
677
685
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
678
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
686
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
679
687
|
}]>)[];
|
|
680
688
|
/** Combined base set — preserves the previous registration order. */
|
|
681
689
|
export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
@@ -716,7 +724,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
716
724
|
readonly reason: "path_forbidden";
|
|
717
725
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
718
726
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
719
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
727
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
720
728
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
721
729
|
target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
722
730
|
type: import("zod").ZodLiteral<"path">;
|
|
@@ -741,7 +749,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
741
749
|
readonly reason: "path_forbidden";
|
|
742
750
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
743
751
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
744
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
752
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
745
753
|
}, {
|
|
746
754
|
readonly reason: "cancelled";
|
|
747
755
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InvalidRequest;
|
|
@@ -756,7 +764,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
756
764
|
readonly reason: "no_active_file";
|
|
757
765
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
758
766
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
759
|
-
readonly recovery: "
|
|
767
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
760
768
|
}, {
|
|
761
769
|
readonly reason: "periodic_not_found";
|
|
762
770
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -766,7 +774,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
766
774
|
readonly reason: "periodic_disabled";
|
|
767
775
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
768
776
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
769
|
-
readonly recovery: "
|
|
777
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
770
778
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
771
779
|
format: import("zod").ZodEnum<{
|
|
772
780
|
content: "content";
|
|
@@ -798,6 +806,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
798
806
|
}>;
|
|
799
807
|
target: import("zod").ZodString;
|
|
800
808
|
}, import("zod/v4/core").$strip>>;
|
|
809
|
+
includeLinks: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
801
810
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
802
811
|
result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
803
812
|
format: import("zod").ZodLiteral<"content">;
|
|
@@ -814,6 +823,13 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
814
823
|
mtime: import("zod").ZodNumber;
|
|
815
824
|
size: import("zod").ZodNumber;
|
|
816
825
|
}, import("zod/v4/core").$strip>;
|
|
826
|
+
outgoingLinks: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
827
|
+
target: import("zod").ZodString;
|
|
828
|
+
type: import("zod").ZodEnum<{
|
|
829
|
+
markdown: "markdown";
|
|
830
|
+
wikilink: "wikilink";
|
|
831
|
+
}>;
|
|
832
|
+
}, import("zod/v4/core").$strip>>>;
|
|
817
833
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
818
834
|
format: import("zod").ZodLiteral<"document-map">;
|
|
819
835
|
path: import("zod").ZodString;
|
|
@@ -843,7 +859,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
843
859
|
readonly reason: "path_forbidden";
|
|
844
860
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
845
861
|
readonly when: "The target path is outside OBSIDIAN_READ_PATHS (and OBSIDIAN_WRITE_PATHS, since write paths imply read access).";
|
|
846
|
-
readonly recovery: "Use a path inside the configured read scope. The error data echoes the active scope
|
|
862
|
+
readonly recovery: "Use a path inside the configured read scope. The error data echoes the active scope.";
|
|
847
863
|
}, {
|
|
848
864
|
readonly reason: "note_missing";
|
|
849
865
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -853,7 +869,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
853
869
|
readonly reason: "no_active_file";
|
|
854
870
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
855
871
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
856
|
-
readonly recovery: "
|
|
872
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
857
873
|
}, {
|
|
858
874
|
readonly reason: "periodic_not_found";
|
|
859
875
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -863,12 +879,12 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
863
879
|
readonly reason: "periodic_disabled";
|
|
864
880
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
865
881
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
866
|
-
readonly recovery: "
|
|
882
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
867
883
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
868
884
|
path: import("zod").ZodOptional<import("zod").ZodString>;
|
|
869
885
|
extension: import("zod").ZodOptional<import("zod").ZodString>;
|
|
870
886
|
nameRegex: import("zod").ZodOptional<import("zod").ZodString>;
|
|
871
|
-
depth: import("zod").
|
|
887
|
+
depth: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
872
888
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
873
889
|
path: import("zod").ZodString;
|
|
874
890
|
entries: import("zod").ZodArray<import("zod").ZodObject<{
|
|
@@ -898,7 +914,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
898
914
|
readonly reason: "regex_invalid";
|
|
899
915
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
900
916
|
readonly when: "The supplied `nameRegex` is not a valid ECMAScript regex.";
|
|
901
|
-
readonly recovery: "
|
|
917
|
+
readonly recovery: "Use a valid ECMAScript regex (e.g. `^Project.*\\.md$`), or omit nameRegex to disable filtering.";
|
|
902
918
|
}, {
|
|
903
919
|
readonly reason: "path_forbidden";
|
|
904
920
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
@@ -960,7 +976,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
960
976
|
readonly reason: "path_forbidden";
|
|
961
977
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
962
978
|
readonly when: "`get` requires the path to be readable; `set`/`delete` require it to be inside OBSIDIAN_WRITE_PATHS, with OBSIDIAN_READ_ONLY=false.";
|
|
963
|
-
readonly recovery: "Use a path inside the configured scope
|
|
979
|
+
readonly recovery: "Use a path inside the configured scope. The error data echoes the active scope.";
|
|
964
980
|
}, {
|
|
965
981
|
readonly reason: "value_required";
|
|
966
982
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
@@ -975,7 +991,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
975
991
|
readonly reason: "no_active_file";
|
|
976
992
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
977
993
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
978
|
-
readonly recovery: "
|
|
994
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
979
995
|
}, {
|
|
980
996
|
readonly reason: "periodic_not_found";
|
|
981
997
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -985,7 +1001,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
985
1001
|
readonly reason: "periodic_disabled";
|
|
986
1002
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
987
1003
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
988
|
-
readonly recovery: "
|
|
1004
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
989
1005
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
990
1006
|
target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
991
1007
|
type: import("zod").ZodLiteral<"path">;
|
|
@@ -1040,7 +1056,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1040
1056
|
readonly reason: "path_forbidden";
|
|
1041
1057
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
1042
1058
|
readonly when: "`list` requires the path to be readable; `add`/`remove` require it to be inside OBSIDIAN_WRITE_PATHS, with OBSIDIAN_READ_ONLY=false.";
|
|
1043
|
-
readonly recovery: "Use a path inside the configured scope
|
|
1059
|
+
readonly recovery: "Use a path inside the configured scope. The error data echoes the active scope.";
|
|
1044
1060
|
}, {
|
|
1045
1061
|
readonly reason: "tags_required";
|
|
1046
1062
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
@@ -1055,7 +1071,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1055
1071
|
readonly reason: "no_active_file";
|
|
1056
1072
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
1057
1073
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
1058
|
-
readonly recovery: "
|
|
1074
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
1059
1075
|
}, {
|
|
1060
1076
|
readonly reason: "periodic_not_found";
|
|
1061
1077
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -1065,7 +1081,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1065
1081
|
readonly reason: "periodic_disabled";
|
|
1066
1082
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
1067
1083
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
1068
|
-
readonly recovery: "
|
|
1084
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
1069
1085
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
1070
1086
|
path: import("zod").ZodString;
|
|
1071
1087
|
failIfMissing: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
@@ -1078,7 +1094,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1078
1094
|
readonly reason: "path_forbidden";
|
|
1079
1095
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
1080
1096
|
readonly when: "The target path is outside OBSIDIAN_READ_PATHS (and OBSIDIAN_WRITE_PATHS, since write paths imply read access).";
|
|
1081
|
-
readonly recovery: "Use a path inside the configured read scope. The error data echoes the active scope
|
|
1097
|
+
readonly recovery: "Use a path inside the configured read scope. The error data echoes the active scope.";
|
|
1082
1098
|
}, {
|
|
1083
1099
|
readonly reason: "note_missing";
|
|
1084
1100
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -1143,7 +1159,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1143
1159
|
readonly reason: "path_forbidden";
|
|
1144
1160
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
1145
1161
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
1146
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
1162
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
1147
1163
|
}, {
|
|
1148
1164
|
readonly reason: "note_missing";
|
|
1149
1165
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -1153,7 +1169,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1153
1169
|
readonly reason: "no_active_file";
|
|
1154
1170
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
1155
1171
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
1156
|
-
readonly recovery: "
|
|
1172
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
1157
1173
|
}, {
|
|
1158
1174
|
readonly reason: "periodic_not_found";
|
|
1159
1175
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -1163,7 +1179,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1163
1179
|
readonly reason: "periodic_disabled";
|
|
1164
1180
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
1165
1181
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
1166
|
-
readonly recovery: "
|
|
1182
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
1167
1183
|
}, {
|
|
1168
1184
|
readonly reason: "section_target_missing";
|
|
1169
1185
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
@@ -1206,12 +1222,12 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1206
1222
|
readonly reason: "path_forbidden";
|
|
1207
1223
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
1208
1224
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes. (The pre-read also requires the path to be readable.)";
|
|
1209
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
1225
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
1210
1226
|
}, {
|
|
1211
1227
|
readonly reason: "regex_invalid";
|
|
1212
1228
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
1213
1229
|
readonly when: "A `useRegex: true` replacement supplied a `search` pattern that is not a valid ECMAScript regex.";
|
|
1214
|
-
readonly recovery: "
|
|
1230
|
+
readonly recovery: "Use a valid ECMAScript regex, or set useRegex to false to match `search` as a literal string.";
|
|
1215
1231
|
}, {
|
|
1216
1232
|
readonly reason: "note_missing";
|
|
1217
1233
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -1221,7 +1237,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1221
1237
|
readonly reason: "no_active_file";
|
|
1222
1238
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
1223
1239
|
readonly when: "Target was `active` but no file is currently open in Obsidian.";
|
|
1224
|
-
readonly recovery: "
|
|
1240
|
+
readonly recovery: "Call obsidian_open_in_ui to focus a file, or pass an explicit path target instead.";
|
|
1225
1241
|
}, {
|
|
1226
1242
|
readonly reason: "periodic_not_found";
|
|
1227
1243
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
@@ -1231,7 +1247,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1231
1247
|
readonly reason: "periodic_disabled";
|
|
1232
1248
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
1233
1249
|
readonly when: "Target was `periodic` but the requested period is not enabled in Obsidian's Periodic Notes plugin settings.";
|
|
1234
|
-
readonly recovery: "
|
|
1250
|
+
readonly recovery: "Pass an explicit path target — the requested period is disabled in the operator's Periodic Notes plugin.";
|
|
1235
1251
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
1236
1252
|
mode: import("zod").ZodEnum<{
|
|
1237
1253
|
text: "text";
|
|
@@ -1240,9 +1256,9 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1240
1256
|
}>;
|
|
1241
1257
|
query: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1242
1258
|
logic: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
1243
|
-
contextLength: import("zod").
|
|
1259
|
+
contextLength: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
1244
1260
|
pathPrefix: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1245
|
-
maxMatchesPerHit: import("zod").
|
|
1261
|
+
maxMatchesPerHit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
1246
1262
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
1247
1263
|
result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
1248
1264
|
mode: import("zod").ZodLiteral<"text">;
|
|
@@ -1343,7 +1359,7 @@ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").Tool
|
|
|
1343
1359
|
readonly reason: "path_forbidden";
|
|
1344
1360
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
1345
1361
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
1346
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
1362
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
1347
1363
|
}]>)[];
|
|
1348
1364
|
/** Command-palette tools — opt-in via `OBSIDIAN_ENABLE_COMMANDS=true`; suppressed by `OBSIDIAN_READ_ONLY=true`. */
|
|
1349
1365
|
export declare const commandToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,gFAAgF;AAChF,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,gFAAgF;AAChF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAM/B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQhC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAoD,CAAC;AAErF,mHAAmH;AACnH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;+CAAiD,CAAC"}
|
|
@@ -43,6 +43,6 @@ export declare const obsidianAppendToNote: import("@cyanheads/mcp-ts-core").Tool
|
|
|
43
43
|
readonly reason: "path_forbidden";
|
|
44
44
|
readonly code: JsonRpcErrorCode.Forbidden;
|
|
45
45
|
readonly when: "The target path is outside OBSIDIAN_WRITE_PATHS, or OBSIDIAN_READ_ONLY=true denies all writes.";
|
|
46
|
-
readonly recovery: "Use a path inside the configured write scope
|
|
46
|
+
readonly recovery: "Use a path inside the configured write scope. The error data echoes the active scope.";
|
|
47
47
|
}]>;
|
|
48
48
|
//# sourceMappingURL=obsidian-append-to-note.tool.d.ts.map
|