ClearMessageFlagsTool.ts•940 B
import { Tool } from "fastmcp";
import { ImapControllerFactory } from "../factories/ImapControllerFactory.js";
import { z } from "zod";
export const ClearMessageFlagsToolInput = z.object({
folder: z.string().min(2).max(100),
uid: z.number(),
flags: z.union([z.string(), z.array(z.string())])
});
export const ClearMessageFlagsTool: Tool<any, typeof ClearMessageFlagsToolInput> = {
name: "ClearMessageFlagsTool",
description: "Clears flags on a message.",
parameters: ClearMessageFlagsToolInput,
async execute(args, context) {
if (!args || typeof args !== 'object' || !('folder' in args) || !('uid' in args) || !('flags' in args)) {
throw new Error("Missing required arguments");
}
const controller = ImapControllerFactory.getInstance();
await controller.connect();
await controller.ClearMessageFlagsTool(args.folder, args.uid, args.flags);
return JSON.stringify({ success: true });
}
};