import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import type { XiaomiNoteClient } from "../client";
import { NotesCache } from "../cache";
export function registerCreateFolderTool(server: McpServer, client: XiaomiNoteClient, cache: NotesCache): void {
server.registerTool(
"create_folder",
{
description: "创建文件夹",
inputSchema: {
subject: z.string().min(1, "文件夹名称不能为空"),
parentId: z.string().optional().describe("父文件夹 ID,默认 0"),
},
},
async ({ subject, parentId = "0" }: { subject: string; parentId?: string }) => {
const response = await client.createFolder(subject, parentId);
await cache.refresh();
server.sendResourceListChanged();
const folderId = response.data.entry.id;
await server.server.sendResourceUpdated({ uri: "minote://folders" });
await server.server.sendResourceUpdated({ uri: `minote://folders/${folderId}/notes` });
return {
content: [
{
type: "text" as const,
text: `文件夹创建成功:${folderId}`,
},
],
};
},
);
}