UNPKG

@hongkongkiwi/clockify-master-mcp

Version:

Clockify Master MCP - The most comprehensive Model Context Protocol server for Clockify time tracking with full API integration, advanced filtering, and enterprise features

241 lines 5.68 kB
import { z } from 'zod'; export interface ClockifyUser { id: string; email: string; name: string; activeWorkspace: string; defaultWorkspace: string; status: string; profilePicture?: string; settings?: { weekStart: string; timeZone: string; timeFormat: string; dateFormat: string; }; } export interface ClockifyWorkspace { id: string; name: string; hourlyRate?: { amount: number; currency: string; }; memberships?: Array<{ userId: string; hourlyRate?: { amount: number; currency: string; }; targetId?: string; membershipType: string; membershipStatus: string; }>; workspaceSettings?: { timeRoundingInReports: boolean; onlyAdminsSeeBillableRates: boolean; onlyAdminsCreateProject: boolean; onlyAdminsSeeDashboard: boolean; defaultBillableProjects: boolean; lockTimeEntries?: string; round?: { round: string; minutes: string; }; }; imageUrl?: string; featureSubscriptionType?: string; } export interface ClockifyProject { id: string; name: string; clientId?: string; clientName?: string; workspaceId: string; billable: boolean; hourlyRate?: { amount: number; currency: string; }; memberships?: Array<{ userId: string; hourlyRate?: { amount: number; currency: string; }; targetId: string; membershipType: string; membershipStatus: string; }>; color: string; estimate?: { estimate: string; type: string; }; archived: boolean; duration?: string; note?: string; template: boolean; public: boolean; costRate?: { amount: number; currency: string; }; budgetEstimate?: { estimate: number; type: string; resetOption?: string; }; timeEstimate?: { estimate: string; type: string; resetOption?: string; active: boolean; }; } export interface ClockifyClient { id: string; name: string; workspaceId: string; archived: boolean; address?: string; note?: string; email?: string; } export interface ClockifyTag { id: string; name: string; workspaceId: string; archived: boolean; } export interface ClockifyTask { id: string; name: string; projectId: string; assigneeIds?: string[]; assigneeId?: string; estimate?: string; status: string; duration?: string; billable?: boolean; hourlyRate?: { amount: number; currency: string; }; costRate?: { amount: number; currency: string; }; } export interface ClockifyTimeEntry { id: string; description: string; tagIds?: string[]; userId: string; billable: boolean; taskId?: string; projectId?: string; timeInterval: { start: string; end?: string; duration?: string; }; workspaceId: string; isLocked: boolean; customFieldValues?: Array<{ customFieldId: string; timeEntryId?: string; value: string | number; }>; type?: string; kioskId?: string; } export interface ClockifyTimeEntryRequest { start: string; billable?: boolean; description?: string; projectId?: string; taskId?: string; end?: string; tagIds?: string[]; customFields?: Array<{ customFieldId: string; value: string | number; }>; } export interface ClockifyReportRequest { dateRangeStart: string; dateRangeEnd: string; summaryFilter?: { groups?: string[]; sortColumn?: string; }; sortOrder?: 'ASCENDING' | 'DESCENDING'; exportType?: string; rounding?: boolean; amountShown?: 'HIDE_AMOUNT' | 'EARNED' | 'COST' | 'PROFIT'; users?: { ids?: string[]; contains?: 'CONTAINS' | 'DOES_NOT_CONTAIN'; status?: 'ALL' | 'ACTIVE' | 'INACTIVE'; }; clients?: { ids?: string[]; contains?: 'CONTAINS' | 'DOES_NOT_CONTAIN'; status?: 'ALL' | 'ACTIVE' | 'ARCHIVED'; }; projects?: { ids?: string[]; contains?: 'CONTAINS' | 'DOES_NOT_CONTAIN'; status?: 'ALL' | 'ACTIVE' | 'ARCHIVED'; }; tasks?: { ids?: string[]; contains?: 'CONTAINS' | 'DOES_NOT_CONTAIN'; status?: 'ALL' | 'ACTIVE' | 'DONE'; }; tags?: { ids?: string[]; contains?: 'CONTAINS' | 'DOES_NOT_CONTAIN'; status?: 'ALL' | 'ACTIVE' | 'ARCHIVED'; }; billable?: 'BILLABLE' | 'NON_BILLABLE' | 'BOTH'; description?: string; withoutDescription?: boolean; userGroups?: string[]; } export interface ClockifyReportResponse { totals?: Array<{ totalTime: string; totalBillableTime: string; entriesCount: number; totalAmount: number; }>; groupOne?: Array<{ duration: string; amount?: number; name: string; _id: string; }>; groupTwo?: Array<{ duration: string; amount?: number; name: string; _id: string; groupOne: string; }>; } export interface McpToolConfig<T = any> { name: string; description: string; parameters?: z.ZodSchema<T>; handler: (params: T) => Promise<McpResponse>; } export interface McpResponse { content: Array<{ type: 'text' | 'resource'; text?: string; resource?: any; }>; } //# sourceMappingURL=index.d.ts.map