UNPKG

omnifocus-mcp

Version:

Model Context Protocol (MCP) server that integrates with OmniFocus for AI assistant interaction

90 lines (78 loc) 2.25 kB
export interface OmnifocusTask { id: string; name: string; note: string; flagged: boolean; // Status completed: boolean; completionDate: string | null; dropDate: string | null; taskStatus: string; // One of Task.Status values active: boolean; // Dates dueDate: string | null; deferDate: string | null; estimatedMinutes: number | null; // Organization tags: string[]; // Tag IDs tagNames: string[]; // Human-readable tag names parentId: string | null; containingProjectId: string | null; projectId: string | null; // Task relationships childIds: string[]; hasChildren: boolean; sequential: boolean; completedByChildren: boolean; // Recurring task information repetitionRule: string | null; // Textual representation of repetition rule isRepeating: boolean; repetitionMethod: string | null; // Fixed or due-based repetition // Attachments attachments: any[]; // FileWrapper representations linkedFileURLs: string[]; // Notifications notifications: any[]; // Task.Notification representations // Settings shouldUseFloatingTimeZone: boolean; } export interface OmnifocusDatabase { exportDate: string; tasks: OmnifocusTask[]; projects: Record<string, OmnifocusProject>; folders: Record<string, OmnifocusFolder>; tags: Record<string, OmnifocusTag>; } export interface OmnifocusProject { id: string; name: string; status: string; folderID: string | null; sequential: boolean; effectiveDueDate: string | null; effectiveDeferDate: string | null; dueDate: string | null; deferDate: string | null; completedByChildren: boolean; containsSingletonActions: boolean; note: string; tasks: string[]; // Task IDs flagged?: boolean; estimatedMinutes?: number | null; } export interface OmnifocusFolder { id: string; name: string; parentFolderID: string | null; status: string; projects: string[]; // Project IDs subfolders: string[]; // Subfolder IDs } export interface OmnifocusTag { id: string; name: string; parentTagID: string | null; active: boolean; allowsNextAction: boolean; tasks: string[]; // Task IDs }