obsidian-mcp-server 2.0.7 → 3.0.0

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.
Files changed (253) hide show
  1. package/CLAUDE.md +364 -0
  2. package/Dockerfile +99 -0
  3. package/LICENSE +4 -6
  4. package/README.md +246 -206
  5. package/changelog/3.0.x/3.0.0.md +102 -0
  6. package/changelog/template.md +51 -0
  7. package/dist/config/server-config.d.ts +19 -0
  8. package/dist/config/server-config.d.ts.map +1 -0
  9. package/dist/config/server-config.js +55 -0
  10. package/dist/config/server-config.js.map +1 -0
  11. package/dist/index.d.ts +7 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +23 -295
  14. package/dist/index.js.map +1 -0
  15. package/dist/mcp-server/prompts/definitions/index.d.ts +8 -0
  16. package/dist/mcp-server/prompts/definitions/index.d.ts.map +1 -0
  17. package/dist/mcp-server/prompts/definitions/index.js +8 -0
  18. package/dist/mcp-server/prompts/definitions/index.js.map +1 -0
  19. package/dist/mcp-server/resources/definitions/index.d.ts +36 -0
  20. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  21. package/dist/mcp-server/resources/definitions/index.js +9 -0
  22. package/dist/mcp-server/resources/definitions/index.js.map +1 -0
  23. package/dist/mcp-server/resources/definitions/obsidian-status.resource.d.ts +23 -0
  24. package/dist/mcp-server/resources/definitions/obsidian-status.resource.d.ts.map +1 -0
  25. package/dist/mcp-server/resources/definitions/obsidian-status.resource.js +47 -0
  26. package/dist/mcp-server/resources/definitions/obsidian-status.resource.js.map +1 -0
  27. package/dist/mcp-server/resources/definitions/obsidian-tags.resource.d.ts +13 -0
  28. package/dist/mcp-server/resources/definitions/obsidian-tags.resource.d.ts.map +1 -0
  29. package/dist/mcp-server/resources/definitions/obsidian-tags.resource.js +30 -0
  30. package/dist/mcp-server/resources/definitions/obsidian-tags.resource.js.map +1 -0
  31. package/dist/mcp-server/resources/definitions/obsidian-vault-note.resource.d.ts +21 -0
  32. package/dist/mcp-server/resources/definitions/obsidian-vault-note.resource.d.ts.map +1 -0
  33. package/dist/mcp-server/resources/definitions/obsidian-vault-note.resource.js +38 -0
  34. package/dist/mcp-server/resources/definitions/obsidian-vault-note.resource.js.map +1 -0
  35. package/dist/mcp-server/tools/definitions/_shared/schemas.d.ts +45 -0
  36. package/dist/mcp-server/tools/definitions/_shared/schemas.d.ts.map +1 -0
  37. package/dist/mcp-server/tools/definitions/_shared/schemas.js +66 -0
  38. package/dist/mcp-server/tools/definitions/_shared/schemas.js.map +1 -0
  39. package/dist/mcp-server/tools/definitions/_shared/suggest-paths.d.ts +51 -0
  40. package/dist/mcp-server/tools/definitions/_shared/suggest-paths.d.ts.map +1 -0
  41. package/dist/mcp-server/tools/definitions/_shared/suggest-paths.js +120 -0
  42. package/dist/mcp-server/tools/definitions/_shared/suggest-paths.js.map +1 -0
  43. package/dist/mcp-server/tools/definitions/index.d.ts +531 -0
  44. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  45. package/dist/mcp-server/tools/definitions/index.js +38 -0
  46. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  47. package/dist/mcp-server/tools/definitions/obsidian-append-to-note.tool.d.ts +42 -0
  48. package/dist/mcp-server/tools/definitions/obsidian-append-to-note.tool.d.ts.map +1 -0
  49. package/dist/mcp-server/tools/definitions/obsidian-append-to-note.tool.js +58 -0
  50. package/dist/mcp-server/tools/definitions/obsidian-append-to-note.tool.js.map +1 -0
  51. package/dist/mcp-server/tools/definitions/obsidian-delete-note.tool.d.ts +46 -0
  52. package/dist/mcp-server/tools/definitions/obsidian-delete-note.tool.d.ts.map +1 -0
  53. package/dist/mcp-server/tools/definitions/obsidian-delete-note.tool.js +66 -0
  54. package/dist/mcp-server/tools/definitions/obsidian-delete-note.tool.js.map +1 -0
  55. package/dist/mcp-server/tools/definitions/obsidian-execute-command.tool.d.ts +19 -0
  56. package/dist/mcp-server/tools/definitions/obsidian-execute-command.tool.d.ts.map +1 -0
  57. package/dist/mcp-server/tools/definitions/obsidian-execute-command.tool.js +43 -0
  58. package/dist/mcp-server/tools/definitions/obsidian-execute-command.tool.js.map +1 -0
  59. package/dist/mcp-server/tools/definitions/obsidian-get-note.tool.d.ts +92 -0
  60. package/dist/mcp-server/tools/definitions/obsidian-get-note.tool.d.ts.map +1 -0
  61. package/dist/mcp-server/tools/definitions/obsidian-get-note.tool.js +245 -0
  62. package/dist/mcp-server/tools/definitions/obsidian-get-note.tool.js.map +1 -0
  63. package/dist/mcp-server/tools/definitions/obsidian-list-commands.tool.d.ts +13 -0
  64. package/dist/mcp-server/tools/definitions/obsidian-list-commands.tool.d.ts.map +1 -0
  65. package/dist/mcp-server/tools/definitions/obsidian-list-commands.tool.js +38 -0
  66. package/dist/mcp-server/tools/definitions/obsidian-list-commands.tool.js.map +1 -0
  67. package/dist/mcp-server/tools/definitions/obsidian-list-notes.tool.d.ts +59 -0
  68. package/dist/mcp-server/tools/definitions/obsidian-list-notes.tool.d.ts.map +1 -0
  69. package/dist/mcp-server/tools/definitions/obsidian-list-notes.tool.js +273 -0
  70. package/dist/mcp-server/tools/definitions/obsidian-list-notes.tool.js.map +1 -0
  71. package/dist/mcp-server/tools/definitions/obsidian-list-tags.tool.d.ts +13 -0
  72. package/dist/mcp-server/tools/definitions/obsidian-list-tags.tool.d.ts.map +1 -0
  73. package/dist/mcp-server/tools/definitions/obsidian-list-tags.tool.js +38 -0
  74. package/dist/mcp-server/tools/definitions/obsidian-list-tags.tool.js.map +1 -0
  75. package/dist/mcp-server/tools/definitions/obsidian-manage-frontmatter.tool.d.ts +68 -0
  76. package/dist/mcp-server/tools/definitions/obsidian-manage-frontmatter.tool.d.ts.map +1 -0
  77. package/dist/mcp-server/tools/definitions/obsidian-manage-frontmatter.tool.js +178 -0
  78. package/dist/mcp-server/tools/definitions/obsidian-manage-frontmatter.tool.js.map +1 -0
  79. package/dist/mcp-server/tools/definitions/obsidian-manage-tags.tool.d.ts +77 -0
  80. package/dist/mcp-server/tools/definitions/obsidian-manage-tags.tool.d.ts.map +1 -0
  81. package/dist/mcp-server/tools/definitions/obsidian-manage-tags.tool.js +172 -0
  82. package/dist/mcp-server/tools/definitions/obsidian-manage-tags.tool.js.map +1 -0
  83. package/dist/mcp-server/tools/definitions/obsidian-open-in-ui.tool.d.ts +22 -0
  84. package/dist/mcp-server/tools/definitions/obsidian-open-in-ui.tool.d.ts.map +1 -0
  85. package/dist/mcp-server/tools/definitions/obsidian-open-in-ui.tool.js +88 -0
  86. package/dist/mcp-server/tools/definitions/obsidian-open-in-ui.tool.js.map +1 -0
  87. package/dist/mcp-server/tools/definitions/obsidian-patch-note.tool.d.ts +81 -0
  88. package/dist/mcp-server/tools/definitions/obsidian-patch-note.tool.d.ts.map +1 -0
  89. package/dist/mcp-server/tools/definitions/obsidian-patch-note.tool.js +83 -0
  90. package/dist/mcp-server/tools/definitions/obsidian-patch-note.tool.js.map +1 -0
  91. package/dist/mcp-server/tools/definitions/obsidian-replace-in-note.tool.d.ts +59 -0
  92. package/dist/mcp-server/tools/definitions/obsidian-replace-in-note.tool.d.ts.map +1 -0
  93. package/dist/mcp-server/tools/definitions/obsidian-replace-in-note.tool.js +167 -0
  94. package/dist/mcp-server/tools/definitions/obsidian-replace-in-note.tool.js.map +1 -0
  95. package/dist/mcp-server/tools/definitions/obsidian-search-notes.tool.d.ts +76 -0
  96. package/dist/mcp-server/tools/definitions/obsidian-search-notes.tool.d.ts.map +1 -0
  97. package/dist/mcp-server/tools/definitions/obsidian-search-notes.tool.js +244 -0
  98. package/dist/mcp-server/tools/definitions/obsidian-search-notes.tool.js.map +1 -0
  99. package/dist/mcp-server/tools/definitions/obsidian-write-note.tool.d.ts +41 -0
  100. package/dist/mcp-server/tools/definitions/obsidian-write-note.tool.d.ts.map +1 -0
  101. package/dist/mcp-server/tools/definitions/obsidian-write-note.tool.js +76 -0
  102. package/dist/mcp-server/tools/definitions/obsidian-write-note.tool.js.map +1 -0
  103. package/dist/services/obsidian/frontmatter-ops.d.ts +34 -0
  104. package/dist/services/obsidian/frontmatter-ops.d.ts.map +1 -0
  105. package/dist/services/obsidian/frontmatter-ops.js +230 -0
  106. package/dist/services/obsidian/frontmatter-ops.js.map +1 -0
  107. package/dist/services/obsidian/obsidian-service.d.ts +73 -0
  108. package/dist/services/obsidian/obsidian-service.d.ts.map +1 -0
  109. package/dist/services/obsidian/obsidian-service.js +399 -0
  110. package/dist/services/obsidian/obsidian-service.js.map +1 -0
  111. package/dist/services/obsidian/section-extractor.d.ts +13 -0
  112. package/dist/services/obsidian/section-extractor.d.ts.map +1 -0
  113. package/dist/services/obsidian/section-extractor.js +124 -0
  114. package/dist/services/obsidian/section-extractor.js.map +1 -0
  115. package/dist/services/obsidian/types.d.ts +91 -0
  116. package/dist/services/obsidian/types.d.ts.map +1 -0
  117. package/dist/services/obsidian/types.js +7 -0
  118. package/dist/services/obsidian/types.js.map +1 -0
  119. package/package.json +63 -69
  120. package/server.json +167 -0
  121. package/CHANGELOG.md +0 -124
  122. package/dist/config/index.d.ts +0 -41
  123. package/dist/config/index.js +0 -191
  124. package/dist/mcp-server/server.d.ts +0 -33
  125. package/dist/mcp-server/server.js +0 -211
  126. package/dist/mcp-server/tools/obsidianDeleteNoteTool/index.d.ts +0 -12
  127. package/dist/mcp-server/tools/obsidianDeleteNoteTool/index.js +0 -12
  128. package/dist/mcp-server/tools/obsidianDeleteNoteTool/logic.d.ts +0 -51
  129. package/dist/mcp-server/tools/obsidianDeleteNoteTool/logic.js +0 -168
  130. package/dist/mcp-server/tools/obsidianDeleteNoteTool/registration.d.ts +0 -19
  131. package/dist/mcp-server/tools/obsidianDeleteNoteTool/registration.js +0 -91
  132. package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.d.ts +0 -12
  133. package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.js +0 -12
  134. package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.d.ts +0 -77
  135. package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.js +0 -341
  136. package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.d.ts +0 -18
  137. package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.js +0 -69
  138. package/dist/mcp-server/tools/obsidianListNotesTool/index.d.ts +0 -12
  139. package/dist/mcp-server/tools/obsidianListNotesTool/index.js +0 -12
  140. package/dist/mcp-server/tools/obsidianListNotesTool/logic.d.ts +0 -68
  141. package/dist/mcp-server/tools/obsidianListNotesTool/logic.js +0 -215
  142. package/dist/mcp-server/tools/obsidianListNotesTool/registration.d.ts +0 -23
  143. package/dist/mcp-server/tools/obsidianListNotesTool/registration.js +0 -98
  144. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.d.ts +0 -3
  145. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.js +0 -2
  146. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.d.ts +0 -42
  147. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.js +0 -152
  148. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.d.ts +0 -3
  149. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.js +0 -52
  150. package/dist/mcp-server/tools/obsidianManageTagsTool/index.d.ts +0 -3
  151. package/dist/mcp-server/tools/obsidianManageTagsTool/index.js +0 -2
  152. package/dist/mcp-server/tools/obsidianManageTagsTool/logic.d.ts +0 -28
  153. package/dist/mcp-server/tools/obsidianManageTagsTool/logic.js +0 -161
  154. package/dist/mcp-server/tools/obsidianManageTagsTool/registration.d.ts +0 -3
  155. package/dist/mcp-server/tools/obsidianManageTagsTool/registration.js +0 -52
  156. package/dist/mcp-server/tools/obsidianReadNoteTool/index.d.ts +0 -12
  157. package/dist/mcp-server/tools/obsidianReadNoteTool/index.js +0 -12
  158. package/dist/mcp-server/tools/obsidianReadNoteTool/logic.d.ts +0 -87
  159. package/dist/mcp-server/tools/obsidianReadNoteTool/logic.js +0 -216
  160. package/dist/mcp-server/tools/obsidianReadNoteTool/registration.d.ts +0 -20
  161. package/dist/mcp-server/tools/obsidianReadNoteTool/registration.js +0 -101
  162. package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.d.ts +0 -12
  163. package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.js +0 -12
  164. package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.d.ts +0 -255
  165. package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.js +0 -583
  166. package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.d.ts +0 -22
  167. package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.js +0 -111
  168. package/dist/mcp-server/tools/obsidianUpdateNoteTool/index.d.ts +0 -12
  169. package/dist/mcp-server/tools/obsidianUpdateNoteTool/index.js +0 -12
  170. package/dist/mcp-server/tools/obsidianUpdateNoteTool/logic.d.ts +0 -183
  171. package/dist/mcp-server/tools/obsidianUpdateNoteTool/logic.js +0 -490
  172. package/dist/mcp-server/tools/obsidianUpdateNoteTool/registration.d.ts +0 -21
  173. package/dist/mcp-server/tools/obsidianUpdateNoteTool/registration.js +0 -108
  174. package/dist/mcp-server/transports/auth/core/authContext.d.ts +0 -33
  175. package/dist/mcp-server/transports/auth/core/authContext.js +0 -24
  176. package/dist/mcp-server/transports/auth/core/authTypes.d.ts +0 -17
  177. package/dist/mcp-server/transports/auth/core/authTypes.js +0 -5
  178. package/dist/mcp-server/transports/auth/core/authUtils.d.ts +0 -18
  179. package/dist/mcp-server/transports/auth/core/authUtils.js +0 -45
  180. package/dist/mcp-server/transports/auth/index.d.ts +0 -10
  181. package/dist/mcp-server/transports/auth/index.js +0 -9
  182. package/dist/mcp-server/transports/auth/strategies/jwt/jwtMiddleware.d.ts +0 -27
  183. package/dist/mcp-server/transports/auth/strategies/jwt/jwtMiddleware.js +0 -149
  184. package/dist/mcp-server/transports/auth/strategies/oauth/oauthMiddleware.d.ts +0 -20
  185. package/dist/mcp-server/transports/auth/strategies/oauth/oauthMiddleware.js +0 -124
  186. package/dist/mcp-server/transports/httpErrorHandler.d.ts +0 -26
  187. package/dist/mcp-server/transports/httpErrorHandler.js +0 -73
  188. package/dist/mcp-server/transports/httpTransport.d.ts +0 -21
  189. package/dist/mcp-server/transports/httpTransport.js +0 -208
  190. package/dist/mcp-server/transports/stdioTransport.d.ts +0 -42
  191. package/dist/mcp-server/transports/stdioTransport.js +0 -63
  192. package/dist/services/obsidianRestAPI/index.d.ts +0 -15
  193. package/dist/services/obsidianRestAPI/index.js +0 -17
  194. package/dist/services/obsidianRestAPI/methods/activeFileMethods.d.ts +0 -38
  195. package/dist/services/obsidianRestAPI/methods/activeFileMethods.js +0 -62
  196. package/dist/services/obsidianRestAPI/methods/commandMethods.d.ts +0 -22
  197. package/dist/services/obsidianRestAPI/methods/commandMethods.js +0 -31
  198. package/dist/services/obsidianRestAPI/methods/openMethods.d.ts +0 -16
  199. package/dist/services/obsidianRestAPI/methods/openMethods.js +0 -21
  200. package/dist/services/obsidianRestAPI/methods/patchMethods.d.ts +0 -37
  201. package/dist/services/obsidianRestAPI/methods/patchMethods.js +0 -94
  202. package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.d.ts +0 -42
  203. package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.js +0 -66
  204. package/dist/services/obsidianRestAPI/methods/searchMethods.d.ts +0 -25
  205. package/dist/services/obsidianRestAPI/methods/searchMethods.js +0 -36
  206. package/dist/services/obsidianRestAPI/methods/vaultMethods.d.ts +0 -58
  207. package/dist/services/obsidianRestAPI/methods/vaultMethods.js +0 -144
  208. package/dist/services/obsidianRestAPI/service.d.ts +0 -195
  209. package/dist/services/obsidianRestAPI/service.js +0 -379
  210. package/dist/services/obsidianRestAPI/types.d.ts +0 -127
  211. package/dist/services/obsidianRestAPI/types.js +0 -7
  212. package/dist/services/obsidianRestAPI/vaultCache/index.d.ts +0 -4
  213. package/dist/services/obsidianRestAPI/vaultCache/index.js +0 -4
  214. package/dist/services/obsidianRestAPI/vaultCache/service.d.ts +0 -88
  215. package/dist/services/obsidianRestAPI/vaultCache/service.js +0 -299
  216. package/dist/types-global/errors.d.ts +0 -73
  217. package/dist/types-global/errors.js +0 -71
  218. package/dist/utils/index.d.ts +0 -5
  219. package/dist/utils/index.js +0 -13
  220. package/dist/utils/internal/asyncUtils.d.ts +0 -54
  221. package/dist/utils/internal/asyncUtils.js +0 -101
  222. package/dist/utils/internal/errorHandler.d.ts +0 -176
  223. package/dist/utils/internal/errorHandler.js +0 -351
  224. package/dist/utils/internal/index.d.ts +0 -4
  225. package/dist/utils/internal/index.js +0 -4
  226. package/dist/utils/internal/logger.d.ts +0 -141
  227. package/dist/utils/internal/logger.js +0 -406
  228. package/dist/utils/internal/requestContext.d.ts +0 -83
  229. package/dist/utils/internal/requestContext.js +0 -72
  230. package/dist/utils/metrics/index.d.ts +0 -1
  231. package/dist/utils/metrics/index.js +0 -1
  232. package/dist/utils/metrics/tokenCounter.d.ts +0 -27
  233. package/dist/utils/metrics/tokenCounter.js +0 -128
  234. package/dist/utils/obsidian/index.d.ts +0 -5
  235. package/dist/utils/obsidian/index.js +0 -5
  236. package/dist/utils/obsidian/obsidianApiUtils.d.ts +0 -14
  237. package/dist/utils/obsidian/obsidianApiUtils.js +0 -29
  238. package/dist/utils/obsidian/obsidianStatUtils.d.ts +0 -68
  239. package/dist/utils/obsidian/obsidianStatUtils.js +0 -143
  240. package/dist/utils/parsing/dateParser.d.ts +0 -56
  241. package/dist/utils/parsing/dateParser.js +0 -104
  242. package/dist/utils/parsing/index.d.ts +0 -2
  243. package/dist/utils/parsing/index.js +0 -3
  244. package/dist/utils/parsing/jsonParser.d.ts +0 -80
  245. package/dist/utils/parsing/jsonParser.js +0 -133
  246. package/dist/utils/security/idGenerator.d.ts +0 -140
  247. package/dist/utils/security/idGenerator.js +0 -194
  248. package/dist/utils/security/index.d.ts +0 -3
  249. package/dist/utils/security/index.js +0 -3
  250. package/dist/utils/security/rateLimiter.d.ts +0 -156
  251. package/dist/utils/security/rateLimiter.js +0 -235
  252. package/dist/utils/security/sanitization.d.ts +0 -244
  253. package/dist/utils/security/sanitization.js +0 -599
@@ -0,0 +1,531 @@
1
+ /**
2
+ * @fileoverview Tool registration barrel. `obsidian_execute_command` is exported
3
+ * separately so callers can decide whether to register it based on the
4
+ * `OBSIDIAN_ENABLE_COMMANDS` flag — keeping this module free of eager config reads.
5
+ * @module mcp-server/tools/definitions/index
6
+ */
7
+ import { obsidianExecuteCommand } from './obsidian-execute-command.tool.js';
8
+ /** Tools registered unconditionally on every server. */
9
+ export declare const baseToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
10
+ target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
11
+ type: import("zod").ZodLiteral<"path">;
12
+ path: import("zod").ZodString;
13
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
14
+ type: import("zod").ZodLiteral<"active">;
15
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
16
+ type: import("zod").ZodLiteral<"periodic">;
17
+ period: import("zod").ZodEnum<{
18
+ daily: "daily";
19
+ weekly: "weekly";
20
+ monthly: "monthly";
21
+ quarterly: "quarterly";
22
+ yearly: "yearly";
23
+ }>;
24
+ date: import("zod").ZodOptional<import("zod").ZodString>;
25
+ }, import("zod/v4/core").$strip>], "type">;
26
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
27
+ path: import("zod").ZodString;
28
+ deleted: import("zod").ZodBoolean;
29
+ }, import("zod/v4/core").$strip>, readonly [{
30
+ readonly reason: "cancelled";
31
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InvalidRequest;
32
+ readonly when: "User declined the deletion via interactive elicitation.";
33
+ }, {
34
+ readonly reason: "note_missing";
35
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
36
+ readonly when: "The vault path does not resolve to an existing note.";
37
+ }, {
38
+ readonly reason: "no_active_file";
39
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
40
+ readonly when: "Target was `active` but no file is currently open in Obsidian.";
41
+ }, {
42
+ readonly reason: "periodic_not_found";
43
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
44
+ readonly when: "Target was `periodic` but no matching periodic note exists.";
45
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
46
+ format: import("zod").ZodEnum<{
47
+ content: "content";
48
+ section: "section";
49
+ full: "full";
50
+ "document-map": "document-map";
51
+ }>;
52
+ target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
53
+ type: import("zod").ZodLiteral<"path">;
54
+ path: import("zod").ZodString;
55
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
56
+ type: import("zod").ZodLiteral<"active">;
57
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
58
+ type: import("zod").ZodLiteral<"periodic">;
59
+ period: import("zod").ZodEnum<{
60
+ daily: "daily";
61
+ weekly: "weekly";
62
+ monthly: "monthly";
63
+ quarterly: "quarterly";
64
+ yearly: "yearly";
65
+ }>;
66
+ date: import("zod").ZodOptional<import("zod").ZodString>;
67
+ }, import("zod/v4/core").$strip>], "type">;
68
+ section: import("zod").ZodOptional<import("zod").ZodObject<{
69
+ type: import("zod").ZodEnum<{
70
+ heading: "heading";
71
+ block: "block";
72
+ frontmatter: "frontmatter";
73
+ }>;
74
+ target: import("zod").ZodString;
75
+ }, import("zod/v4/core").$strip>>;
76
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
77
+ result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
78
+ format: import("zod").ZodLiteral<"content">;
79
+ path: import("zod").ZodString;
80
+ content: import("zod").ZodString;
81
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
82
+ format: import("zod").ZodLiteral<"full">;
83
+ path: import("zod").ZodString;
84
+ content: import("zod").ZodString;
85
+ frontmatter: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
86
+ tags: import("zod").ZodArray<import("zod").ZodString>;
87
+ stat: import("zod").ZodObject<{
88
+ ctime: import("zod").ZodNumber;
89
+ mtime: import("zod").ZodNumber;
90
+ size: import("zod").ZodNumber;
91
+ }, import("zod/v4/core").$strip>;
92
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
93
+ format: import("zod").ZodLiteral<"document-map">;
94
+ path: import("zod").ZodString;
95
+ headings: import("zod").ZodArray<import("zod").ZodString>;
96
+ blocks: import("zod").ZodArray<import("zod").ZodString>;
97
+ frontmatterFields: import("zod").ZodArray<import("zod").ZodString>;
98
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
99
+ format: import("zod").ZodLiteral<"section">;
100
+ path: import("zod").ZodString;
101
+ section: import("zod").ZodObject<{
102
+ type: import("zod").ZodEnum<{
103
+ heading: "heading";
104
+ block: "block";
105
+ frontmatter: "frontmatter";
106
+ }>;
107
+ target: import("zod").ZodString;
108
+ }, import("zod/v4/core").$strip>;
109
+ valueText: import("zod").ZodOptional<import("zod").ZodString>;
110
+ valueJson: import("zod").ZodOptional<import("zod").ZodUnknown>;
111
+ }, import("zod/v4/core").$strip>], "format">;
112
+ }, import("zod/v4/core").$strip>, readonly [{
113
+ readonly reason: "section_required";
114
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
115
+ readonly when: "`format` is \"section\" but no `section` locator was provided.";
116
+ }, {
117
+ readonly reason: "note_missing";
118
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
119
+ readonly when: "The vault path does not resolve to an existing note.";
120
+ }, {
121
+ readonly reason: "no_active_file";
122
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
123
+ readonly when: "Target was `active` but no file is currently open in Obsidian.";
124
+ }, {
125
+ readonly reason: "periodic_not_found";
126
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
127
+ readonly when: "Target was `periodic` but no matching periodic note exists.";
128
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
129
+ commands: import("zod").ZodArray<import("zod").ZodObject<{
130
+ id: import("zod").ZodString;
131
+ name: import("zod").ZodString;
132
+ }, import("zod/v4/core").$strip>>;
133
+ }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
134
+ path: import("zod").ZodOptional<import("zod").ZodString>;
135
+ extension: import("zod").ZodOptional<import("zod").ZodString>;
136
+ nameRegex: import("zod").ZodOptional<import("zod").ZodString>;
137
+ depth: import("zod").ZodOptional<import("zod").ZodNumber>;
138
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
139
+ path: import("zod").ZodString;
140
+ entries: import("zod").ZodArray<import("zod").ZodObject<{
141
+ path: import("zod").ZodString;
142
+ type: import("zod").ZodEnum<{
143
+ file: "file";
144
+ directory: "directory";
145
+ }>;
146
+ truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
147
+ }, import("zod/v4/core").$strip>>;
148
+ totals: import("zod").ZodObject<{
149
+ entries: import("zod").ZodNumber;
150
+ files: import("zod").ZodNumber;
151
+ directories: import("zod").ZodNumber;
152
+ }, import("zod/v4/core").$strip>;
153
+ appliedFilters: import("zod").ZodObject<{
154
+ extension: import("zod").ZodOptional<import("zod").ZodString>;
155
+ nameRegex: import("zod").ZodOptional<import("zod").ZodString>;
156
+ depth: import("zod").ZodNumber;
157
+ }, import("zod/v4/core").$strip>;
158
+ excluded: import("zod").ZodOptional<import("zod").ZodObject<{
159
+ reason: import("zod").ZodLiteral<"entry_cap">;
160
+ cap: import("zod").ZodNumber;
161
+ hint: import("zod").ZodString;
162
+ }, import("zod/v4/core").$strip>>;
163
+ }, import("zod/v4/core").$strip>, readonly [{
164
+ readonly reason: "regex_invalid";
165
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
166
+ readonly when: "The supplied `nameRegex` is not a valid ECMAScript regex.";
167
+ }, {
168
+ readonly reason: "note_missing";
169
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
170
+ readonly when: "The supplied `path` does not exist in the vault. Sub-directories that disappear mid-walk are silently skipped — only the root path surfaces this error.";
171
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
172
+ tags: import("zod").ZodArray<import("zod").ZodObject<{
173
+ name: import("zod").ZodString;
174
+ count: import("zod").ZodNumber;
175
+ }, import("zod/v4/core").$strip>>;
176
+ }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
177
+ operation: import("zod").ZodEnum<{
178
+ set: "set";
179
+ delete: "delete";
180
+ get: "get";
181
+ }>;
182
+ target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
183
+ type: import("zod").ZodLiteral<"path">;
184
+ path: import("zod").ZodString;
185
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
186
+ type: import("zod").ZodLiteral<"active">;
187
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
188
+ type: import("zod").ZodLiteral<"periodic">;
189
+ period: import("zod").ZodEnum<{
190
+ daily: "daily";
191
+ weekly: "weekly";
192
+ monthly: "monthly";
193
+ quarterly: "quarterly";
194
+ yearly: "yearly";
195
+ }>;
196
+ date: import("zod").ZodOptional<import("zod").ZodString>;
197
+ }, import("zod/v4/core").$strip>], "type">;
198
+ key: import("zod").ZodString;
199
+ value: import("zod").ZodOptional<import("zod").ZodUnknown>;
200
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
201
+ result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
202
+ operation: import("zod").ZodLiteral<"get">;
203
+ path: import("zod").ZodString;
204
+ key: import("zod").ZodString;
205
+ exists: import("zod").ZodBoolean;
206
+ value: import("zod").ZodUnknown;
207
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
208
+ operation: import("zod").ZodLiteral<"set">;
209
+ path: import("zod").ZodString;
210
+ key: import("zod").ZodString;
211
+ frontmatter: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
212
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
213
+ operation: import("zod").ZodLiteral<"delete">;
214
+ path: import("zod").ZodString;
215
+ key: import("zod").ZodString;
216
+ frontmatter: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
217
+ }, import("zod/v4/core").$strip>], "operation">;
218
+ }, import("zod/v4/core").$strip>, readonly [{
219
+ readonly reason: "value_required";
220
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
221
+ readonly when: "`operation` is \"set\" but no `value` was supplied.";
222
+ }, {
223
+ readonly reason: "note_missing";
224
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
225
+ readonly when: "The vault path does not resolve to an existing note.";
226
+ }, {
227
+ readonly reason: "no_active_file";
228
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
229
+ readonly when: "Target was `active` but no file is currently open in Obsidian.";
230
+ }, {
231
+ readonly reason: "periodic_not_found";
232
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
233
+ readonly when: "Target was `periodic` but no matching periodic note exists.";
234
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
235
+ target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
236
+ type: import("zod").ZodLiteral<"path">;
237
+ path: import("zod").ZodString;
238
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
239
+ type: import("zod").ZodLiteral<"active">;
240
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
241
+ type: import("zod").ZodLiteral<"periodic">;
242
+ period: import("zod").ZodEnum<{
243
+ daily: "daily";
244
+ weekly: "weekly";
245
+ monthly: "monthly";
246
+ quarterly: "quarterly";
247
+ yearly: "yearly";
248
+ }>;
249
+ date: import("zod").ZodOptional<import("zod").ZodString>;
250
+ }, import("zod/v4/core").$strip>], "type">;
251
+ operation: import("zod").ZodEnum<{
252
+ list: "list";
253
+ add: "add";
254
+ remove: "remove";
255
+ }>;
256
+ tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
257
+ location: import("zod").ZodDefault<import("zod").ZodEnum<{
258
+ frontmatter: "frontmatter";
259
+ inline: "inline";
260
+ both: "both";
261
+ }>>;
262
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
263
+ result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
264
+ operation: import("zod").ZodLiteral<"list">;
265
+ path: import("zod").ZodString;
266
+ tags: import("zod").ZodObject<{
267
+ frontmatter: import("zod").ZodArray<import("zod").ZodString>;
268
+ inline: import("zod").ZodArray<import("zod").ZodString>;
269
+ all: import("zod").ZodArray<import("zod").ZodString>;
270
+ }, import("zod/v4/core").$strip>;
271
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
272
+ operation: import("zod").ZodLiteral<"add">;
273
+ path: import("zod").ZodString;
274
+ applied: import("zod").ZodArray<import("zod").ZodString>;
275
+ skipped: import("zod").ZodArray<import("zod").ZodString>;
276
+ tags: import("zod").ZodArray<import("zod").ZodString>;
277
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
278
+ operation: import("zod").ZodLiteral<"remove">;
279
+ path: import("zod").ZodString;
280
+ applied: import("zod").ZodArray<import("zod").ZodString>;
281
+ skipped: import("zod").ZodArray<import("zod").ZodString>;
282
+ tags: import("zod").ZodArray<import("zod").ZodString>;
283
+ }, import("zod/v4/core").$strip>], "operation">;
284
+ }, import("zod/v4/core").$strip>, readonly [{
285
+ readonly reason: "tags_required";
286
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
287
+ readonly when: "`operation` is \"add\" or \"remove\" but `tags` was empty or omitted.";
288
+ }, {
289
+ readonly reason: "note_missing";
290
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
291
+ readonly when: "The vault path does not resolve to an existing note.";
292
+ }, {
293
+ readonly reason: "no_active_file";
294
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
295
+ readonly when: "Target was `active` but no file is currently open in Obsidian.";
296
+ }, {
297
+ readonly reason: "periodic_not_found";
298
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
299
+ readonly when: "Target was `periodic` but no matching periodic note exists.";
300
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
301
+ path: import("zod").ZodString;
302
+ failIfMissing: import("zod").ZodDefault<import("zod").ZodBoolean>;
303
+ newLeaf: import("zod").ZodDefault<import("zod").ZodBoolean>;
304
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
305
+ path: import("zod").ZodString;
306
+ opened: import("zod").ZodBoolean;
307
+ createdIfMissing: import("zod").ZodBoolean;
308
+ }, import("zod/v4/core").$strip>, readonly [{
309
+ readonly reason: "note_missing";
310
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
311
+ readonly when: "`failIfMissing: true` (default) and the path does not exist in the vault. Pass `failIfMissing: false` to allow Obsidian to create the file on open.";
312
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
313
+ target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
314
+ type: import("zod").ZodLiteral<"path">;
315
+ path: import("zod").ZodString;
316
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
317
+ type: import("zod").ZodLiteral<"active">;
318
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
319
+ type: import("zod").ZodLiteral<"periodic">;
320
+ period: import("zod").ZodEnum<{
321
+ daily: "daily";
322
+ weekly: "weekly";
323
+ monthly: "monthly";
324
+ quarterly: "quarterly";
325
+ yearly: "yearly";
326
+ }>;
327
+ date: import("zod").ZodOptional<import("zod").ZodString>;
328
+ }, import("zod/v4/core").$strip>], "type">;
329
+ section: import("zod").ZodObject<{
330
+ type: import("zod").ZodEnum<{
331
+ heading: "heading";
332
+ block: "block";
333
+ frontmatter: "frontmatter";
334
+ }>;
335
+ target: import("zod").ZodString;
336
+ }, import("zod/v4/core").$strip>;
337
+ operation: import("zod").ZodEnum<{
338
+ append: "append";
339
+ prepend: "prepend";
340
+ replace: "replace";
341
+ }>;
342
+ content: import("zod").ZodString;
343
+ contentType: import("zod").ZodDefault<import("zod").ZodEnum<{
344
+ markdown: "markdown";
345
+ json: "json";
346
+ }>>;
347
+ patchOptions: import("zod").ZodOptional<import("zod").ZodObject<{
348
+ createTargetIfMissing: import("zod").ZodDefault<import("zod").ZodBoolean>;
349
+ applyIfContentPreexists: import("zod").ZodDefault<import("zod").ZodBoolean>;
350
+ trimTargetWhitespace: import("zod").ZodDefault<import("zod").ZodBoolean>;
351
+ }, import("zod/v4/core").$strip>>;
352
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
353
+ path: import("zod").ZodString;
354
+ section: import("zod").ZodObject<{
355
+ type: import("zod").ZodEnum<{
356
+ heading: "heading";
357
+ block: "block";
358
+ frontmatter: "frontmatter";
359
+ }>;
360
+ target: import("zod").ZodString;
361
+ }, import("zod/v4/core").$strip>;
362
+ operation: import("zod").ZodEnum<{
363
+ append: "append";
364
+ prepend: "prepend";
365
+ replace: "replace";
366
+ }>;
367
+ }, import("zod/v4/core").$strip>, readonly [{
368
+ readonly reason: "note_missing";
369
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
370
+ readonly when: "The vault path does not resolve to an existing note.";
371
+ }, {
372
+ readonly reason: "no_active_file";
373
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
374
+ readonly when: "Target was `active` but no file is currently open in Obsidian.";
375
+ }, {
376
+ readonly reason: "periodic_not_found";
377
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
378
+ readonly when: "Target was `periodic` but no matching periodic note exists.";
379
+ }, {
380
+ readonly reason: "section_target_missing";
381
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
382
+ readonly when: "The named heading/block/frontmatter field does not exist in the note. Use `obsidian_get_note` with `format: \"document-map\"` to discover available targets.";
383
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
384
+ target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
385
+ type: import("zod").ZodLiteral<"path">;
386
+ path: import("zod").ZodString;
387
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
388
+ type: import("zod").ZodLiteral<"active">;
389
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
390
+ type: import("zod").ZodLiteral<"periodic">;
391
+ period: import("zod").ZodEnum<{
392
+ daily: "daily";
393
+ weekly: "weekly";
394
+ monthly: "monthly";
395
+ quarterly: "quarterly";
396
+ yearly: "yearly";
397
+ }>;
398
+ date: import("zod").ZodOptional<import("zod").ZodString>;
399
+ }, import("zod/v4/core").$strip>], "type">;
400
+ replacements: import("zod").ZodArray<import("zod").ZodObject<{
401
+ search: import("zod").ZodString;
402
+ replace: import("zod").ZodString;
403
+ useRegex: import("zod").ZodDefault<import("zod").ZodBoolean>;
404
+ caseSensitive: import("zod").ZodDefault<import("zod").ZodBoolean>;
405
+ wholeWord: import("zod").ZodDefault<import("zod").ZodBoolean>;
406
+ flexibleWhitespace: import("zod").ZodDefault<import("zod").ZodBoolean>;
407
+ replaceAll: import("zod").ZodDefault<import("zod").ZodBoolean>;
408
+ }, import("zod/v4/core").$strip>>;
409
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
410
+ path: import("zod").ZodString;
411
+ totalReplacements: import("zod").ZodNumber;
412
+ perReplacement: import("zod").ZodArray<import("zod").ZodObject<{
413
+ search: import("zod").ZodString;
414
+ count: import("zod").ZodNumber;
415
+ }, import("zod/v4/core").$strip>>;
416
+ }, import("zod/v4/core").$strip>, readonly [{
417
+ readonly reason: "regex_invalid";
418
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
419
+ readonly when: "A `useRegex: true` replacement supplied a `search` pattern that is not a valid ECMAScript regex.";
420
+ }, {
421
+ readonly reason: "note_missing";
422
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
423
+ readonly when: "The vault path does not resolve to an existing note.";
424
+ }, {
425
+ readonly reason: "no_active_file";
426
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
427
+ readonly when: "Target was `active` but no file is currently open in Obsidian.";
428
+ }, {
429
+ readonly reason: "periodic_not_found";
430
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
431
+ readonly when: "Target was `periodic` but no matching periodic note exists.";
432
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
433
+ mode: import("zod").ZodEnum<{
434
+ text: "text";
435
+ dataview: "dataview";
436
+ jsonlogic: "jsonlogic";
437
+ }>;
438
+ query: import("zod").ZodOptional<import("zod").ZodString>;
439
+ logic: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
440
+ contextLength: import("zod").ZodOptional<import("zod").ZodNumber>;
441
+ pathPrefix: import("zod").ZodOptional<import("zod").ZodString>;
442
+ maxMatchesPerHit: import("zod").ZodOptional<import("zod").ZodNumber>;
443
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
444
+ result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
445
+ mode: import("zod").ZodLiteral<"text">;
446
+ hits: import("zod").ZodArray<import("zod").ZodObject<{
447
+ filename: import("zod").ZodString;
448
+ score: import("zod").ZodOptional<import("zod").ZodNumber>;
449
+ matches: import("zod").ZodArray<import("zod").ZodObject<{
450
+ context: import("zod").ZodString;
451
+ match: import("zod").ZodObject<{
452
+ start: import("zod").ZodNumber;
453
+ end: import("zod").ZodNumber;
454
+ }, import("zod/v4/core").$strip>;
455
+ }, import("zod/v4/core").$strip>>;
456
+ totalMatches: import("zod").ZodOptional<import("zod").ZodNumber>;
457
+ truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
458
+ }, import("zod/v4/core").$strip>>;
459
+ excluded: import("zod").ZodOptional<import("zod").ZodObject<{
460
+ count: import("zod").ZodNumber;
461
+ hint: import("zod").ZodString;
462
+ }, import("zod/v4/core").$strip>>;
463
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
464
+ mode: import("zod").ZodLiteral<"dataview">;
465
+ hits: import("zod").ZodArray<import("zod").ZodObject<{
466
+ filename: import("zod").ZodString;
467
+ result: import("zod").ZodUnknown;
468
+ }, import("zod/v4/core").$strip>>;
469
+ excluded: import("zod").ZodOptional<import("zod").ZodObject<{
470
+ count: import("zod").ZodNumber;
471
+ hint: import("zod").ZodString;
472
+ }, import("zod/v4/core").$strip>>;
473
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
474
+ mode: import("zod").ZodLiteral<"jsonlogic">;
475
+ hits: import("zod").ZodArray<import("zod").ZodObject<{
476
+ filename: import("zod").ZodString;
477
+ result: import("zod").ZodUnknown;
478
+ }, import("zod/v4/core").$strip>>;
479
+ excluded: import("zod").ZodOptional<import("zod").ZodObject<{
480
+ count: import("zod").ZodNumber;
481
+ hint: import("zod").ZodString;
482
+ }, import("zod/v4/core").$strip>>;
483
+ }, import("zod/v4/core").$strip>], "mode">;
484
+ }, import("zod/v4/core").$strip>, readonly [{
485
+ readonly reason: "path_prefix_invalid_mode";
486
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
487
+ readonly when: "`pathPrefix` was provided in a non-text mode (only `text` supports prefix filtering).";
488
+ }, {
489
+ readonly reason: "query_required";
490
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
491
+ readonly when: "`query` is missing for `text` or `dataview` mode (required for both).";
492
+ }, {
493
+ readonly reason: "logic_required";
494
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
495
+ readonly when: "`logic` is missing for `jsonlogic` mode.";
496
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
497
+ target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
498
+ type: import("zod").ZodLiteral<"path">;
499
+ path: import("zod").ZodString;
500
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
501
+ type: import("zod").ZodLiteral<"active">;
502
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
503
+ type: import("zod").ZodLiteral<"periodic">;
504
+ period: import("zod").ZodEnum<{
505
+ daily: "daily";
506
+ weekly: "weekly";
507
+ monthly: "monthly";
508
+ quarterly: "quarterly";
509
+ yearly: "yearly";
510
+ }>;
511
+ date: import("zod").ZodOptional<import("zod").ZodString>;
512
+ }, import("zod/v4/core").$strip>], "type">;
513
+ content: import("zod").ZodString;
514
+ section: import("zod").ZodOptional<import("zod").ZodObject<{
515
+ type: import("zod").ZodEnum<{
516
+ heading: "heading";
517
+ block: "block";
518
+ frontmatter: "frontmatter";
519
+ }>;
520
+ target: import("zod").ZodString;
521
+ }, import("zod/v4/core").$strip>>;
522
+ contentType: import("zod").ZodDefault<import("zod").ZodEnum<{
523
+ markdown: "markdown";
524
+ json: "json";
525
+ }>>;
526
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
527
+ path: import("zod").ZodString;
528
+ sectionTargeted: import("zod").ZodBoolean;
529
+ }, import("zod/v4/core").$strip>, undefined>)[];
530
+ export { obsidianExecuteCommand };
531
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAa5E,wDAAwD;AACxD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAc/B,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @fileoverview Tool registration barrel. `obsidian_execute_command` is exported
3
+ * separately so callers can decide whether to register it based on the
4
+ * `OBSIDIAN_ENABLE_COMMANDS` flag — keeping this module free of eager config reads.
5
+ * @module mcp-server/tools/definitions/index
6
+ */
7
+ import { obsidianAppendToNote } from './obsidian-append-to-note.tool.js';
8
+ import { obsidianDeleteNote } from './obsidian-delete-note.tool.js';
9
+ import { obsidianExecuteCommand } from './obsidian-execute-command.tool.js';
10
+ import { obsidianGetNote } from './obsidian-get-note.tool.js';
11
+ import { obsidianListCommands } from './obsidian-list-commands.tool.js';
12
+ import { obsidianListNotes } from './obsidian-list-notes.tool.js';
13
+ import { obsidianListTags } from './obsidian-list-tags.tool.js';
14
+ import { obsidianManageFrontmatter } from './obsidian-manage-frontmatter.tool.js';
15
+ import { obsidianManageTags } from './obsidian-manage-tags.tool.js';
16
+ import { obsidianOpenInUi } from './obsidian-open-in-ui.tool.js';
17
+ import { obsidianPatchNote } from './obsidian-patch-note.tool.js';
18
+ import { obsidianReplaceInNote } from './obsidian-replace-in-note.tool.js';
19
+ import { obsidianSearchNotes } from './obsidian-search-notes.tool.js';
20
+ import { obsidianWriteNote } from './obsidian-write-note.tool.js';
21
+ /** Tools registered unconditionally on every server. */
22
+ export const baseToolDefinitions = [
23
+ obsidianGetNote,
24
+ obsidianListNotes,
25
+ obsidianListTags,
26
+ obsidianListCommands,
27
+ obsidianSearchNotes,
28
+ obsidianWriteNote,
29
+ obsidianAppendToNote,
30
+ obsidianPatchNote,
31
+ obsidianReplaceInNote,
32
+ obsidianManageFrontmatter,
33
+ obsidianManageTags,
34
+ obsidianDeleteNote,
35
+ obsidianOpenInUi,
36
+ ];
37
+ export { obsidianExecuteCommand };
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,qBAAqB;IACrB,yBAAyB;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;CACjB,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @fileoverview obsidian_append_to_note — append content to the end of a note,
3
+ * or to the end of a heading/block/frontmatter section via PATCH-with-append.
4
+ * @module mcp-server/tools/definitions/obsidian-append-to-note.tool
5
+ */
6
+ import { z } from '@cyanheads/mcp-ts-core';
7
+ export declare const obsidianAppendToNote: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
8
+ target: z.ZodDiscriminatedUnion<[z.ZodObject<{
9
+ type: z.ZodLiteral<"path">;
10
+ path: z.ZodString;
11
+ }, z.core.$strip>, z.ZodObject<{
12
+ type: z.ZodLiteral<"active">;
13
+ }, z.core.$strip>, z.ZodObject<{
14
+ type: z.ZodLiteral<"periodic">;
15
+ period: z.ZodEnum<{
16
+ daily: "daily";
17
+ weekly: "weekly";
18
+ monthly: "monthly";
19
+ quarterly: "quarterly";
20
+ yearly: "yearly";
21
+ }>;
22
+ date: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strip>], "type">;
24
+ content: z.ZodString;
25
+ section: z.ZodOptional<z.ZodObject<{
26
+ type: z.ZodEnum<{
27
+ heading: "heading";
28
+ block: "block";
29
+ frontmatter: "frontmatter";
30
+ }>;
31
+ target: z.ZodString;
32
+ }, z.core.$strip>>;
33
+ contentType: z.ZodDefault<z.ZodEnum<{
34
+ markdown: "markdown";
35
+ json: "json";
36
+ }>>;
37
+ createTargetIfMissing: z.ZodDefault<z.ZodBoolean>;
38
+ }, z.core.$strip>, z.ZodObject<{
39
+ path: z.ZodString;
40
+ sectionTargeted: z.ZodBoolean;
41
+ }, z.core.$strip>, undefined>;
42
+ //# sourceMappingURL=obsidian-append-to-note.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obsidian-append-to-note.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/obsidian-append-to-note.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAIjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAyD/B,CAAC"}