obsidian-mcp-server 1.5.8 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +248 -104
- package/dist/config/index.d.ts +41 -0
- package/dist/config/index.js +191 -0
- package/dist/index.d.ts +1 -5
- package/dist/index.js +296 -18
- package/dist/mcp-server/server.d.ts +33 -0
- package/dist/mcp-server/server.js +211 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.d.ts +51 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.js +168 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.d.ts +19 -0
- package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.js +91 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.d.ts +77 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.js +341 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.d.ts +18 -0
- package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.js +69 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/logic.d.ts +64 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/logic.js +179 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/registration.d.ts +19 -0
- package/dist/mcp-server/tools/obsidianListFilesTool/registration.js +96 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.js +2 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.d.ts +42 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.js +152 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.js +52 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/index.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/index.js +2 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/logic.d.ts +28 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/logic.js +161 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/registration.d.ts +3 -0
- package/dist/mcp-server/tools/obsidianManageTagsTool/registration.js +52 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/logic.d.ts +87 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/logic.js +216 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/registration.d.ts +20 -0
- package/dist/mcp-server/tools/obsidianReadFileTool/registration.js +101 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.d.ts +255 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.js +583 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.d.ts +22 -0
- package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.js +111 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/index.d.ts +12 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/index.js +12 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.d.ts +183 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.js +490 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.d.ts +21 -0
- package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.js +108 -0
- package/dist/mcp-server/transports/authentication/authContext.d.ts +33 -0
- package/dist/mcp-server/transports/authentication/authContext.js +24 -0
- package/dist/mcp-server/transports/authentication/authMiddleware.d.ts +30 -0
- package/dist/mcp-server/transports/authentication/authMiddleware.js +145 -0
- package/dist/mcp-server/transports/authentication/authUtils.d.ts +18 -0
- package/dist/mcp-server/transports/authentication/authUtils.js +45 -0
- package/dist/mcp-server/transports/authentication/oauthMiddleware.d.ts +24 -0
- package/dist/mcp-server/transports/authentication/oauthMiddleware.js +109 -0
- package/dist/mcp-server/transports/authentication/types.d.ts +17 -0
- package/dist/mcp-server/transports/authentication/types.js +5 -0
- package/dist/mcp-server/transports/httpTransport.d.ts +24 -0
- package/dist/mcp-server/transports/httpTransport.js +496 -0
- package/dist/mcp-server/transports/stdioTransport.d.ts +42 -0
- package/dist/mcp-server/transports/stdioTransport.js +63 -0
- package/dist/services/obsidianRestAPI/index.d.ts +15 -0
- package/dist/services/obsidianRestAPI/index.js +17 -0
- package/dist/services/obsidianRestAPI/methods/activeFileMethods.d.ts +38 -0
- package/dist/services/obsidianRestAPI/methods/activeFileMethods.js +62 -0
- package/dist/services/obsidianRestAPI/methods/commandMethods.d.ts +22 -0
- package/dist/services/obsidianRestAPI/methods/commandMethods.js +31 -0
- package/dist/services/obsidianRestAPI/methods/openMethods.d.ts +16 -0
- package/dist/services/obsidianRestAPI/methods/openMethods.js +21 -0
- package/dist/services/obsidianRestAPI/methods/patchMethods.d.ts +37 -0
- package/dist/services/obsidianRestAPI/methods/patchMethods.js +94 -0
- package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.d.ts +42 -0
- package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.js +66 -0
- package/dist/services/obsidianRestAPI/methods/searchMethods.d.ts +25 -0
- package/dist/services/obsidianRestAPI/methods/searchMethods.js +36 -0
- package/dist/services/obsidianRestAPI/methods/vaultMethods.d.ts +58 -0
- package/dist/services/obsidianRestAPI/methods/vaultMethods.js +144 -0
- package/dist/services/obsidianRestAPI/service.d.ts +195 -0
- package/dist/services/obsidianRestAPI/service.js +379 -0
- package/dist/services/obsidianRestAPI/types.d.ts +127 -0
- package/dist/services/obsidianRestAPI/types.js +7 -0
- package/dist/services/obsidianRestAPI/vaultCache/index.d.ts +4 -0
- package/dist/services/obsidianRestAPI/vaultCache/index.js +4 -0
- package/dist/services/obsidianRestAPI/vaultCache/service.d.ts +88 -0
- package/dist/services/obsidianRestAPI/vaultCache/service.js +299 -0
- package/dist/types-global/errors.d.ts +73 -0
- package/dist/types-global/errors.js +71 -0
- package/dist/utils/index.d.ts +5 -8
- package/dist/utils/index.js +13 -9
- package/dist/utils/internal/asyncUtils.d.ts +54 -0
- package/dist/utils/internal/asyncUtils.js +101 -0
- package/dist/utils/internal/errorHandler.d.ts +176 -0
- package/dist/utils/internal/errorHandler.js +351 -0
- package/dist/utils/internal/index.d.ts +4 -0
- package/dist/utils/internal/index.js +4 -0
- package/dist/utils/internal/logger.d.ts +141 -0
- package/dist/utils/internal/logger.js +406 -0
- package/dist/utils/internal/requestContext.d.ts +83 -0
- package/dist/utils/internal/requestContext.js +72 -0
- package/dist/utils/metrics/index.d.ts +1 -0
- package/dist/utils/metrics/index.js +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +27 -0
- package/dist/utils/metrics/tokenCounter.js +128 -0
- package/dist/utils/obsidian/index.d.ts +5 -0
- package/dist/utils/obsidian/index.js +5 -0
- package/dist/utils/obsidian/obsidianApiUtils.d.ts +14 -0
- package/dist/utils/obsidian/obsidianApiUtils.js +29 -0
- package/dist/utils/obsidian/obsidianStatUtils.d.ts +68 -0
- package/dist/utils/obsidian/obsidianStatUtils.js +143 -0
- package/dist/utils/parsing/dateParser.d.ts +56 -0
- package/dist/utils/parsing/dateParser.js +104 -0
- package/dist/utils/parsing/index.d.ts +2 -0
- package/dist/utils/parsing/index.js +3 -0
- package/dist/utils/parsing/jsonParser.d.ts +80 -0
- package/dist/utils/parsing/jsonParser.js +133 -0
- package/dist/utils/security/idGenerator.d.ts +140 -0
- package/dist/utils/security/idGenerator.js +194 -0
- package/dist/utils/security/index.d.ts +3 -0
- package/dist/utils/security/index.js +3 -0
- package/dist/utils/security/rateLimiter.d.ts +156 -0
- package/dist/utils/security/rateLimiter.js +235 -0
- package/dist/utils/security/sanitization.d.ts +244 -0
- package/dist/utils/security/sanitization.js +599 -0
- package/package.json +58 -37
- package/dist/index.js.map +0 -1
- package/dist/mcp/handlers.d.ts +0 -29
- package/dist/mcp/handlers.js +0 -305
- package/dist/mcp/handlers.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -6
- package/dist/mcp/index.js +0 -7
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -18
- package/dist/mcp/server.js +0 -240
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/types.d.ts +0 -70
- package/dist/mcp/types.js +0 -49
- package/dist/mcp/types.js.map +0 -1
- package/dist/obsidian/client.d.ts +0 -109
- package/dist/obsidian/client.js +0 -403
- package/dist/obsidian/client.js.map +0 -1
- package/dist/obsidian/errors.d.ts +0 -28
- package/dist/obsidian/errors.js +0 -75
- package/dist/obsidian/errors.js.map +0 -1
- package/dist/obsidian/index.d.ts +0 -6
- package/dist/obsidian/index.js +0 -7
- package/dist/obsidian/index.js.map +0 -1
- package/dist/obsidian/types.d.ts +0 -107
- package/dist/obsidian/types.js +0 -12
- package/dist/obsidian/types.js.map +0 -1
- package/dist/resources/index.d.ts +0 -13
- package/dist/resources/index.js +0 -15
- package/dist/resources/index.js.map +0 -1
- package/dist/resources/tags.d.ts +0 -39
- package/dist/resources/tags.js +0 -257
- package/dist/resources/tags.js.map +0 -1
- package/dist/resources/types.d.ts +0 -27
- package/dist/resources/types.js +0 -5
- package/dist/resources/types.js.map +0 -1
- package/dist/tools/base.d.ts +0 -46
- package/dist/tools/base.js +0 -88
- package/dist/tools/base.js.map +0 -1
- package/dist/tools/files/content.d.ts +0 -58
- package/dist/tools/files/content.js +0 -171
- package/dist/tools/files/content.js.map +0 -1
- package/dist/tools/files/index.d.ts +0 -14
- package/dist/tools/files/index.js +0 -22
- package/dist/tools/files/index.js.map +0 -1
- package/dist/tools/files/list.d.ts +0 -35
- package/dist/tools/files/list.js +0 -133
- package/dist/tools/files/list.js.map +0 -1
- package/dist/tools/index.d.ts +0 -21
- package/dist/tools/index.js +0 -31
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/properties/index.d.ts +0 -14
- package/dist/tools/properties/index.js +0 -19
- package/dist/tools/properties/index.js.map +0 -1
- package/dist/tools/properties/manager.d.ts +0 -62
- package/dist/tools/properties/manager.js +0 -302
- package/dist/tools/properties/manager.js.map +0 -1
- package/dist/tools/properties/tools.d.ts +0 -47
- package/dist/tools/properties/tools.js +0 -239
- package/dist/tools/properties/tools.js.map +0 -1
- package/dist/tools/properties/types.d.ts +0 -141
- package/dist/tools/properties/types.js +0 -70
- package/dist/tools/properties/types.js.map +0 -1
- package/dist/tools/search/complex.d.ts +0 -38
- package/dist/tools/search/complex.js +0 -270
- package/dist/tools/search/complex.js.map +0 -1
- package/dist/tools/search/index.d.ts +0 -14
- package/dist/tools/search/index.js +0 -20
- package/dist/tools/search/index.js.map +0 -1
- package/dist/tools/search/simple.d.ts +0 -25
- package/dist/tools/search/simple.js +0 -127
- package/dist/tools/search/simple.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -24
- package/dist/utils/errors.js +0 -59
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/idGenerator.d.ts +0 -15
- package/dist/utils/idGenerator.js +0 -21
- package/dist/utils/idGenerator.js.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logging.d.ts +0 -245
- package/dist/utils/logging.js +0 -417
- package/dist/utils/logging.js.map +0 -1
- package/dist/utils/rate-limiting.d.ts +0 -50
- package/dist/utils/rate-limiting.js +0 -94
- package/dist/utils/rate-limiting.js.map +0 -1
- package/dist/utils/tokenization.d.ts +0 -28
- package/dist/utils/tokenization.js +0 -75
- package/dist/utils/tokenization.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -22
- package/dist/utils/validation.js +0 -92
- package/dist/utils/validation.js.map +0 -1
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Property types and schemas for Obsidian notes
|
|
3
|
-
*/
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
/**
|
|
6
|
-
* Define validation schemas
|
|
7
|
-
* Allow any string for type to be more flexible
|
|
8
|
-
*/
|
|
9
|
-
export declare const PropertyType: z.ZodString;
|
|
10
|
-
/**
|
|
11
|
-
* Valid status values for notes
|
|
12
|
-
*/
|
|
13
|
-
export declare const StatusEnum: z.ZodEnum<["draft", "in-progress", "review", "complete"]>;
|
|
14
|
-
/**
|
|
15
|
-
* Schema for reading properties (includes timestamps)
|
|
16
|
-
*/
|
|
17
|
-
export declare const ObsidianPropertiesSchema: z.ZodObject<{
|
|
18
|
-
title: z.ZodOptional<z.ZodString>;
|
|
19
|
-
created: z.ZodOptional<z.ZodString>;
|
|
20
|
-
modified: z.ZodOptional<z.ZodString>;
|
|
21
|
-
author: z.ZodOptional<z.ZodString>;
|
|
22
|
-
type: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
23
|
-
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
24
|
-
status: z.ZodOptional<z.ZodArray<z.ZodEnum<["draft", "in-progress", "review", "complete"]>, "many">>;
|
|
25
|
-
version: z.ZodOptional<z.ZodString>;
|
|
26
|
-
platform: z.ZodOptional<z.ZodString>;
|
|
27
|
-
repository: z.ZodOptional<z.ZodString>;
|
|
28
|
-
dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
29
|
-
sources: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
30
|
-
urls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
31
|
-
papers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
32
|
-
custom: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodUnknown, z.objectOutputType<{}, z.ZodUnknown, "strip">, z.objectInputType<{}, z.ZodUnknown, "strip">>>;
|
|
33
|
-
}, "strip", z.ZodTypeAny, {
|
|
34
|
-
version?: string | undefined;
|
|
35
|
-
type?: string[] | undefined;
|
|
36
|
-
status?: ("draft" | "in-progress" | "review" | "complete")[] | undefined;
|
|
37
|
-
title?: string | undefined;
|
|
38
|
-
created?: string | undefined;
|
|
39
|
-
modified?: string | undefined;
|
|
40
|
-
author?: string | undefined;
|
|
41
|
-
tags?: string[] | undefined;
|
|
42
|
-
platform?: string | undefined;
|
|
43
|
-
repository?: string | undefined;
|
|
44
|
-
dependencies?: string[] | undefined;
|
|
45
|
-
sources?: string[] | undefined;
|
|
46
|
-
urls?: string[] | undefined;
|
|
47
|
-
papers?: string[] | undefined;
|
|
48
|
-
custom?: z.objectOutputType<{}, z.ZodUnknown, "strip"> | undefined;
|
|
49
|
-
}, {
|
|
50
|
-
version?: string | undefined;
|
|
51
|
-
type?: string[] | undefined;
|
|
52
|
-
status?: ("draft" | "in-progress" | "review" | "complete")[] | undefined;
|
|
53
|
-
title?: string | undefined;
|
|
54
|
-
created?: string | undefined;
|
|
55
|
-
modified?: string | undefined;
|
|
56
|
-
author?: string | undefined;
|
|
57
|
-
tags?: string[] | undefined;
|
|
58
|
-
platform?: string | undefined;
|
|
59
|
-
repository?: string | undefined;
|
|
60
|
-
dependencies?: string[] | undefined;
|
|
61
|
-
sources?: string[] | undefined;
|
|
62
|
-
urls?: string[] | undefined;
|
|
63
|
-
papers?: string[] | undefined;
|
|
64
|
-
custom?: z.objectInputType<{}, z.ZodUnknown, "strip"> | undefined;
|
|
65
|
-
}>;
|
|
66
|
-
/**
|
|
67
|
-
* Schema for validating property updates (excludes timestamps)
|
|
68
|
-
*/
|
|
69
|
-
export declare const PropertyUpdateSchema: z.ZodObject<{
|
|
70
|
-
title: z.ZodOptional<z.ZodString>;
|
|
71
|
-
author: z.ZodOptional<z.ZodString>;
|
|
72
|
-
type: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
73
|
-
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
74
|
-
status: z.ZodOptional<z.ZodArray<z.ZodEnum<["draft", "in-progress", "review", "complete"]>, "many">>;
|
|
75
|
-
version: z.ZodOptional<z.ZodString>;
|
|
76
|
-
platform: z.ZodOptional<z.ZodString>;
|
|
77
|
-
repository: z.ZodOptional<z.ZodString>;
|
|
78
|
-
dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
79
|
-
sources: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
80
|
-
urls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
81
|
-
papers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
82
|
-
custom: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodUnknown, z.objectOutputType<{}, z.ZodUnknown, "strip">, z.objectInputType<{}, z.ZodUnknown, "strip">>>;
|
|
83
|
-
}, "strip", z.ZodTypeAny, {
|
|
84
|
-
version?: string | undefined;
|
|
85
|
-
type?: string[] | undefined;
|
|
86
|
-
status?: ("draft" | "in-progress" | "review" | "complete")[] | undefined;
|
|
87
|
-
title?: string | undefined;
|
|
88
|
-
author?: string | undefined;
|
|
89
|
-
tags?: string[] | undefined;
|
|
90
|
-
platform?: string | undefined;
|
|
91
|
-
repository?: string | undefined;
|
|
92
|
-
dependencies?: string[] | undefined;
|
|
93
|
-
sources?: string[] | undefined;
|
|
94
|
-
urls?: string[] | undefined;
|
|
95
|
-
papers?: string[] | undefined;
|
|
96
|
-
custom?: z.objectOutputType<{}, z.ZodUnknown, "strip"> | undefined;
|
|
97
|
-
}, {
|
|
98
|
-
version?: string | undefined;
|
|
99
|
-
type?: string[] | undefined;
|
|
100
|
-
status?: ("draft" | "in-progress" | "review" | "complete")[] | undefined;
|
|
101
|
-
title?: string | undefined;
|
|
102
|
-
author?: string | undefined;
|
|
103
|
-
tags?: string[] | undefined;
|
|
104
|
-
platform?: string | undefined;
|
|
105
|
-
repository?: string | undefined;
|
|
106
|
-
dependencies?: string[] | undefined;
|
|
107
|
-
sources?: string[] | undefined;
|
|
108
|
-
urls?: string[] | undefined;
|
|
109
|
-
papers?: string[] | undefined;
|
|
110
|
-
custom?: z.objectInputType<{}, z.ZodUnknown, "strip"> | undefined;
|
|
111
|
-
}>;
|
|
112
|
-
/**
|
|
113
|
-
* Derived types from schemas
|
|
114
|
-
*/
|
|
115
|
-
export type ObsidianProperties = z.infer<typeof ObsidianPropertiesSchema>;
|
|
116
|
-
export type PropertyUpdate = z.infer<typeof PropertyUpdateSchema>;
|
|
117
|
-
/**
|
|
118
|
-
* Property operation description
|
|
119
|
-
*/
|
|
120
|
-
export interface PropertyOperation {
|
|
121
|
-
operation: 'get' | 'update' | 'patch';
|
|
122
|
-
filepath: string;
|
|
123
|
-
properties?: Partial<ObsidianProperties>;
|
|
124
|
-
replace?: boolean;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Result of property validation
|
|
128
|
-
*/
|
|
129
|
-
export interface ValidationResult {
|
|
130
|
-
valid: boolean;
|
|
131
|
-
errors: string[];
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Result of property operations
|
|
135
|
-
*/
|
|
136
|
-
export interface PropertyManagerResult {
|
|
137
|
-
success: boolean;
|
|
138
|
-
message: string;
|
|
139
|
-
properties?: ObsidianProperties;
|
|
140
|
-
errors?: string[];
|
|
141
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Property types and schemas for Obsidian notes
|
|
3
|
-
*/
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
/**
|
|
6
|
-
* Define validation schemas
|
|
7
|
-
* Allow any string for type to be more flexible
|
|
8
|
-
*/
|
|
9
|
-
export const PropertyType = z.string();
|
|
10
|
-
/**
|
|
11
|
-
* Valid status values for notes
|
|
12
|
-
*/
|
|
13
|
-
export const StatusEnum = z.enum([
|
|
14
|
-
"draft",
|
|
15
|
-
"in-progress",
|
|
16
|
-
"review",
|
|
17
|
-
"complete"
|
|
18
|
-
]);
|
|
19
|
-
/**
|
|
20
|
-
* Schema for reading properties (includes timestamps)
|
|
21
|
-
*/
|
|
22
|
-
export const ObsidianPropertiesSchema = z.object({
|
|
23
|
-
// Basic Metadata
|
|
24
|
-
// Note: Timestamps are managed automatically
|
|
25
|
-
title: z.string().optional(),
|
|
26
|
-
created: z.string().datetime().optional(), // Read-only, set on first creation
|
|
27
|
-
modified: z.string().datetime().optional(), // Read-only, managed by MCP server
|
|
28
|
-
author: z.string().optional(),
|
|
29
|
-
// Classification
|
|
30
|
-
type: z.array(PropertyType).optional(),
|
|
31
|
-
// Organization
|
|
32
|
-
tags: z.array(z.string()).optional(),
|
|
33
|
-
// Technical Metadata
|
|
34
|
-
status: z.array(StatusEnum).optional(),
|
|
35
|
-
version: z.string().optional(),
|
|
36
|
-
platform: z.string().optional(),
|
|
37
|
-
repository: z.string().url().optional(),
|
|
38
|
-
dependencies: z.array(z.string()).optional(),
|
|
39
|
-
// References
|
|
40
|
-
sources: z.array(z.string()).optional(),
|
|
41
|
-
urls: z.array(z.string().url()).optional(),
|
|
42
|
-
papers: z.array(z.string()).optional(),
|
|
43
|
-
// Custom Fields
|
|
44
|
-
custom: z.object({}).catchall(z.unknown()).optional() // Ensure 'custom' is an object if present
|
|
45
|
-
});
|
|
46
|
-
/**
|
|
47
|
-
* Schema for validating property updates (excludes timestamps)
|
|
48
|
-
*/
|
|
49
|
-
export const PropertyUpdateSchema = z.object({
|
|
50
|
-
// Basic Metadata
|
|
51
|
-
title: z.string().optional(),
|
|
52
|
-
author: z.string().optional(),
|
|
53
|
-
// Classification
|
|
54
|
-
type: z.array(PropertyType).optional(),
|
|
55
|
-
// Organization
|
|
56
|
-
tags: z.array(z.string()).optional(),
|
|
57
|
-
// Technical Metadata
|
|
58
|
-
status: z.array(StatusEnum).optional(),
|
|
59
|
-
version: z.string().optional(),
|
|
60
|
-
platform: z.string().optional(),
|
|
61
|
-
repository: z.string().url().optional(),
|
|
62
|
-
dependencies: z.array(z.string()).optional(),
|
|
63
|
-
// References
|
|
64
|
-
sources: z.array(z.string()).optional(),
|
|
65
|
-
urls: z.array(z.string().url()).optional(),
|
|
66
|
-
papers: z.array(z.string()).optional(),
|
|
67
|
-
// Custom Fields
|
|
68
|
-
custom: z.object({}).catchall(z.unknown()).optional() // Ensure 'custom' is an object if present
|
|
69
|
-
});
|
|
70
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/properties/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Complex search tool implementation
|
|
3
|
-
*/
|
|
4
|
-
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
5
|
-
import { ObsidianClient } from "../../obsidian/client.js";
|
|
6
|
-
import { JsonLogicQuery } from "../../obsidian/types.js";
|
|
7
|
-
import { BaseToolHandler } from "../base.js";
|
|
8
|
-
/**
|
|
9
|
-
* Tool name for complex search
|
|
10
|
-
*/
|
|
11
|
-
export declare const COMPLEX_SEARCH_TOOL_NAME = "obsidian_complex_search";
|
|
12
|
-
/**
|
|
13
|
-
* Arguments for complex search operations
|
|
14
|
-
*/
|
|
15
|
-
export interface ComplexSearchArgs {
|
|
16
|
-
query: JsonLogicQuery;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Tool handler for complex JsonLogic searches
|
|
20
|
-
*/
|
|
21
|
-
export declare class ComplexSearchToolHandler extends BaseToolHandler<ComplexSearchArgs> {
|
|
22
|
-
constructor(client: ObsidianClient);
|
|
23
|
-
getToolDescription(): Tool;
|
|
24
|
-
runTool(args: ComplexSearchArgs): Promise<Array<any>>;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Tool handler for getting all tags used in the vault
|
|
28
|
-
*/
|
|
29
|
-
export declare class GetTagsToolHandler extends BaseToolHandler<{
|
|
30
|
-
path?: string;
|
|
31
|
-
}> {
|
|
32
|
-
private propertyManager;
|
|
33
|
-
constructor(client: ObsidianClient);
|
|
34
|
-
getToolDescription(): Tool;
|
|
35
|
-
runTool(args: {
|
|
36
|
-
path?: string;
|
|
37
|
-
}): Promise<Array<any>>;
|
|
38
|
-
}
|
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
import { createLogger, ErrorCategoryType } from "../../utils/logging.js";
|
|
2
|
-
import { BaseToolHandler } from "../base.js";
|
|
3
|
-
import { PropertyManager } from "../properties/manager.js";
|
|
4
|
-
// Create a logger for complex search operations
|
|
5
|
-
const logger = createLogger('ComplexSearchTools');
|
|
6
|
-
/**
|
|
7
|
-
* Helper function to safely convert any error to an object
|
|
8
|
-
*/
|
|
9
|
-
function errorToObject(error) {
|
|
10
|
-
if (error instanceof Error) {
|
|
11
|
-
return {
|
|
12
|
-
name: error.name,
|
|
13
|
-
message: error.message,
|
|
14
|
-
stack: error.stack,
|
|
15
|
-
errorCategory: ErrorCategoryType.CATEGORY_SYSTEM
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
else if (typeof error === 'object' && error !== null) {
|
|
19
|
-
return error;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return {
|
|
23
|
-
error: String(error),
|
|
24
|
-
errorCategory: ErrorCategoryType.CATEGORY_UNKNOWN
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Tool name for complex search
|
|
30
|
-
*/
|
|
31
|
-
export const COMPLEX_SEARCH_TOOL_NAME = "obsidian_complex_search";
|
|
32
|
-
/**
|
|
33
|
-
* Tool handler for complex JsonLogic searches
|
|
34
|
-
*/
|
|
35
|
-
export class ComplexSearchToolHandler extends BaseToolHandler {
|
|
36
|
-
constructor(client) {
|
|
37
|
-
super(COMPLEX_SEARCH_TOOL_NAME, client);
|
|
38
|
-
}
|
|
39
|
-
getToolDescription() {
|
|
40
|
-
return {
|
|
41
|
-
name: this.name,
|
|
42
|
-
description: "Finds files based on path patterns using JsonLogic queries. Primarily supports `glob` for pattern matching (e.g., '*.md') and `var` for accessing the 'path' variable. Note: For content-based searches (full-text, tags within content, dates), use `obsidian_find_in_file`.",
|
|
43
|
-
examples: [
|
|
44
|
-
{
|
|
45
|
-
description: "Find all markdown files in the 'Projects' folder",
|
|
46
|
-
args: {
|
|
47
|
-
query: {
|
|
48
|
-
"glob": ["Projects/*.md", { "var": "path" }]
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
description: "Find files in a specific subfolder",
|
|
54
|
-
args: {
|
|
55
|
-
query: {
|
|
56
|
-
"glob": ["**/Test/*.md", { "var": "path" }]
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
],
|
|
61
|
-
inputSchema: {
|
|
62
|
-
type: "object",
|
|
63
|
-
properties: {
|
|
64
|
-
query: {
|
|
65
|
-
type: "object",
|
|
66
|
-
description: "A JsonLogic query object targeting file paths. Example: `{\"glob\": [\"*.md\", {\"var\": \"path\"}]}` matches all markdown files."
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
required: ["query"]
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
async runTool(args) {
|
|
74
|
-
logger.startTimer('complex_search');
|
|
75
|
-
try {
|
|
76
|
-
logger.debug(`Executing complex search with query: ${JSON.stringify(args.query)}`, {
|
|
77
|
-
queryType: Object.keys(args.query)[0]
|
|
78
|
-
});
|
|
79
|
-
// Perform search
|
|
80
|
-
const results = await this.client.searchJson(args.query);
|
|
81
|
-
// Format response based on result type
|
|
82
|
-
const formattedResults = results.map(result => {
|
|
83
|
-
if ('matches' in result) {
|
|
84
|
-
// SimpleSearchResult
|
|
85
|
-
return {
|
|
86
|
-
filename: result.filename,
|
|
87
|
-
matches: result.matches,
|
|
88
|
-
score: result.score
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
// SearchResult
|
|
93
|
-
return {
|
|
94
|
-
filename: result.filename,
|
|
95
|
-
result: result.result
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
const elapsedMs = logger.endTimer('complex_search');
|
|
100
|
-
logger.logOperationResult(true, 'complex_search', elapsedMs, {
|
|
101
|
-
resultCount: results.length,
|
|
102
|
-
queryType: Object.keys(args.query)[0]
|
|
103
|
-
});
|
|
104
|
-
logger.debug(`Complex search found ${results.length} results`);
|
|
105
|
-
return this.createResponse({
|
|
106
|
-
message: `Found ${results.length} result(s)`,
|
|
107
|
-
results: formattedResults
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
catch (error) {
|
|
111
|
-
const elapsedMs = logger.endTimer('complex_search');
|
|
112
|
-
logger.logOperationResult(false, 'complex_search', elapsedMs, {
|
|
113
|
-
queryType: Object.keys(args.query)[0]
|
|
114
|
-
});
|
|
115
|
-
logger.error(`Complex search error`, errorToObject(error));
|
|
116
|
-
return this.handleError(error);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Tool handler for getting all tags used in the vault
|
|
122
|
-
*/
|
|
123
|
-
export class GetTagsToolHandler extends BaseToolHandler {
|
|
124
|
-
propertyManager;
|
|
125
|
-
constructor(client) {
|
|
126
|
-
super("obsidian_get_tags", client);
|
|
127
|
-
this.propertyManager = new PropertyManager(client);
|
|
128
|
-
}
|
|
129
|
-
getToolDescription() {
|
|
130
|
-
return {
|
|
131
|
-
name: this.name,
|
|
132
|
-
description: "Retrieves all tags defined in the YAML frontmatter of markdown files within your Obsidian vault, along with their usage counts and associated file paths. Optionally, limit the search to a specific folder.",
|
|
133
|
-
examples: [
|
|
134
|
-
{
|
|
135
|
-
description: "Get all tags across the entire vault",
|
|
136
|
-
args: {}
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
description: "Get tags in Projects folder",
|
|
140
|
-
args: {
|
|
141
|
-
path: "Projects"
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
description: "Example response",
|
|
146
|
-
args: {},
|
|
147
|
-
response: {
|
|
148
|
-
"tags": [
|
|
149
|
-
{
|
|
150
|
-
"name": "project",
|
|
151
|
-
"count": 15,
|
|
152
|
-
"files": [
|
|
153
|
-
"Projects/ProjectA.md",
|
|
154
|
-
"Projects/ProjectB.md"
|
|
155
|
-
]
|
|
156
|
-
}
|
|
157
|
-
],
|
|
158
|
-
"metadata": {
|
|
159
|
-
"totalOccurrences": 45,
|
|
160
|
-
"uniqueTags": 12,
|
|
161
|
-
"scannedFiles": 30
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
],
|
|
166
|
-
inputSchema: {
|
|
167
|
-
type: "object",
|
|
168
|
-
properties: {
|
|
169
|
-
path: {
|
|
170
|
-
type: "string",
|
|
171
|
-
description: "Optional folder path (relative to vault root) to restrict the tag search.",
|
|
172
|
-
format: "path"
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
async runTool(args) {
|
|
179
|
-
const operationId = `get_tags_${args.path || 'vault'}`;
|
|
180
|
-
logger.startTimer(operationId);
|
|
181
|
-
try {
|
|
182
|
-
logger.debug(`Getting tags${args.path ? ` in path: ${args.path}` : ' in whole vault'}`);
|
|
183
|
-
const tagMap = new Map();
|
|
184
|
-
// Use searchJson to find files with .md extension
|
|
185
|
-
// Using non-recursive glob first as it seemed more reliable in testing
|
|
186
|
-
const query = args.path
|
|
187
|
-
? { "glob": [`${args.path}/*.md`.replace(/\\/g, '/'), { "var": "path" }] }
|
|
188
|
-
: { "glob": ["**/*.md", { "var": "path" }] }; // Keep vault-wide as recursive
|
|
189
|
-
logger.debug(`Constructed glob query: ${JSON.stringify(query)}`);
|
|
190
|
-
const results = await this.client.searchJson(query);
|
|
191
|
-
logger.debug(`searchJson returned ${results.length} results for the query.`);
|
|
192
|
-
let scannedFiles = 0;
|
|
193
|
-
let processedSuccessfully = 0;
|
|
194
|
-
// Process each file to extract tags from frontmatter
|
|
195
|
-
for (const result of results) {
|
|
196
|
-
if (!('filename' in result))
|
|
197
|
-
continue;
|
|
198
|
-
try {
|
|
199
|
-
const content = await this.client.getFileContents(result.filename);
|
|
200
|
-
scannedFiles++;
|
|
201
|
-
// Use PropertyManager to properly parse frontmatter
|
|
202
|
-
const parseResult = this.propertyManager.parseProperties(content);
|
|
203
|
-
// Check for parsing errors before accessing properties
|
|
204
|
-
if (parseResult.error) {
|
|
205
|
-
logger.warn(`Skipping tags for ${result.filename} due to parsing error: ${parseResult.error.message}`);
|
|
206
|
-
continue; // Skip to the next file
|
|
207
|
-
}
|
|
208
|
-
// Process tags if they exist in the parsed properties
|
|
209
|
-
const tags = parseResult.properties.tags;
|
|
210
|
-
if (tags && Array.isArray(tags)) {
|
|
211
|
-
// Process each tag
|
|
212
|
-
for (const tag of tags) {
|
|
213
|
-
// Ensure tag is a string before processing
|
|
214
|
-
if (typeof tag === 'string') {
|
|
215
|
-
const cleanTag = tag.startsWith('#') ? tag.substring(1) : tag; // Use updated internal logic
|
|
216
|
-
if (!tagMap.has(cleanTag)) {
|
|
217
|
-
tagMap.set(cleanTag, new Set());
|
|
218
|
-
}
|
|
219
|
-
tagMap.get(cleanTag).add(result.filename);
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
logger.warn(`Non-string tag found in ${result.filename}: ${JSON.stringify(tag)}`);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
processedSuccessfully++;
|
|
227
|
-
}
|
|
228
|
-
catch (error) {
|
|
229
|
-
logger.error(`Failed to process file ${result.filename}:`, errorToObject(error));
|
|
230
|
-
// Continue processing other files even if one fails
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
// Calculate total occurrences
|
|
234
|
-
const totalOccurrences = Array.from(tagMap.values())
|
|
235
|
-
.reduce((sum, files) => sum + files.size, 0);
|
|
236
|
-
const elapsedMs = logger.endTimer(operationId);
|
|
237
|
-
logger.logOperationResult(true, 'get_tags', elapsedMs, {
|
|
238
|
-
uniqueTags: tagMap.size,
|
|
239
|
-
totalOccurrences,
|
|
240
|
-
scannedFiles,
|
|
241
|
-
processedSuccessfully,
|
|
242
|
-
searchPath: args.path || 'vault'
|
|
243
|
-
});
|
|
244
|
-
return this.createResponse({
|
|
245
|
-
tags: Array.from(tagMap.entries())
|
|
246
|
-
.map(([name, files]) => ({
|
|
247
|
-
name,
|
|
248
|
-
count: files.size,
|
|
249
|
-
files: Array.from(files).sort()
|
|
250
|
-
}))
|
|
251
|
-
.sort((a, b) => b.count - a.count || a.name.localeCompare(b.name)),
|
|
252
|
-
metadata: {
|
|
253
|
-
totalOccurrences,
|
|
254
|
-
uniqueTags: tagMap.size,
|
|
255
|
-
scannedFiles,
|
|
256
|
-
lastUpdate: Date.now() // Consider using a more accurate cache update time if available
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
catch (error) {
|
|
261
|
-
const elapsedMs = logger.endTimer(operationId);
|
|
262
|
-
logger.logOperationResult(false, 'get_tags', elapsedMs, {
|
|
263
|
-
searchPath: args.path || 'vault',
|
|
264
|
-
error: errorToObject(error)
|
|
265
|
-
});
|
|
266
|
-
return this.handleError(error);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
//# sourceMappingURL=complex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"complex.js","sourceRoot":"","sources":["../../../src/tools/search/complex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Search tools exports
|
|
3
|
-
*/
|
|
4
|
-
export * from './complex.js';
|
|
5
|
-
export * from './simple.js';
|
|
6
|
-
import { ObsidianClient } from '../../obsidian/client.js';
|
|
7
|
-
import { ComplexSearchToolHandler, GetTagsToolHandler } from './complex.js';
|
|
8
|
-
import { FindInFileToolHandler } from './simple.js';
|
|
9
|
-
/**
|
|
10
|
-
* Create all search-related tool handlers
|
|
11
|
-
* @param client The ObsidianClient instance
|
|
12
|
-
* @returns Array of search tool handlers
|
|
13
|
-
*/
|
|
14
|
-
export declare function createSearchToolHandlers(client: ObsidianClient): (ComplexSearchToolHandler | GetTagsToolHandler | FindInFileToolHandler)[];
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Search tools exports
|
|
3
|
-
*/
|
|
4
|
-
export * from './complex.js';
|
|
5
|
-
export * from './simple.js';
|
|
6
|
-
import { ComplexSearchToolHandler, GetTagsToolHandler } from './complex.js';
|
|
7
|
-
import { FindInFileToolHandler } from './simple.js';
|
|
8
|
-
/**
|
|
9
|
-
* Create all search-related tool handlers
|
|
10
|
-
* @param client The ObsidianClient instance
|
|
11
|
-
* @returns Array of search tool handlers
|
|
12
|
-
*/
|
|
13
|
-
export function createSearchToolHandlers(client) {
|
|
14
|
-
return [
|
|
15
|
-
new FindInFileToolHandler(client),
|
|
16
|
-
new ComplexSearchToolHandler(client),
|
|
17
|
-
new GetTagsToolHandler(client)
|
|
18
|
-
];
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/search/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAsB;IAC7D,OAAO;QACL,IAAI,qBAAqB,CAAC,MAAM,CAAC;QACjC,IAAI,wBAAwB,CAAC,MAAM,CAAC;QACpC,IAAI,kBAAkB,CAAC,MAAM,CAAC;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Simple search tool implementation
|
|
3
|
-
*/
|
|
4
|
-
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
5
|
-
import { ObsidianClient } from "../../obsidian/client.js";
|
|
6
|
-
import { BaseToolHandler } from "../base.js";
|
|
7
|
-
/**
|
|
8
|
-
* Tool name for simple search
|
|
9
|
-
*/
|
|
10
|
-
export declare const SIMPLE_SEARCH_TOOL_NAME = "obsidian_find_in_file";
|
|
11
|
-
/**
|
|
12
|
-
* Arguments for simple search operations
|
|
13
|
-
*/
|
|
14
|
-
export interface SearchArgs {
|
|
15
|
-
query: string;
|
|
16
|
-
contextLength?: number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Tool handler for simple text search across files
|
|
20
|
-
*/
|
|
21
|
-
export declare class FindInFileToolHandler extends BaseToolHandler<SearchArgs> {
|
|
22
|
-
constructor(client: ObsidianClient);
|
|
23
|
-
getToolDescription(): Tool;
|
|
24
|
-
runTool(args: SearchArgs): Promise<Array<any>>;
|
|
25
|
-
}
|