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