Skip to main content
Glama
types.ts61.5 kB
/** * Office Whisperer - Type Definitions * Comprehensive TypeScript types for Microsoft Office Suite automation via MCP */ // ============================================================================ // MCP Protocol Types // ============================================================================ export interface MCPRequest { jsonrpc: '2.0'; id?: string | number; method: string; params?: Record<string, unknown>; } export interface MCPResponse { jsonrpc: '2.0'; id: string | number; result?: unknown; error?: MCPError; } export interface MCPError { code: number; message: string; data?: unknown; } export interface MCPTool { name: string; description: string; inputSchema: { type: 'object'; properties: Record<string, unknown>; required?: string[]; }; } // ============================================================================ // Excel Types // ============================================================================ export interface ExcelWorkbookOptions { filename: string; sheets: ExcelSheet[]; } export interface ExcelSheet { name: string; data?: (string | number | boolean | null)[][]; columns?: ExcelColumn[]; rows?: ExcelRow[]; charts?: ExcelChart[]; pivotTables?: ExcelPivotTable[]; } export interface ExcelColumn { header: string; key: string; width?: number; style?: ExcelCellStyle; } export interface ExcelRow { values: (string | number | boolean | null)[]; style?: ExcelCellStyle; } export interface ExcelCellStyle { font?: { name?: string; size?: number; bold?: boolean; italic?: boolean; color?: string; }; fill?: { type: 'pattern'; pattern: string; fgColor: string; }; alignment?: { horizontal?: 'left' | 'center' | 'right'; vertical?: 'top' | 'middle' | 'bottom'; wrapText?: boolean; }; border?: { top?: ExcelBorder; bottom?: ExcelBorder; left?: ExcelBorder; right?: ExcelBorder; }; numFmt?: string; } export interface ExcelBorder { style: 'thin' | 'medium' | 'thick' | 'double'; color: string; } export interface ExcelChart { type: 'line' | 'bar' | 'pie' | 'scatter' | 'area'; title: string; dataRange: string; position?: { row: number; col: number; }; } export interface ExcelPivotTable { name: string; dataRange: string; rows: string[]; columns: string[]; values: string[]; filters?: string[]; } export interface ExcelFormula { cell: string; formula: string; } // ============================================================================ // Word Types // ============================================================================ export interface WordDocumentOptions { filename: string; sections: WordSection[]; styles?: WordStyles; } export interface WordSection { properties?: { page?: { size?: { width: number; height: number }; margin?: { top: number; right: number; bottom: number; left: number }; }; }; headers?: WordHeaderFooter[]; footers?: WordHeaderFooter[]; children: WordElement[]; } export interface WordHeaderFooter { type: 'default' | 'first' | 'even'; children: WordElement[]; } export type WordElement = | WordParagraph | WordTable | WordImage | WordTOC | WordPageBreak; export interface WordParagraph { type: 'paragraph'; text?: string; children?: WordRun[]; heading?: 'Heading1' | 'Heading2' | 'Heading3' | 'Heading4' | 'Heading5' | 'Heading6'; alignment?: 'left' | 'center' | 'right' | 'justified'; spacing?: { before?: number; after?: number; line?: number; }; bullet?: { level: number; }; numbering?: { level: number; reference: string; }; } export interface WordRun { text: string; bold?: boolean; italics?: boolean; underline?: { type: 'single' | 'double' | 'thick' | 'dotted' }; strike?: boolean; color?: string; size?: number; font?: string; highlight?: string; } export interface WordTable { type: 'table'; rows: WordTableRow[]; width?: { size: number; type: 'dxa' | 'pct' | 'auto'; }; borders?: WordTableBorders; } export interface WordTableRow { cells: WordTableCell[]; height?: number; cantSplit?: boolean; tableHeader?: boolean; } export interface WordTableCell { children: WordParagraph[]; shading?: { fill: string; color?: string; }; margins?: { top?: number; bottom?: number; left?: number; right?: number; }; columnSpan?: number; rowSpan?: number; } export interface WordTableBorders { top?: { style: string; size: number; color: string }; bottom?: { style: string; size: number; color: string }; left?: { style: string; size: number; color: string }; right?: { style: string; size: number; color: string }; insideHorizontal?: { style: string; size: number; color: string }; insideVertical?: { style: string; size: number; color: string }; } export interface WordImage { type: 'image'; path: string; transformation?: { width: number; height: number; }; } export interface WordTOC { type: 'toc'; title?: string; } export interface WordPageBreak { type: 'pageBreak'; } export interface WordStyles { default?: { document?: { run?: { font?: string; size?: number; }; paragraph?: { spacing?: { line?: number; }; }; }; }; paragraphStyles?: Array<{ id: string; name: string; basedOn?: string; next?: string; run?: { font?: string; size?: number; bold?: boolean; italics?: boolean; color?: string; }; paragraph?: { spacing?: { before?: number; after?: number; line?: number; }; alignment?: 'left' | 'center' | 'right' | 'justified'; }; }>; } // ============================================================================ // PowerPoint Types // ============================================================================ export interface PowerPointPresentationOptions { filename: string; title?: string; author?: string; company?: string; theme?: 'default' | 'light' | 'dark' | 'colorful'; slides: PowerPointSlide[]; } export interface PowerPointSlide { layout: 'title' | 'content' | 'section' | 'comparison' | 'blank'; title?: string; subtitle?: string; content?: PowerPointContent[]; notes?: string; backgroundColor?: string; backgroundImage?: string; } export type PowerPointContent = | PowerPointText | PowerPointImage | PowerPointShape | PowerPointTable | PowerPointChart; export interface PowerPointText { type: 'text'; text: string; x: number | string; y: number | string; w?: number | string; h?: number | string; fontSize?: number; fontFace?: string; color?: string; bold?: boolean; italic?: boolean; underline?: boolean; align?: 'left' | 'center' | 'right' | 'justify'; valign?: 'top' | 'middle' | 'bottom'; bullet?: boolean | { type: string; code?: string }; } export interface PowerPointImage { type: 'image'; path: string; x: number | string; y: number | string; w: number | string; h: number | string; sizing?: { type: 'cover' | 'contain' | 'crop'; }; } export interface PowerPointShape { type: 'shape'; shape: 'rectangle' | 'ellipse' | 'triangle' | 'line' | 'arrow'; x: number | string; y: number | string; w: number | string; h: number | string; fill?: { color: string }; line?: { color: string; width: number }; } export interface PowerPointTable { type: 'table'; x: number | string; y: number | string; w?: number | string; rows: (string | number)[][]; colW?: number[]; rowH?: number; fontSize?: number; color?: string; fill?: string; border?: { type: string; color: string; pt: number }; } export interface PowerPointChart { type: 'chart'; chartType: 'bar' | 'line' | 'pie' | 'scatter' | 'area'; x: number | string; y: number | string; w: number | string; h: number | string; title?: string; data: PowerPointChartData[]; } export interface PowerPointChartData { name: string; labels: string[]; values: number[]; } // ============================================================================ // MCP Tool Arguments // ============================================================================ export interface CreateExcelArgs { filename: string; sheets: ExcelSheet[]; outputPath?: string; } export interface CreateWordArgs { filename: string; title?: string; sections: WordSection[]; outputPath?: string; } export interface CreatePowerPointArgs { filename: string; title?: string; theme?: 'default' | 'light' | 'dark' | 'colorful'; slides: PowerPointSlide[]; outputPath?: string; } export interface AddExcelFormulaArgs { filename: string; sheetName: string; formulas: ExcelFormula[]; } export interface AddExcelChartArgs { filename: string; sheetName: string; chart: ExcelChart; } export interface FormatExcelCellsArgs { filename: string; sheetName: string; range: string; style: ExcelCellStyle; } export interface ConvertExcelToCSVArgs { excelPath: string; sheetName?: string; outputPath?: string; } export interface MergeWordDocumentsArgs { documents: string[]; outputPath: string; } export interface AddPowerPointSlideArgs { filename: string; slide: PowerPointSlide; position?: number; } // ============================================================================ // Advanced Excel Tool Arguments // ============================================================================ export interface ExcelAddPivotTableArgs { filename: string; sheetName: string; pivotTable: ExcelPivotTable; outputPath?: string; } export interface ExcelAddChartArgs { filename: string; sheetName: string; chart: ExcelChart; outputPath?: string; } export interface ExcelAddFormulaArgs { filename: string; sheetName: string; formulas: ExcelFormula[]; outputPath?: string; } export interface ExcelConditionalFormattingArgs { filename: string; sheetName: string; range: string; rules: ExcelConditionalFormattingRule[]; outputPath?: string; } export interface ExcelConditionalFormattingRule { type: 'colorScale' | 'dataBar' | 'iconSet' | 'formulaBased' | 'cellValue'; formula?: string; priority?: number; color?: string; gradient?: { start: string; middle?: string; end: string }; iconSet?: 'ThreeArrows' | 'ThreeFlags' | 'FourRating' | 'FiveQuarters'; operator?: 'greaterThan' | 'lessThan' | 'between' | 'equal' | 'notEqual'; values?: (number | string)[]; } export interface ExcelDataValidationArgs { filename: string; sheetName: string; range: string; validation: ExcelDataValidation; outputPath?: string; } export interface ExcelDataValidation { type: 'list' | 'whole' | 'decimal' | 'date' | 'time' | 'textLength' | 'custom'; formula?: string; values?: string[]; operator?: 'between' | 'notBetween' | 'equal' | 'notEqual' | 'greaterThan' | 'lessThan'; min?: number | string; max?: number | string; allowBlank?: boolean; showErrorMessage?: boolean; errorTitle?: string; error?: string; showInputMessage?: boolean; promptTitle?: string; prompt?: string; } export interface ExcelFreezePanesArgs { filename: string; sheetName: string; row?: number; column?: number; outputPath?: string; } export interface ExcelFilterSortArgs { filename: string; sheetName: string; range?: string; sortBy?: { column: string | number; descending?: boolean }[]; autoFilter?: boolean; outputPath?: string; } export interface ExcelFormatCellsArgs { filename: string; sheetName: string; range: string; style: ExcelCellStyle; outputPath?: string; } export interface ExcelNamedRangeArgs { filename: string; name: string; range: string; sheetName?: string; outputPath?: string; } export interface ExcelProtectSheetArgs { filename: string; sheetName: string; password?: string; options?: { selectLockedCells?: boolean; selectUnlockedCells?: boolean; formatCells?: boolean; formatColumns?: boolean; formatRows?: boolean; insertColumns?: boolean; insertRows?: boolean; insertHyperlinks?: boolean; deleteColumns?: boolean; deleteRows?: boolean; sort?: boolean; autoFilter?: boolean; pivotTables?: boolean; }; outputPath?: string; } export interface ExcelMergeWorkbooksArgs { files: string[]; outputFilename: string; outputPath?: string; } export interface ExcelFindReplaceArgs { filename: string; sheetName?: string; find: string; replace: string; matchCase?: boolean; matchEntireCell?: boolean; searchFormulas?: boolean; outputPath?: string; } export interface ExcelToJSONArgs { excelPath: string; sheetName?: string; outputPath?: string; header?: boolean; } // ============================================================================ // Advanced Word Tool Arguments // ============================================================================ export interface WordAddTOCArgs { filename: string; outputPath?: string; title?: string; hyperlinks?: boolean; levels?: number; } export interface WordMailMergeArgs { templatePath: string; dataSource: Record<string, string | number>[]; outputPath?: string; outputFilename?: string; } export interface WordFindReplaceArgs { filename: string; find: string; replace: string; matchCase?: boolean; matchWholeWord?: boolean; formatting?: { bold?: boolean; italic?: boolean; color?: string; }; outputPath?: string; } export interface WordAddCommentArgs { filename: string; text: string; comment: string; author?: string; outputPath?: string; } export interface WordFormatStylesArgs { filename: string; styles: WordStyles; outputPath?: string; } export interface WordInsertImageArgs { filename: string; imagePath: string; position?: { x?: number; y?: number }; size?: { width?: number; height?: number }; wrapping?: 'inline' | 'square' | 'tight' | 'through' | 'topAndBottom' | 'behind' | 'inFront'; outputPath?: string; } export interface WordAddHeaderFooterArgs { filename: string; type: 'header' | 'footer'; content: WordElement[]; sectionType?: 'default' | 'first' | 'even'; outputPath?: string; } export interface WordCompareDocumentsArgs { originalPath: string; revisedPath: string; outputPath?: string; author?: string; } export interface WordToPDFArgs { filename: string; outputPath?: string; } // ============================================================================ // Advanced PowerPoint Tool Arguments // ============================================================================ export interface PPTAddTransitionArgs { filename: string; slideNumber?: number; transition: PPTTransition; outputPath?: string; } export interface PPTTransition { type: 'fade' | 'push' | 'wipe' | 'split' | 'reveal' | 'randomBars' | 'circle' | 'dissolve'; duration?: number; direction?: 'left' | 'right' | 'up' | 'down'; } export interface PPTAddAnimationArgs { filename: string; slideNumber: number; objectId?: string; animation: PPTAnimation; outputPath?: string; } export interface PPTAnimation { type: 'entrance' | 'emphasis' | 'exit' | 'motion'; effect: 'appear' | 'fade' | 'fly' | 'float' | 'split' | 'wipe' | 'shape' | 'wheel' | 'randomBars' | 'grow' | 'zoom' | 'swivel' | 'bounce'; duration?: number; delay?: number; direction?: 'left' | 'right' | 'up' | 'down'; } export interface PPTAddNotesArgs { filename: string; slideNumber: number; notes: string; outputPath?: string; } export interface PPTDuplicateSlideArgs { filename: string; slideNumber: number; position?: number; outputPath?: string; } export interface PPTReorderSlidesArgs { filename: string; slideOrder: number[]; outputPath?: string; } export interface PPTExportPDFArgs { filename: string; outputPath?: string; } export interface PPTAddMediaArgs { filename: string; slideNumber: number; mediaPath: string; mediaType: 'video' | 'audio'; position?: { x: number; y: number }; size?: { width: number; height: number }; outputPath?: string; } // ============================================================================ // Outlook Tool Arguments // ============================================================================ export interface OutlookSendEmailArgs { to: string | string[]; subject: string; body: string; cc?: string | string[]; bcc?: string | string[]; attachments?: OutlookAttachment[]; html?: boolean; priority?: 'high' | 'normal' | 'low'; smtpConfig?: OutlookSMTPConfig; } export interface OutlookAttachment { filename: string; path?: string; content?: string | Buffer; } export interface OutlookSMTPConfig { host: string; port: number; secure?: boolean; auth?: { user: string; pass: string; }; } export interface OutlookCreateMeetingArgs { subject: string; startTime: string; endTime: string; location?: string; attendees?: OutlookAttendee[]; description?: string; reminder?: number; outputPath?: string; } export interface OutlookAttendee { email: string; name?: string; required?: boolean; } export interface OutlookAddContactArgs { firstName: string; lastName: string; email?: string; phone?: string; company?: string; jobTitle?: string; address?: string; outputPath?: string; } export interface OutlookCreateTaskArgs { subject: string; dueDate?: string; priority?: 'high' | 'normal' | 'low'; status?: 'notStarted' | 'inProgress' | 'completed' | 'waiting' | 'deferred'; category?: string; reminder?: string; notes?: string; outputPath?: string; } export interface OutlookSetRuleArgs { name: string; conditions: OutlookRuleCondition[]; actions: OutlookRuleAction[]; outputPath?: string; } export interface OutlookRuleCondition { type: 'from' | 'subject' | 'body' | 'recipient' | 'attachment'; value: string; operator?: 'contains' | 'equals' | 'startsWith' | 'endsWith'; } export interface OutlookRuleAction { type: 'move' | 'copy' | 'delete' | 'forward' | 'flag' | 'category'; value: string; } // ============================================================================ // Excel v3.0 Tool Arguments - Phase 1 Quick Wins // ============================================================================ export interface ExcelAddSparklinesArgs { filename: string; sheetName: string; dataRange: string; location: string; type: 'line' | 'column' | 'winLoss'; options?: { lineWeight?: number; markers?: boolean; high?: boolean; low?: boolean; first?: boolean; last?: boolean; negative?: boolean; displayEmptyCellsAs?: 'gaps' | 'zero' | 'connect'; }; outputPath?: string; } export interface ExcelArrayFormulasArgs { filename: string; sheetName: string; formulas: Array<{ cell: string; formula: string; // e.g., "=UNIQUE(A2:A100)", "=SORT(B2:B100)", "=FILTER(A2:C100,B2:B100>50)" }>; outputPath?: string; } export interface ExcelAddSubtotalsArgs { filename: string; sheetName: string; range: string; groupBy: number; // Column index to group by summaryFunction: 'SUM' | 'COUNT' | 'AVERAGE' | 'MAX' | 'MIN'; summaryColumns: number[]; // Columns to apply function to replaceExisting?: boolean; pageBreakBetweenGroups?: boolean; summaryBelowData?: boolean; outputPath?: string; } export interface ExcelAddHyperlinksArgs { filename: string; sheetName: string; links: Array<{ cell: string; url?: string; // External URL sheet?: string; // Link to another sheet range?: string; // Link to specific range tooltip?: string; displayText?: string; }>; outputPath?: string; } export interface ExcelAdvancedChartsArgs { filename: string; sheetName: string; chart: { type: 'waterfall' | 'funnel' | 'treemap' | 'sunburst' | 'histogram' | 'boxWhisker' | 'pareto'; title: string; dataRange: string; categories?: string; values?: string; position?: { row: number; col: number }; }; outputPath?: string; } export interface ExcelAddSlicersArgs { filename: string; sheetName: string; tableName: string; // Table or PivotTable name slicers: Array<{ columnName: string; caption?: string; position?: { row: number; col: number }; style?: string; }>; outputPath?: string; } // ============================================================================ // Word v3.0 Tool Arguments - Phase 1 Quick Wins // ============================================================================ export interface WordTrackChangesArgs { filename: string; enable: boolean; author?: string; showMarkup?: boolean; trackFormatting?: boolean; trackMoves?: boolean; outputPath?: string; } export interface WordAddFootnotesArgs { filename: string; footnotes: Array<{ text: string; // Text to attach footnote to note: string; // Footnote content type?: 'footnote' | 'endnote'; }>; outputPath?: string; } export interface WordAddBookmarksArgs { filename: string; bookmarks: Array<{ name: string; text: string; // Text to bookmark }>; outputPath?: string; } export interface WordAddSectionBreaksArgs { filename: string; breaks: Array<{ position: number; // After which paragraph type: 'nextPage' | 'continuous' | 'evenPage' | 'oddPage'; }>; outputPath?: string; } export interface WordAddTextBoxesArgs { filename: string; textBoxes: Array<{ text: string; position?: { x: number; y: number }; width?: number; height?: number; wrapping?: 'inline' | 'square' | 'tight' | 'through' | 'topAndBottom'; border?: boolean; fill?: string; }>; outputPath?: string; } export interface WordAddCrossReferencesArgs { filename: string; references: Array<{ bookmarkName: string; referenceType: 'pageNumber' | 'text' | 'above/below'; insertText?: string; // Text before reference like "See page " }>; outputPath?: string; } // ============================================================================ // PowerPoint v3.0 Tool Arguments - Phase 1 Quick Wins // ============================================================================ export interface PPTMasterSlidesArgs { filename: string; masterSlide: { name: string; background?: { color?: string; image?: string; }; placeholders?: Array<{ type: 'title' | 'body' | 'footer' | 'slideNumber' | 'date'; x: number; y: number; w: number; h: number; }>; fonts?: { title?: string; body?: string; }; colors?: { accent1?: string; accent2?: string; accent3?: string; }; }; outputPath?: string; } export interface PPTAddHyperlinksArgs { filename: string; slideNumber: number; links: Array<{ text: string; // Text to hyperlink url?: string; // External URL slide?: number; // Link to slide number tooltip?: string; }>; outputPath?: string; } export interface PPTAddSectionsArgs { filename: string; sections: Array<{ name: string; startSlide: number; }>; outputPath?: string; } export interface PPTMorphTransitionArgs { filename: string; fromSlide: number; toSlide: number; duration?: number; outputPath?: string; } export interface PPTAddActionButtonsArgs { filename: string; slideNumber: number; buttons: Array<{ text: string; action: 'nextSlide' | 'previousSlide' | 'firstSlide' | 'lastSlide' | 'endShow' | 'customSlide'; targetSlide?: number; x: number; y: number; w?: number; h?: number; }>; outputPath?: string; } // ============================================================================ // Outlook v3.0 Tool Arguments - Phase 1 Quick Wins // ============================================================================ export interface OutlookReadEmailsArgs { folder?: string; // Default: "INBOX" limit?: number; // Number of emails to retrieve unreadOnly?: boolean; since?: string; // ISO date string imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } export interface OutlookSearchEmailsArgs { query: string; searchIn?: ('subject' | 'from' | 'body' | 'to')[]; folder?: string; limit?: number; since?: string; imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } export interface OutlookRecurringMeetingArgs { subject: string; startTime: string; endTime: string; recurrence: { frequency: 'daily' | 'weekly' | 'monthly' | 'yearly'; interval?: number; // Every N days/weeks/months/years daysOfWeek?: ('MO' | 'TU' | 'WE' | 'TH' | 'FR' | 'SA' | 'SU')[]; until?: string; // End date count?: number; // Number of occurrences }; location?: string; attendees?: OutlookAttendee[]; description?: string; outputPath?: string; } export interface OutlookEmailTemplateArgs { name: string; subject: string; body: string; html?: boolean; placeholders?: string[]; // Variables like {{name}}, {{company}} outputPath?: string; } export interface OutlookMarkReadArgs { messageIds: string[]; markAsRead: boolean; // true = read, false = unread imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } export interface OutlookArchiveEmailArgs { messageIds: string[]; archiveFolder?: string; // Default: "Archive" imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } export interface OutlookCalendarViewArgs { startDate: string; endDate: string; viewType: 'day' | 'week' | 'month' | 'agenda'; outputFormat?: 'ics' | 'json'; outputPath?: string; } export interface OutlookSearchContactsArgs { query: string; searchIn?: ('name' | 'email' | 'company' | 'phone')[]; outputFormat?: 'vcf' | 'json'; outputPath?: string; } // ============================================================================ // Excel v4.0 Tool Arguments - Phase 2 & 3 for 100% Coverage // ============================================================================ export interface ExcelPowerQueryArgs { filename: string; sheetName: string; queryName: string; source: { type: 'table' | 'range' | 'csv' | 'json' | 'web'; location: string; // Table name, range ref, file path, or URL }; transformations?: Array<{ step: 'filter' | 'sort' | 'groupBy' | 'pivot' | 'unpivot' | 'merge' | 'append' | 'removeColumns' | 'renameColumns' | 'changeType' | 'fillDown' | 'replaceValues'; column?: string; condition?: string; value?: any; columns?: string[]; newName?: string; dataType?: 'text' | 'number' | 'date' | 'boolean'; }>; loadTo?: 'table' | 'pivotTable' | 'connection'; outputPath?: string; } export interface ExcelGoalSeekArgs { filename: string; sheetName: string; setCell: string; // Cell to set to target value toValue: number; // Target value byChangingCell: string; // Cell to change outputPath?: string; } export interface ExcelDataTableArgs { filename: string; sheetName: string; type: 'oneVariable' | 'twoVariable'; formulaCell: string; rowInputCell?: string; // For one-variable or two-variable columnInputCell?: string; // For two-variable outputRange: string; // Where to place the data table outputPath?: string; } export interface ExcelScenarioManagerArgs { filename: string; sheetName: string; scenarios: Array<{ name: string; changingCells: string[]; // Array of cell references values: (string | number)[]; comment?: string; }>; resultCells?: string[]; // Cells to track in scenario summary outputPath?: string; } export interface ExcelCreateTableArgs { filename: string; sheetName: string; tableName: string; range: string; hasHeaders?: boolean; style?: 'TableStyleLight1' | 'TableStyleLight2' | 'TableStyleMedium1' | 'TableStyleMedium2' | 'TableStyleDark1' | 'TableStyleDark2'; showTotalRow?: boolean; showFilterButton?: boolean; showRowStripes?: boolean; showColumnStripes?: boolean; outputPath?: string; } export interface ExcelTableFormulaArgs { filename: string; sheetName: string; tableName: string; columnName: string; formula: string; // Structured reference formula like "=[@[Unit Price]]*[@Quantity]" outputPath?: string; } export interface ExcelFormControlArgs { filename: string; sheetName: string; controls: Array<{ type: 'button' | 'checkbox' | 'comboBox' | 'listBox' | 'spinner' | 'scrollBar' | 'optionButton' | 'groupBox'; name: string; position: { row: number; col: number }; size?: { width: number; height: number }; linkedCell?: string; // Cell to link control value to inputRange?: string; // For list/combo boxes min?: number; // For spinner/scroll bar max?: number; // For spinner/scroll bar increment?: number; // For spinner/scroll bar label?: string; macro?: string; // Macro name to run on click }>; outputPath?: string; } export interface ExcelInsertImageArgs { filename: string; sheetName: string; images: Array<{ path: string; position: { row: number; col: number }; size?: { width: number; height: number }; description?: string; hyperlink?: string; }>; outputPath?: string; } export interface ExcelInsertShapeArgs { filename: string; sheetName: string; shapes: Array<{ type: 'rectangle' | 'roundedRectangle' | 'ellipse' | 'triangle' | 'diamond' | 'pentagon' | 'hexagon' | 'star' | 'arrow' | 'line' | 'connector'; position: { row: number; col: number }; size: { width: number; height: number }; fill?: { color: string; transparency?: number }; border?: { color: string; width: number; style?: 'solid' | 'dash' | 'dot' }; text?: string; rotation?: number; }>; outputPath?: string; } export interface ExcelSmartArtArgs { filename: string; sheetName: string; smartArt: { type: 'list' | 'process' | 'cycle' | 'hierarchy' | 'relationship' | 'matrix' | 'pyramid'; layout: string; // e.g., 'BasicBlockList', 'BasicProcess', 'BasicCycle' position: { row: number; col: number }; size?: { width: number; height: number }; items: Array<{ text: string; level?: number; // For hierarchies children?: string[]; }>; colorScheme?: 'colorful' | 'accent1' | 'accent2' | 'accent3'; }; outputPath?: string; } export interface ExcelPageSetupArgs { filename: string; sheetName: string; pageSetup: { orientation?: 'portrait' | 'landscape'; paperSize?: 'letter' | 'legal' | 'A4' | 'A3' | 'tabloid'; fitToPage?: { width: number; height: number }; // Fit to N pages wide by M tall scale?: number; // Percentage (10-400) margins?: { top?: number; // In inches bottom?: number; left?: number; right?: number; header?: number; footer?: number; }; centerHorizontally?: boolean; centerVertically?: boolean; printGridlines?: boolean; printHeadings?: boolean; // Row/column headings blackAndWhite?: boolean; draftQuality?: boolean; printComments?: 'asDisplayed' | 'atEnd' | 'none'; printErrors?: 'displayed' | 'blank' | 'dash' | 'NA'; printArea?: string; // Range like "A1:H50" printTitles?: { rows?: string; // e.g., "1:2" to repeat rows 1-2 columns?: string; // e.g., "A:B" to repeat columns A-B }; }; outputPath?: string; } export interface ExcelHeaderFooterArgs { filename: string; sheetName: string; header?: { left?: string; center?: string; right?: string; }; footer?: { left?: string; center?: string; right?: string; }; differentFirstPage?: boolean; differentOddEven?: boolean; // Special codes: &P (page number), &N (total pages), &D (date), &T (time), &F (file name), &A (sheet name), &Z (path) outputPath?: string; } export interface ExcelPageBreaksArgs { filename: string; sheetName: string; horizontalBreaks?: number[]; // Row numbers verticalBreaks?: number[]; // Column numbers outputPath?: string; } export interface ExcelTrackChangesArgs { filename: string; enable: boolean; highlightChanges?: boolean; listChangesOnNewSheet?: boolean; trackWhile?: 'editing' | 'shared'; outputPath?: string; } export interface ExcelShareWorkbookArgs { filename: string; share: boolean; allowChanges?: boolean; protectSharing?: boolean; password?: string; updateInterval?: number; // Minutes outputPath?: string; } export interface ExcelCompareVersionsArgs { originalFile: string; revisedFile: string; outputPath?: string; highlightDifferences?: boolean; } export interface ExcelCommentArgs { filename: string; sheetName: string; comments: Array<{ cell: string; text: string; author?: string; visible?: boolean; }>; outputPath?: string; } // ============================================================================ // Word v4.0 Tool Arguments - Phase 2 & 3 for 100% Coverage // ============================================================================ export interface WordBibliographyArgs { filename: string; sources: Array<{ type: 'book' | 'article' | 'website' | 'journal' | 'report' | 'conference'; author?: string; title: string; year?: number; publisher?: string; city?: string; url?: string; pages?: string; volume?: string; issue?: string; tag?: string; // Citation tag like "Smith2020" }>; style?: 'APA' | 'MLA' | 'Chicago' | 'Harvard' | 'IEEE'; insertAt?: 'end' | 'cursor'; // Where to insert bibliography outputPath?: string; } export interface WordCitationArgs { filename: string; citations: Array<{ position: number; // Paragraph index sourceTag: string; // Reference to source tag pageNumber?: string; prefix?: string; // Text before citation suffix?: string; // Text after citation }>; outputPath?: string; } export interface WordIndexArgs { filename: string; entries: Array<{ text: string; // Text to appear in index mainEntry: string; // Main index entry subEntry?: string; // Optional sub-entry pageNumber?: number; // If not provided, auto-detect }>; title?: string; // Index title, default "Index" columns?: number; // Number of columns (1-4) insertAt?: 'end' | 'newPage'; outputPath?: string; } export interface WordMarkIndexEntryArgs { filename: string; textToMark: string; // Text in document to mark for index entryText?: string; // Index entry text (defaults to marked text) crossReference?: string; // "See also" reference outputPath?: string; } export interface WordFormFieldArgs { filename: string; fields: Array<{ type: 'text' | 'checkbox' | 'dropdown' | 'date' | 'number'; name: string; label?: string; defaultValue?: string | boolean; required?: boolean; maxLength?: number; helpText?: string; options?: string[]; // For dropdown position?: number; // Paragraph index to insert at }>; protectForm?: boolean; // Make form fill-able only outputPath?: string; } export interface WordContentControlArgs { filename: string; controls: Array<{ type: 'richText' | 'plainText' | 'picture' | 'dropDownList' | 'comboBox' | 'datePicker' | 'checkbox'; title: string; tag?: string; // Unique identifier placeholder?: string; options?: string[]; // For dropdown/combo dateFormat?: string; // For date picker position?: number; // Paragraph index }>; outputPath?: string; } export interface WordSmartArtArgs { filename: string; smartArt: { type: 'list' | 'process' | 'cycle' | 'hierarchy' | 'relationship' | 'matrix' | 'pyramid' | 'picture'; layout: string; // e.g., 'BasicBlockList', 'BasicProcess', 'OrganizationChart' items: Array<{ text: string; level?: number; // For hierarchies (0=top, 1=child, etc.) image?: string; // Path to image (for picture layouts) }>; colorScheme?: 'colorful' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6'; style?: '3D' | 'flat' | 'cartoon' | 'modern'; }; position?: number; // Paragraph index outputPath?: string; } export interface WordEquationArgs { filename: string; equations: Array<{ latex?: string; // LaTeX format mathml?: string; // MathML format text?: string; // Linear format like "x^2 + y^2 = r^2" position?: number; // Paragraph index inline?: boolean; // Inline vs display mode }>; outputPath?: string; } export interface WordSymbolArgs { filename: string; symbols: Array<{ character: string; // Unicode character or symbol name font?: string; // Symbol font like "Symbol" or "Wingdings" position?: number; // Paragraph index }>; outputPath?: string; } export interface WordAccessibilityArgs { filename: string; checks: { altText?: boolean; // Check images for alt text headingStructure?: boolean; // Check proper heading hierarchy colorContrast?: boolean; // Check text/background contrast tableHeaders?: boolean; // Check tables have headers readingOrder?: boolean; // Check logical reading order }; autoFix?: boolean; // Attempt to fix issues outputPath?: string; } export interface WordAltTextArgs { filename: string; altTexts: Array<{ imageIndex: number; // Which image (0-based) altText: string; title?: string; }>; outputPath?: string; } export interface WordDigitalSignatureArgs { filename: string; action: 'add' | 'remove' | 'verify'; certificatePath?: string; // Path to .pfx file password?: string; reason?: string; // Reason for signing location?: string; // Location of signer outputPath?: string; } export interface WordProtectDocumentArgs { filename: string; protection: { type: 'readOnly' | 'comments' | 'forms' | 'trackedChanges'; password?: string; allowedEditing?: string[]; // Ranges that can be edited users?: string[]; // Users who can edit }; outputPath?: string; } export interface WordMasterDocumentArgs { filename: string; subdocuments: Array<{ path: string; // Path to subdocument title?: string; lockForEditing?: boolean; }>; generateTOC?: boolean; // Create master TOC outputPath?: string; } export interface WordAuthorInfoArgs { filename: string; info: { author?: string; title?: string; subject?: string; keywords?: string[]; category?: string; comments?: string; company?: string; manager?: string; }; outputPath?: string; } export interface WordCaptionArgs { filename: string; captions: Array<{ type: 'figure' | 'table' | 'equation' | 'custom'; text: string; // Caption text label?: string; // Custom label numberingFormat?: '1, 2, 3' | 'I, II, III' | 'a, b, c'; includeChapterNumber?: boolean; position?: 'above' | 'below'; imageOrTableIndex?: number; // Which image/table to caption }>; outputPath?: string; } export interface WordHyperlinkAdvancedArgs { filename: string; hyperlinks: Array<{ text: string; // Text to hyperlink url?: string; // External URL bookmark?: string; // Link to bookmark in document emailAddress?: string; // mailto: link screenTip?: string; // Tooltip text position?: number; // Paragraph index }>; outputPath?: string; } export interface WordDropCapArgs { filename: string; paragraphIndex: number; style: 'dropped' | 'inMargin'; lines?: number; // How many lines tall (default 3) distance?: number; // Distance from text in points outputPath?: string; } export interface WordWatermarkArgs { filename: string; watermark: { type: 'text' | 'image'; text?: string; imagePath?: string; diagonal?: boolean; opacity?: number; // 0-1 color?: string; fontSize?: number; }; outputPath?: string; } // ============================================================================ // PowerPoint v4.0 Tool Arguments - Phase 2 & 3 for 100% Coverage // ============================================================================ /** * Insert SmartArt graphics with various layouts */ export interface PPTSmartArtArgs { filename: string; slideNumber: number; smartArt: { type: 'list' | 'process' | 'hierarchy' | 'relationship' | 'matrix' | 'pyramid'; layout: string; // e.g., 'BasicBlockList', 'BasicProcess', 'OrganizationChart', 'BasicCycle', 'BasicMatrix' position: { x: number | string; y: number | string }; size?: { width: number | string; height: number | string }; items: Array<{ text: string; level?: number; // For hierarchies (0=top, 1=child, 2=grandchild) children?: string[]; // Related items for relationship diagrams }>; colorScheme?: 'colorful' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6'; style?: '3D' | 'flat' | 'cartoon' | 'outline' | 'filled'; }; outputPath?: string; } /** * Insert SVG icons from Microsoft's icon library */ export interface PPTInsertIconsArgs { filename: string; slideNumber: number; icons: Array<{ name: string; // Icon name or ID from Microsoft icon library category?: 'business' | 'technology' | 'education' | 'analytics' | 'communication' | 'office'; position: { x: number | string; y: number | string }; size?: { width: number | string; height: number | string }; color?: string; // Recolor icon rotation?: number; // Degrees }>; outputPath?: string; } /** * Insert 3D models into presentations */ export interface PPTInsert3DModelArgs { filename: string; slideNumber: number; models: Array<{ path: string; // Path to .glb or .fbx file position: { x: number | string; y: number | string }; size?: { width: number | string; height: number | string }; rotation?: { x: number; y: number; z: number }; // Rotation in degrees on each axis animation?: { type: 'turntable' | 'swing' | 'jump' | 'none'; loop?: boolean; duration?: number; // Seconds }; altText?: string; }>; outputPath?: string; } /** * Create Zoom links - Summary Zoom, Slide Zoom, or Section Zoom */ export interface PPTZoomArgs { filename: string; slideNumber: number; zooms: Array<{ type: 'summary' | 'slide' | 'section'; targetSlides?: number[]; // For summary zoom - slides to include targetSlide?: number; // For slide zoom - specific slide targetSection?: string; // For section zoom - section name position: { x: number | string; y: number | string }; size?: { width: number | string; height: number | string }; showReturnToZoom?: boolean; // Show return button useBackground?: boolean; // Use slide background as zoom preview }>; outputPath?: string; } /** * Configure screen recording and audio narration settings */ export interface PPTRecordingArgs { filename: string; recording: { type: 'screen' | 'audio' | 'both'; slides?: number[]; // Slides to record (empty = all slides) includeNarration?: boolean; includeTimings?: boolean; // Save slide timings includeInkAnnotations?: boolean; // Save pen/highlighter marks quality?: 'low' | 'medium' | 'high' | 'HD'; screenArea?: 'fullScreen' | 'window' | 'custom'; customArea?: { x: number; y: number; width: number; height: number }; }; outputPath?: string; } /** * Embed live web page in a slide */ export interface PPTLiveWebArgs { filename: string; slideNumber: number; webPages: Array<{ url: string; position: { x: number | string; y: number | string }; size: { width: number | string; height: number | string }; refreshInterval?: number; // Seconds between refreshes (0 = no auto-refresh) allowInteraction?: boolean; // Allow clicking links in presentation mode }>; outputPath?: string; } /** * Apply PowerPoint Designer suggestions (metadata only - actual AI suggestions require PowerPoint) */ export interface PPTDesignerArgs { filename: string; slideNumber?: number; // If not provided, applies to all slides preferences?: { style?: 'modern' | 'classic' | 'dynamic' | 'minimal'; layout?: 'auto' | 'imageLeft' | 'imageRight' | 'imageBackground' | 'textOnly'; colorPalette?: string[]; // Preferred colors }; outputPath?: string; } /** * Add comments and @mentions for collaboration */ export interface PPTCollaborationArgs { filename: string; comments: Array<{ slideNumber: number; text: string; author?: string; position?: { x: number; y: number }; // Position on slide (optional) mentions?: string[]; // Email addresses to mention with @ resolved?: boolean; replies?: Array<{ text: string; author?: string; }>; }>; outputPath?: string; } /** * Configure Presenter Coach rehearsal settings (metadata only) */ export interface PPTPresenterCoachArgs { filename: string; settings: { enableFeedback?: boolean; checkPacing?: boolean; // Detect if speaking too fast/slow checkFillerWords?: boolean; // Detect "um", "uh", "like", etc. checkProfanity?: boolean; checkCulturalSensitivity?: boolean; checkOriginalPhrases?: boolean; // Suggest rewording clichés checkReadingFromSlide?: boolean; // Detect reading verbatim targetPace?: number; // Words per minute }; outputPath?: string; } /** * Configure live subtitles and captions */ export interface PPTSubtitlesArgs { filename: string; subtitles: { enable: boolean; language?: string; // ISO language code like 'en', 'es', 'fr', 'de', 'ja', 'zh' position?: 'top' | 'bottom' | 'overlay'; fontSize?: 'small' | 'medium' | 'large'; backgroundColor?: string; textColor?: string; spokenLanguage?: string; // Language you'll speak (for translation) translationLanguages?: string[]; // Additional languages to display showTimestamps?: boolean; }; outputPath?: string; } /** * Add digital ink drawings and annotations */ export interface PPTInkAnnotationsArgs { filename: string; slideNumber: number; annotations: Array<{ type: 'pen' | 'highlighter' | 'eraser'; color?: string; thickness?: number; // 1-10 points: Array<{ x: number; y: number }>; // Drawing path pressure?: number[]; // Optional pressure sensitivity (0-1) for each point }>; outputPath?: string; } /** * Configure alignment grids and guides for precise object positioning */ export interface PPTGridGuidesArgs { filename: string; slideNumber?: number; // If not provided, applies to master slide grid?: { show: boolean; snapToGrid?: boolean; spacing?: number; // Grid spacing in inches }; guides?: { vertical?: number[]; // Vertical guide positions (in inches from left) horizontal?: number[]; // Horizontal guide positions (in inches from top) showGuides?: boolean; snapToGuides?: boolean; }; smartGuides?: boolean; // Show alignment guides when moving objects outputPath?: string; } /** * Create custom slide shows for different audiences */ export interface PPTCustomShowArgs { filename: string; shows: Array<{ name: string; slides: number[]; // Slide numbers to include in custom show description?: string; }>; outputPath?: string; } /** * Manage animation timing and order via Animation Pane */ export interface PPTAnimationPaneArgs { filename: string; slideNumber: number; animations: Array<{ objectId?: string; // Target object (shape, text, image, etc.) effect: string; // Animation effect name trigger?: 'onClick' | 'withPrevious' | 'afterPrevious' | 'onPageClick'; duration?: number; // Seconds delay?: number; // Seconds order?: number; // Animation order (1, 2, 3...) repeat?: number | 'untilNextClick' | 'untilEndOfSlide'; rewind?: boolean; // Rewind when done playing }>; outputPath?: string; } /** * Advanced Slide Master customization - fonts, colors, effects, placeholders */ export interface PPTSlideMasterAdvancedArgs { filename: string; master: { name?: string; theme?: { fonts?: { heading?: string; // Font for headings body?: string; // Font for body text }; colors?: { background1?: string; background2?: string; text1?: string; text2?: string; accent1?: string; accent2?: string; accent3?: string; accent4?: string; accent5?: string; accent6?: string; hyperlink?: string; followedHyperlink?: string; }; effects?: { shadow?: boolean; reflection?: boolean; glow?: boolean; softEdges?: boolean; threeDFormat?: boolean; }; }; placeholders?: Array<{ type: 'title' | 'body' | 'footer' | 'slideNumber' | 'date' | 'subtitle' | 'picture' | 'chart' | 'table' | 'media'; position: { x: number | string; y: number | string }; size: { width: number | string; height: number | string }; defaultText?: string; formatting?: { fontName?: string; fontSize?: number; bold?: boolean; italic?: boolean; color?: string; alignment?: 'left' | 'center' | 'right' | 'justify'; }; }>; background?: { type: 'solid' | 'gradient' | 'image' | 'pattern'; color?: string; gradient?: { colors: string[]; angle?: number; }; imagePath?: string; }; }; outputPath?: string; } /** * Apply or customize presentation themes */ export interface PPTThemeArgs { filename: string; theme: { name?: string; // Built-in theme name like 'Office Theme', 'Facet', 'Ion', 'Retrospect' customThemePath?: string; // Path to .thmx file applyToSlides?: number[]; // Specific slides (empty = all slides) variants?: 'variant1' | 'variant2' | 'variant3' | 'variant4'; // Theme color variants customizeColors?: { accent1?: string; accent2?: string; accent3?: string; accent4?: string; accent5?: string; accent6?: string; }; customizeFonts?: { heading?: string; body?: string; }; }; outputPath?: string; } /** * Save presentation as a template with placeholders */ export interface PPTTemplateArgs { filename: string; template: { title: string; description?: string; category?: 'business' | 'education' | 'marketing' | 'report' | 'creative' | 'custom'; placeholders?: Array<{ slideNumber: number; type: 'text' | 'image' | 'chart' | 'table' | 'video'; label: string; // e.g., "Insert Company Logo", "Add Sales Data" position: { x: number | string; y: number | string }; size?: { width: number | string; height: number | string }; instructions?: string; // Help text for template users }>; protectedElements?: Array<{ slideNumber: number; objectId: string; // Element to protect from editing }>; }; outputPath?: string; // Saves as .potx file } // ============================================================================ // Outlook v4.0 Tool Arguments - Phase 2 & 3 for 100% Coverage // ============================================================================ /** * Full IMAP email read with attachments, headers, and metadata */ export interface OutlookReadFullEmailArgs { messageIds: string[]; // Email message IDs to retrieve folder?: string; // Default: "INBOX" includeAttachments?: boolean; includeHeaders?: boolean; includeRawContent?: boolean; // Include raw MIME content markAsRead?: boolean; imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; outputPath?: string; } /** * Delete emails via IMAP */ export interface OutlookDeleteEmailArgs { messageIds: string[]; folder?: string; // Default: "INBOX" permanent?: boolean; // true = expunge immediately, false = mark for deletion imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } /** * Move emails between IMAP folders */ export interface OutlookMoveEmailArgs { messageIds: string[]; fromFolder?: string; // Default: "INBOX" toFolder: string; // Destination folder createFolder?: boolean; // Create destination if it doesn't exist imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } /** * Create IMAP folder structure */ export interface OutlookCreateFolderArgs { folderPath: string; // e.g., "Projects/2024/Q1" for nested folders parent?: string; // Parent folder (empty = root) imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } /** * Access shared mailboxes and delegate accounts */ export interface OutlookSharedMailboxArgs { sharedMailbox: string; // Email address of shared mailbox operation: 'list' | 'send' | 'read' | 'move' | 'delete'; folder?: string; messageIds?: string[]; emailData?: OutlookSendEmailArgs; // For sending from shared mailbox imapConfig?: { host: string; port: number; user: string; // Delegate user credentials password: string; tls?: boolean; sharedNamespace?: string; // IMAP namespace for shared folders }; outputPath?: string; } /** * Grant delegate permissions to other users */ export interface OutlookDelegateAccessArgs { delegateEmail: string; permissions: { calendar?: 'none' | 'reviewer' | 'author' | 'editor'; // View, create, edit calendar tasks?: 'none' | 'reviewer' | 'author' | 'editor'; inbox?: 'none' | 'reviewer' | 'author' | 'editor'; contacts?: 'none' | 'reviewer' | 'author' | 'editor'; notes?: 'none' | 'reviewer' | 'author' | 'editor'; journal?: 'none' | 'reviewer' | 'author' | 'editor'; }; receiveNotifications?: boolean; // Notify delegate of meeting requests privateItemsAccess?: boolean; // Allow access to private items outputPath?: string; } /** * Set automatic replies / out of office / vacation responder */ export interface OutlookOutOfOfficeArgs { enable: boolean; startTime?: string; // ISO datetime or "immediate" endTime?: string; // ISO datetime message: { internal: string; // Message for internal senders external?: string; // Message for external senders html?: boolean; }; externalAudience?: 'none' | 'contacts' | 'all'; // Who receives external message declineNewMeetings?: boolean; declineMessage?: string; imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; outputPath?: string; } /** * Create and edit Outlook notes */ export interface OutlookNotesArgs { notes: Array<{ subject?: string; body: string; color?: 'yellow' | 'blue' | 'green' | 'pink' | 'white'; category?: string; createdTime?: string; }>; outputPath?: string; } /** * Create journal entries for activity tracking */ export interface OutlookJournalArgs { entries: Array<{ subject: string; entryType: 'phoneCall' | 'email' | 'meeting' | 'task' | 'document' | 'note' | 'custom'; startTime: string; duration?: number; // Minutes description?: string; contacts?: string[]; // Related contact names categories?: string[]; company?: string; }>; outputPath?: string; } /** * Subscribe to and manage RSS feeds */ export interface OutlookRSSFeedArgs { operation: 'add' | 'remove' | 'list' | 'update'; feeds?: Array<{ url: string; name?: string; folder?: string; // Folder to store feed items updateInterval?: number; // Minutes between updates maxItems?: number; // Max items to keep }>; outputPath?: string; } /** * Manage PST/OST data files (metadata operations only) */ export interface OutlookDataFileArgs { operation: 'create' | 'open' | 'close' | 'compact' | 'info'; filePath?: string; // Path to .pst or .ost file fileType?: 'pst' | 'ost'; password?: string; // For encrypted PST files displayName?: string; // Name shown in Outlook deliverToThisFile?: boolean; // Set as default delivery location outputPath?: string; } /** * Create Quick Steps for email automation */ export interface OutlookQuickStepsArgs { steps: Array<{ name: string; description?: string; actions: Array<{ type: 'move' | 'categorize' | 'flag' | 'forward' | 'reply' | 'delete' | 'markRead' | 'markUnread'; folder?: string; // For move category?: string; // For categorize flagType?: 'today' | 'tomorrow' | 'thisWeek' | 'nextWeek' | 'noDate' | 'complete'; forwardTo?: string[]; // For forward replyTemplate?: string; // For reply }>; shortcut?: string; // Keyboard shortcut like "Ctrl+Shift+1" }>; outputPath?: string; } /** * Configure conversation view settings */ export interface OutlookConversationViewArgs { enable: boolean; settings?: { showMessagesFromOtherFolders?: boolean; // Show all messages in conversation showSenders?: boolean; // Show sender names above subject alwaysExpand?: boolean; // Always expand conversations useClassicIndentation?: boolean; highlightUnread?: boolean; }; folders?: string[]; // Specific folders to apply settings to outputPath?: string; } /** * Clean up redundant messages in conversations */ export interface OutlookCleanupArgs { folder?: string; // Folder to clean up (default: current folder) scope: 'conversation' | 'folderAndSubfolders' | 'selectedMessages'; messageIds?: string[]; // For selectedMessages scope deleteRedundant?: boolean; // Delete vs move to Deleted Items imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } /** * Ignore conversation threads */ export interface OutlookIgnoreConversationArgs { conversationIds: string[]; // Conversation IDs to ignore restore?: boolean; // Restore ignored conversations deleteExisting?: boolean; // Delete existing messages in conversation imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } /** * Flag emails with colors and due dates */ export interface OutlookFlagEmailArgs { messageIds: string[]; flag: { type: 'today' | 'tomorrow' | 'thisWeek' | 'nextWeek' | 'noDate' | 'complete' | 'clear'; dueDate?: string; // ISO date startDate?: string; // ISO date reminderTime?: string; // ISO datetime color?: 'red' | 'blue' | 'yellow' | 'green' | 'orange' | 'purple'; }; imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; } /** * Create and apply color categories */ export interface OutlookCategoryArgs { operation: 'create' | 'apply' | 'remove' | 'list'; categories?: Array<{ name: string; color: 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple' | 'pink' | 'brown' | 'gray'; shortcut?: string; // Keyboard shortcut }>; messageIds?: string[]; // For apply/remove operations categoryNames?: string[]; // Category names to apply imapConfig?: { host: string; port: number; user: string; password: string; tls?: boolean; }; outputPath?: string; } /** * Create HTML email signatures with images and formatting */ export interface OutlookSignatureArgs { signatures: Array<{ name: string; html: string; // HTML content with inline CSS text?: string; // Plain text version images?: Array<{ filename: string; // Image filename referenced in HTML path: string; // Path to image file cid?: string; // Content ID for embedding }>; defaultFor?: { newMessages?: boolean; replies?: boolean; }; }>; outputPath?: string; } /** * Manage autocomplete nickname cache */ export interface OutlookAutoCompleteArgs { operation: 'list' | 'add' | 'remove' | 'clear' | 'export' | 'import'; entries?: Array<{ name: string; email: string; lastUsed?: string; // ISO datetime }>; filePath?: string; // For export/import (.nk2 file) outputPath?: string; } /** * Advanced mail merge with filters and conditional content */ export interface OutlookMailMergeAdvancedArgs { templatePath?: string; // Path to email template template?: { subject: string; body: string; // HTML or text with placeholders like {{firstName}} html?: boolean; }; dataSource: Record<string, string | number>[]; // CSV data or JSON array filters?: Array<{ field: string; operator: 'equals' | 'notEquals' | 'contains' | 'greaterThan' | 'lessThan' | 'startsWith' | 'endsWith'; value: string | number; }>; conditionalContent?: Array<{ condition: string; // e.g., "{{tier}} === 'premium'" content: string; // Content to insert if true }>; attachments?: Array<{ filename: string; path?: string; conditional?: string; // Only attach if condition is true }>; sendOptions?: { batchSize?: number; // Emails per batch delayBetweenBatches?: number; // Seconds testMode?: boolean; // Send to test address instead testAddress?: string; }; smtpConfig?: OutlookSMTPConfig; outputPath?: string; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/consigcody94/office-whisperer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server