read_multiple_notes
Retrieve contents of multiple note files at once by specifying their paths relative to your notes directory. Useful for accessing and organizing related notes quickly in personal knowledge management systems.
Instructions
Read the contents of multiple note files simultaneously. Specify paths relative to your notes directory (e.g., ['Log/2023-01-01.md', 'Rollups/2023-01-01-rollup.md']). Returns each file's content with its path as a reference.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Array of paths to note files, relative to your notes directory |
Implementation Reference
- src/tools/filesystem.ts:245-287 (handler)The core handler function that implements the logic for reading multiple note files. It validates input, reads each file ensuring path security, handles errors per file, and returns formatted content separated by ---.export async function handleReadMultipleNotes(notesPath: string, args: ReadMultipleNotesArgs): Promise<ToolCallResult> { try { // Validate paths is provided and is an array if (!args.paths || !Array.isArray(args.paths)) { throw new Error("'paths' parameter is required and must be an array"); } // Process each file path const results = await Promise.all( args.paths.map(async (notePath) => { try { const filePath = path.join(notesPath, notePath); // Ensure the path is within allowed directory if (!filePath.startsWith(notesPath)) { return `${notePath}: Error - Access denied - path outside notes directory`; } try { const content = await fs.readFile(filePath, 'utf-8'); return `${notePath}:\n${content}\n`; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); return `${notePath}: Error - ${errorMessage}`; } } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); return `${notePath}: Error - ${errorMessage}`; } }) ); return { content: [{ type: "text", text: results.join("\n---\n") }] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); return { content: [{ type: "text", text: `Error reading notes: ${errorMessage}` }], isError: true }; } }
- src/tools/filesystem.ts:31-33 (schema)Type definition for the input arguments of the read_multiple_notes tool.interface ReadMultipleNotesArgs { paths: string[]; }
- src/tools/filesystem.ts:84-100 (schema)Tool schema definition including name, description, and input schema for validation.{ name: "read_multiple_notes", description: "Read the contents of multiple note files simultaneously. " + "Specify paths relative to your notes directory (e.g., ['Log/2023-01-01.md', 'Rollups/2023-01-01-rollup.md']). " + "Returns each file's content with its path as a reference.", inputSchema: { type: "object", properties: { paths: { type: "array", items: { type: "string" }, description: "Array of paths to note files, relative to your notes directory" } }, required: ["paths"] }, },
- src/tools/index.ts:354-355 (registration)Registration of the tool in the main dispatch switch statement within handleToolCall function.case "read_multiple_notes": return await handleReadMultipleNotes(notesPath, args);
- src/tools/index.ts:13-13 (registration)Import of the handler function from filesystem.js for use in index.ts.handleReadMultipleNotes,