@aniketbiswas/obsidian-mcp-server 1.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.
- package/LICENSE +21 -0
- package/README.md +232 -0
- package/build/index.d.ts +26 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +148 -0
- package/build/index.js.map +1 -0
- package/build/prompts/index.d.ts +33 -0
- package/build/prompts/index.d.ts.map +1 -0
- package/build/prompts/index.js +152 -0
- package/build/prompts/index.js.map +1 -0
- package/build/prompts/obsidian.d.ts +17 -0
- package/build/prompts/obsidian.d.ts.map +1 -0
- package/build/prompts/obsidian.js +305 -0
- package/build/prompts/obsidian.js.map +1 -0
- package/build/resources/index.d.ts +31 -0
- package/build/resources/index.d.ts.map +1 -0
- package/build/resources/index.js +111 -0
- package/build/resources/index.js.map +1 -0
- package/build/resources/obsidian.d.ts +19 -0
- package/build/resources/obsidian.d.ts.map +1 -0
- package/build/resources/obsidian.js +246 -0
- package/build/resources/obsidian.js.map +1 -0
- package/build/tools/_template.d.ts +23 -0
- package/build/tools/_template.d.ts.map +1 -0
- package/build/tools/_template.js +124 -0
- package/build/tools/_template.js.map +1 -0
- package/build/tools/calculator.d.ts +32 -0
- package/build/tools/calculator.d.ts.map +1 -0
- package/build/tools/calculator.js +130 -0
- package/build/tools/calculator.js.map +1 -0
- package/build/tools/daily-notes.d.ts +19 -0
- package/build/tools/daily-notes.d.ts.map +1 -0
- package/build/tools/daily-notes.js +469 -0
- package/build/tools/daily-notes.js.map +1 -0
- package/build/tools/greeting.d.ts +23 -0
- package/build/tools/greeting.d.ts.map +1 -0
- package/build/tools/greeting.js +111 -0
- package/build/tools/greeting.js.map +1 -0
- package/build/tools/index.d.ts +28 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +46 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/links.d.ts +19 -0
- package/build/tools/links.d.ts.map +1 -0
- package/build/tools/links.js +467 -0
- package/build/tools/links.js.map +1 -0
- package/build/tools/metadata.d.ts +18 -0
- package/build/tools/metadata.d.ts.map +1 -0
- package/build/tools/metadata.js +447 -0
- package/build/tools/metadata.js.map +1 -0
- package/build/tools/navigation.d.ts +19 -0
- package/build/tools/navigation.d.ts.map +1 -0
- package/build/tools/navigation.js +378 -0
- package/build/tools/navigation.js.map +1 -0
- package/build/tools/notes.d.ts +19 -0
- package/build/tools/notes.d.ts.map +1 -0
- package/build/tools/notes.js +622 -0
- package/build/tools/notes.js.map +1 -0
- package/build/tools/search.d.ts +19 -0
- package/build/tools/search.d.ts.map +1 -0
- package/build/tools/search.js +418 -0
- package/build/tools/search.js.map +1 -0
- package/build/tools/templates.d.ts +18 -0
- package/build/tools/templates.d.ts.map +1 -0
- package/build/tools/templates.js +581 -0
- package/build/tools/templates.js.map +1 -0
- package/build/tools/vault.d.ts +19 -0
- package/build/tools/vault.d.ts.map +1 -0
- package/build/tools/vault.js +403 -0
- package/build/tools/vault.js.map +1 -0
- package/build/types/index.d.ts +11 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +11 -0
- package/build/types/index.js.map +1 -0
- package/build/types/obsidian.d.ts +329 -0
- package/build/types/obsidian.d.ts.map +1 -0
- package/build/types/obsidian.js +38 -0
- package/build/types/obsidian.js.map +1 -0
- package/build/utils/client.d.ts +201 -0
- package/build/utils/client.d.ts.map +1 -0
- package/build/utils/client.js +656 -0
- package/build/utils/client.js.map +1 -0
- package/build/utils/config.d.ts +43 -0
- package/build/utils/config.d.ts.map +1 -0
- package/build/utils/config.js +117 -0
- package/build/utils/config.js.map +1 -0
- package/build/utils/frontmatter.d.ts +90 -0
- package/build/utils/frontmatter.d.ts.map +1 -0
- package/build/utils/frontmatter.js +306 -0
- package/build/utils/frontmatter.js.map +1 -0
- package/build/utils/index.d.ts +13 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +13 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/markdown.d.ts +134 -0
- package/build/utils/markdown.d.ts.map +1 -0
- package/build/utils/markdown.js +330 -0
- package/build/utils/markdown.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================================
|
|
3
|
+
* OBSIDIAN MCP - Search Tools
|
|
4
|
+
* ============================================================================
|
|
5
|
+
*
|
|
6
|
+
* Tools for searching notes in the Obsidian vault.
|
|
7
|
+
* Supports full-text search, tag search, and pattern matching.
|
|
8
|
+
* ============================================================================
|
|
9
|
+
*/
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { ObsidianApiError } from "../types/obsidian.js";
|
|
12
|
+
import { getAllTags } from "../utils/frontmatter.js";
|
|
13
|
+
import { getSummary } from "../utils/markdown.js";
|
|
14
|
+
/**
|
|
15
|
+
* Register search tools with the MCP server.
|
|
16
|
+
*
|
|
17
|
+
* @param server - The MCP server instance
|
|
18
|
+
* @param client - The Obsidian API client
|
|
19
|
+
*/
|
|
20
|
+
export function registerSearchTools(server, client) {
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// TOOL: search_notes
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Full-text search across the vault using Obsidian's search syntax.
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
server.tool("search_notes", "Search for notes in the Obsidian vault using Obsidian's query syntax. " +
|
|
27
|
+
"Supports operators like: path:, file:, tag:#, content in quotes, and more. " +
|
|
28
|
+
"Returns matching files with relevance scores.", {
|
|
29
|
+
query: z
|
|
30
|
+
.string()
|
|
31
|
+
.describe("Search query. Supports Obsidian search syntax like: " +
|
|
32
|
+
'"exact phrase", path:folder/, tag:#mytag, file:name'),
|
|
33
|
+
limit: z
|
|
34
|
+
.number()
|
|
35
|
+
.int()
|
|
36
|
+
.min(1)
|
|
37
|
+
.max(100)
|
|
38
|
+
.optional()
|
|
39
|
+
.default(20)
|
|
40
|
+
.describe("Maximum number of results to return (default: 20)."),
|
|
41
|
+
}, async ({ query, limit }) => {
|
|
42
|
+
try {
|
|
43
|
+
const results = await client.search(query);
|
|
44
|
+
// Sort by score if available and limit results
|
|
45
|
+
const sortedResults = results
|
|
46
|
+
.sort((a, b) => (b.score || 0) - (a.score || 0))
|
|
47
|
+
.slice(0, limit);
|
|
48
|
+
return {
|
|
49
|
+
content: [
|
|
50
|
+
{
|
|
51
|
+
type: "text",
|
|
52
|
+
text: JSON.stringify({
|
|
53
|
+
success: true,
|
|
54
|
+
query,
|
|
55
|
+
totalResults: results.length,
|
|
56
|
+
showing: sortedResults.length,
|
|
57
|
+
results: sortedResults.map((r) => ({
|
|
58
|
+
path: r.filename,
|
|
59
|
+
score: r.score,
|
|
60
|
+
matches: r.matches?.slice(0, 3), // Limit matches per file
|
|
61
|
+
})),
|
|
62
|
+
}, null, 2),
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
const message = error instanceof ObsidianApiError ? error.message : String(error);
|
|
69
|
+
return {
|
|
70
|
+
content: [
|
|
71
|
+
{
|
|
72
|
+
type: "text",
|
|
73
|
+
text: `Error searching notes: ${message}`,
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
isError: true,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
// TOOL: simple_search
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
// Simple text search across the vault.
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
server.tool("simple_search", "Simple text search across all notes in the vault. " +
|
|
86
|
+
"Searches for the exact text (case-insensitive). " +
|
|
87
|
+
"Good for finding specific phrases or terms.", {
|
|
88
|
+
query: z.string().describe("Text to search for in notes."),
|
|
89
|
+
limit: z
|
|
90
|
+
.number()
|
|
91
|
+
.int()
|
|
92
|
+
.min(1)
|
|
93
|
+
.max(100)
|
|
94
|
+
.optional()
|
|
95
|
+
.default(20)
|
|
96
|
+
.describe("Maximum number of results to return (default: 20)."),
|
|
97
|
+
}, async ({ query, limit }) => {
|
|
98
|
+
try {
|
|
99
|
+
const results = await client.simpleSearch(query);
|
|
100
|
+
const limitedResults = results.slice(0, limit);
|
|
101
|
+
return {
|
|
102
|
+
content: [
|
|
103
|
+
{
|
|
104
|
+
type: "text",
|
|
105
|
+
text: JSON.stringify({
|
|
106
|
+
success: true,
|
|
107
|
+
query,
|
|
108
|
+
totalResults: results.length,
|
|
109
|
+
showing: limitedResults.length,
|
|
110
|
+
results: limitedResults.map((r) => ({
|
|
111
|
+
path: r.filename,
|
|
112
|
+
matches: r.matches?.slice(0, 3),
|
|
113
|
+
})),
|
|
114
|
+
}, null, 2),
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
const message = error instanceof ObsidianApiError ? error.message : String(error);
|
|
121
|
+
return {
|
|
122
|
+
content: [
|
|
123
|
+
{
|
|
124
|
+
type: "text",
|
|
125
|
+
text: `Error searching notes: ${message}`,
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
isError: true,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
// TOOL: search_by_tag
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
// Search for notes with specific tags.
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
server.tool("search_by_tag", "Find all notes that have specific tags. " +
|
|
138
|
+
"Tags can be in frontmatter or inline in the content. " +
|
|
139
|
+
"Can search for multiple tags (notes must have all specified tags).", {
|
|
140
|
+
tags: z
|
|
141
|
+
.array(z.string())
|
|
142
|
+
.min(1)
|
|
143
|
+
.describe("Tags to search for (with or without # prefix)."),
|
|
144
|
+
matchAll: z
|
|
145
|
+
.boolean()
|
|
146
|
+
.optional()
|
|
147
|
+
.default(true)
|
|
148
|
+
.describe("If true, notes must have ALL tags. If false, notes with ANY tag match."),
|
|
149
|
+
}, async ({ tags, matchAll }) => {
|
|
150
|
+
try {
|
|
151
|
+
// Normalize tags (remove # if present)
|
|
152
|
+
const normalizedTags = tags.map((t) => t.startsWith("#") ? t.slice(1) : t);
|
|
153
|
+
// Build Obsidian search query
|
|
154
|
+
const tagQueries = normalizedTags.map((t) => `tag:#${t}`);
|
|
155
|
+
const query = matchAll ? tagQueries.join(" ") : tagQueries.join(" OR ");
|
|
156
|
+
const results = await client.search(query);
|
|
157
|
+
return {
|
|
158
|
+
content: [
|
|
159
|
+
{
|
|
160
|
+
type: "text",
|
|
161
|
+
text: JSON.stringify({
|
|
162
|
+
success: true,
|
|
163
|
+
searchedTags: normalizedTags,
|
|
164
|
+
matchMode: matchAll ? "ALL" : "ANY",
|
|
165
|
+
totalResults: results.length,
|
|
166
|
+
results: results.map((r) => r.filename),
|
|
167
|
+
}, null, 2),
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
const message = error instanceof ObsidianApiError ? error.message : String(error);
|
|
174
|
+
return {
|
|
175
|
+
content: [
|
|
176
|
+
{
|
|
177
|
+
type: "text",
|
|
178
|
+
text: `Error searching by tag: ${message}`,
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
isError: true,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
// TOOL: search_in_folder
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
// Search within a specific folder.
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
server.tool("search_in_folder", "Search for notes within a specific folder. " +
|
|
191
|
+
"Combines folder path filtering with text search.", {
|
|
192
|
+
folder: z.string().describe("Folder path to search in (e.g., 'Projects/Active')."),
|
|
193
|
+
query: z
|
|
194
|
+
.string()
|
|
195
|
+
.optional()
|
|
196
|
+
.describe("Optional text to search for within the folder."),
|
|
197
|
+
includeSubfolders: z
|
|
198
|
+
.boolean()
|
|
199
|
+
.optional()
|
|
200
|
+
.default(true)
|
|
201
|
+
.describe("Whether to include subfolders in the search."),
|
|
202
|
+
}, async ({ folder, query, includeSubfolders }) => {
|
|
203
|
+
try {
|
|
204
|
+
// Build path query
|
|
205
|
+
const pathQuery = includeSubfolders
|
|
206
|
+
? `path:"${folder}"`
|
|
207
|
+
: `path:"${folder}/"`;
|
|
208
|
+
const fullQuery = query ? `${pathQuery} ${query}` : pathQuery;
|
|
209
|
+
const results = await client.search(fullQuery);
|
|
210
|
+
return {
|
|
211
|
+
content: [
|
|
212
|
+
{
|
|
213
|
+
type: "text",
|
|
214
|
+
text: JSON.stringify({
|
|
215
|
+
success: true,
|
|
216
|
+
folder,
|
|
217
|
+
searchQuery: query || "(all files)",
|
|
218
|
+
includeSubfolders,
|
|
219
|
+
totalResults: results.length,
|
|
220
|
+
results: results.map((r) => r.filename),
|
|
221
|
+
}, null, 2),
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
const message = error instanceof ObsidianApiError ? error.message : String(error);
|
|
228
|
+
return {
|
|
229
|
+
content: [
|
|
230
|
+
{
|
|
231
|
+
type: "text",
|
|
232
|
+
text: `Error searching in folder: ${message}`,
|
|
233
|
+
},
|
|
234
|
+
],
|
|
235
|
+
isError: true,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
// ---------------------------------------------------------------------------
|
|
240
|
+
// TOOL: find_notes_by_name
|
|
241
|
+
// ---------------------------------------------------------------------------
|
|
242
|
+
// Find notes by filename pattern.
|
|
243
|
+
// ---------------------------------------------------------------------------
|
|
244
|
+
server.tool("find_notes_by_name", "Find notes by their filename. " +
|
|
245
|
+
"Searches for notes whose name contains the specified text.", {
|
|
246
|
+
name: z.string().describe("Text that the filename should contain."),
|
|
247
|
+
exactMatch: z
|
|
248
|
+
.boolean()
|
|
249
|
+
.optional()
|
|
250
|
+
.default(false)
|
|
251
|
+
.describe("If true, filename must match exactly (case-insensitive)."),
|
|
252
|
+
}, async ({ name, exactMatch }) => {
|
|
253
|
+
try {
|
|
254
|
+
// Use file: operator for filename search
|
|
255
|
+
const query = exactMatch ? `file:"${name}.md"` : `file:${name}`;
|
|
256
|
+
const results = await client.search(query);
|
|
257
|
+
return {
|
|
258
|
+
content: [
|
|
259
|
+
{
|
|
260
|
+
type: "text",
|
|
261
|
+
text: JSON.stringify({
|
|
262
|
+
success: true,
|
|
263
|
+
searchName: name,
|
|
264
|
+
matchMode: exactMatch ? "exact" : "contains",
|
|
265
|
+
totalResults: results.length,
|
|
266
|
+
results: results.map((r) => r.filename),
|
|
267
|
+
}, null, 2),
|
|
268
|
+
},
|
|
269
|
+
],
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
const message = error instanceof ObsidianApiError ? error.message : String(error);
|
|
274
|
+
return {
|
|
275
|
+
content: [
|
|
276
|
+
{
|
|
277
|
+
type: "text",
|
|
278
|
+
text: `Error finding notes: ${message}`,
|
|
279
|
+
},
|
|
280
|
+
],
|
|
281
|
+
isError: true,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
// ---------------------------------------------------------------------------
|
|
286
|
+
// TOOL: get_recent_notes
|
|
287
|
+
// ---------------------------------------------------------------------------
|
|
288
|
+
// Get recently modified notes.
|
|
289
|
+
// ---------------------------------------------------------------------------
|
|
290
|
+
server.tool("get_recent_notes", "Get a list of recently modified markdown notes. " +
|
|
291
|
+
"Useful for finding notes you've worked on recently.", {
|
|
292
|
+
folder: z
|
|
293
|
+
.string()
|
|
294
|
+
.optional()
|
|
295
|
+
.describe("Optional folder to limit the search to."),
|
|
296
|
+
limit: z
|
|
297
|
+
.number()
|
|
298
|
+
.int()
|
|
299
|
+
.min(1)
|
|
300
|
+
.max(50)
|
|
301
|
+
.optional()
|
|
302
|
+
.default(10)
|
|
303
|
+
.describe("Maximum number of results (default: 10)."),
|
|
304
|
+
}, async ({ folder, limit }) => {
|
|
305
|
+
try {
|
|
306
|
+
// Get all markdown files
|
|
307
|
+
const allFiles = await client.listAllFiles(folder || "", 10);
|
|
308
|
+
const mdFiles = allFiles.filter((f) => f.type === "file" && f.extension === "md");
|
|
309
|
+
// Since we don't have direct access to mtime from the API,
|
|
310
|
+
// we'll return the files and suggest using file stats
|
|
311
|
+
const results = mdFiles.slice(0, limit).map((f) => f.path);
|
|
312
|
+
return {
|
|
313
|
+
content: [
|
|
314
|
+
{
|
|
315
|
+
type: "text",
|
|
316
|
+
text: JSON.stringify({
|
|
317
|
+
success: true,
|
|
318
|
+
folder: folder || "/",
|
|
319
|
+
note: "Results sorted alphabetically. For true recency, use Obsidian's Recent Files core plugin.",
|
|
320
|
+
totalFiles: mdFiles.length,
|
|
321
|
+
showing: results.length,
|
|
322
|
+
results,
|
|
323
|
+
}, null, 2),
|
|
324
|
+
},
|
|
325
|
+
],
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
const message = error instanceof ObsidianApiError ? error.message : String(error);
|
|
330
|
+
return {
|
|
331
|
+
content: [
|
|
332
|
+
{
|
|
333
|
+
type: "text",
|
|
334
|
+
text: `Error getting recent notes: ${message}`,
|
|
335
|
+
},
|
|
336
|
+
],
|
|
337
|
+
isError: true,
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
// ---------------------------------------------------------------------------
|
|
342
|
+
// TOOL: search_with_context
|
|
343
|
+
// ---------------------------------------------------------------------------
|
|
344
|
+
// Search and return results with content context.
|
|
345
|
+
// ---------------------------------------------------------------------------
|
|
346
|
+
server.tool("search_with_context", "Search notes and return results with content snippets/context. " +
|
|
347
|
+
"Useful for previewing search results without opening each note.", {
|
|
348
|
+
query: z.string().describe("Search query."),
|
|
349
|
+
contextLength: z
|
|
350
|
+
.number()
|
|
351
|
+
.int()
|
|
352
|
+
.min(50)
|
|
353
|
+
.max(500)
|
|
354
|
+
.optional()
|
|
355
|
+
.default(150)
|
|
356
|
+
.describe("Length of context snippet to show (default: 150)."),
|
|
357
|
+
limit: z
|
|
358
|
+
.number()
|
|
359
|
+
.int()
|
|
360
|
+
.min(1)
|
|
361
|
+
.max(20)
|
|
362
|
+
.optional()
|
|
363
|
+
.default(10)
|
|
364
|
+
.describe("Maximum number of results (default: 10)."),
|
|
365
|
+
}, async ({ query, contextLength, limit }) => {
|
|
366
|
+
try {
|
|
367
|
+
const results = await client.search(query);
|
|
368
|
+
const limitedResults = results.slice(0, limit);
|
|
369
|
+
// Fetch content for each result
|
|
370
|
+
const resultsWithContext = await Promise.all(limitedResults.map(async (result) => {
|
|
371
|
+
try {
|
|
372
|
+
const note = await client.getNote(result.filename);
|
|
373
|
+
return {
|
|
374
|
+
path: result.filename,
|
|
375
|
+
score: result.score,
|
|
376
|
+
snippet: getSummary(note.body || note.content, contextLength),
|
|
377
|
+
tags: getAllTags(note.content),
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
catch {
|
|
381
|
+
return {
|
|
382
|
+
path: result.filename,
|
|
383
|
+
score: result.score,
|
|
384
|
+
snippet: "(unable to load content)",
|
|
385
|
+
tags: [],
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
}));
|
|
389
|
+
return {
|
|
390
|
+
content: [
|
|
391
|
+
{
|
|
392
|
+
type: "text",
|
|
393
|
+
text: JSON.stringify({
|
|
394
|
+
success: true,
|
|
395
|
+
query,
|
|
396
|
+
totalResults: results.length,
|
|
397
|
+
showing: resultsWithContext.length,
|
|
398
|
+
results: resultsWithContext,
|
|
399
|
+
}, null, 2),
|
|
400
|
+
},
|
|
401
|
+
],
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
catch (error) {
|
|
405
|
+
const message = error instanceof ObsidianApiError ? error.message : String(error);
|
|
406
|
+
return {
|
|
407
|
+
content: [
|
|
408
|
+
{
|
|
409
|
+
type: "text",
|
|
410
|
+
text: `Error searching notes: ${message}`,
|
|
411
|
+
},
|
|
412
|
+
],
|
|
413
|
+
isError: true,
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================================
|
|
3
|
+
* OBSIDIAN MCP - Template Tools
|
|
4
|
+
* ============================================================================
|
|
5
|
+
*
|
|
6
|
+
* Tools for working with note templates and creating structured notes.
|
|
7
|
+
* ============================================================================
|
|
8
|
+
*/
|
|
9
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
10
|
+
import { ObsidianClient } from "../utils/client.js";
|
|
11
|
+
/**
|
|
12
|
+
* Register template tools with the MCP server.
|
|
13
|
+
*
|
|
14
|
+
* @param server - The MCP server instance
|
|
15
|
+
* @param client - The Obsidian API client
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerTemplateTools(server: McpServer, client: ObsidianClient): void;
|
|
18
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/tools/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAiYrF"}
|