UNPKG

@clicktime/mcp-server

Version:

ClickTime MCP Tech Demo for AI agents to interact with ClickTime API

131 lines (130 loc) 2.74 kB
export interface ClickTimeConfig { apiToken: string; baseUrl: string; readOnly?: boolean; } export interface TimeEntry { ID?: string; Date: string; Hours: number; JobID: string; TaskID: string; Comment?: string; UserID?: string; Job?: { ID: string; Name: string; Client?: { Name: string; }; }; Task?: { ID: string; Name: string; }; } export interface TimeOffRequest { ID?: string; TimeOffTypeID: string; Notes?: string; Dates: string[] | { Date: string; Hours: number; }[]; Status?: string; StartDate?: string; EndDate?: string; Actions?: any[]; ApprovalByUser?: User; ApprovalByUserID?: string; CreatedDate?: string; History?: { ActionByUserID: string; ActionByUserName: string; Comment?: string; Date: string; LegacyID?: string; Status: string; }[]; LegacyID?: string; RequestedByUser?: User; RequestedByUserID?: string; TimeOffType?: TimeOffType; } export interface TimeOff { ID?: string; Date: string; Hours: number; TimeOffTypeID: string; Notes?: string; DCAAExplanation?: string; TimeOffRequestID?: string; } export interface Job { ID: string; Name: string; Client?: { ID: string; Name: string; }; IsActive: boolean; Description?: string; } export interface Task { ID: string; Name: string; IsActive: boolean; Description?: string; } export interface TimeOffType { ID: string; Name: string; CurrentBalance?: number; AccrualRate?: number; Unit?: string; RequiresApproval?: boolean; } export interface User { ID: string; FirstName: string; LastName: string; Email: string; IsActive: boolean; Name?: string; } export interface ClickTimeAPIResponse<T = any> { data: T; success: boolean; message?: string; errors?: string[]; } export interface TimeEntryParams { StartDate?: string; EndDate?: string; JobID?: string; TaskID?: string; limit?: number; } export interface CreateTimeEntryData { Date: string; Hours: number; JobID: string; TaskID: string; Comment?: string; } export interface Timesheet { ID: string; StartDate: string; EndDate: string; Status: 'Open' | 'Submitted' | 'Approved' | 'Rejected' | 'Locked'; HasBeenSubmitted: boolean; SubmittedDate?: string; SubmittedBy?: string; Title?: string; } export interface SubmissionActionRequest { Action: 'Submit' | 'UndoSubmit'; Comment?: string; CCNotifications?: string[]; HasAttestation?: boolean; }