@clicktime/mcp-server
Version:
ClickTime MCP Tech Demo for AI agents to interact with ClickTime API
44 lines (43 loc) • 2.66 kB
TypeScript
import { ClickTimeConfig, TimeEntry, TimeOffRequest, TimeOff, Job, Task, TimeOffType, User, TimeEntryParams, CreateTimeEntryData, SubmissionActionRequest, Timesheet } from './types.js';
import { CreateExpenseItemData, CreateExpenseSheetData, ExpenseItem, ExpenseItemParams, ExpenseSheet, ExpenseSheetParams, ExpenseType, PaymentType } from './expense/expense-types.js';
export declare class ClickTimeAPIClient {
private client;
private readOnly;
constructor(config: ClickTimeConfig);
/** Centralised mapping from Axios errors → friendly messages. */
private static mapAxiosError;
private makeRequest;
getMyTimeEntries(params?: TimeEntryParams): Promise<TimeEntry[]>;
createTimeEntry(data: CreateTimeEntryData): Promise<TimeEntry>;
updateTimeEntry(entryId: string, data: Partial<CreateTimeEntryData>): Promise<TimeEntry>;
deleteTimeEntry(entryId: string): Promise<void>;
getMyJobs(): Promise<Job[]>;
getJobById(jobId: string): Promise<Job>;
getMyTasks(): Promise<Task[]>;
getTaskById(taskId: string): Promise<Task>;
getMyTimeOffRequests(params?: any): Promise<TimeOffRequest[]>;
getTimeOffRequestById(requestId: string): Promise<TimeOffRequest>;
getTimeOffRequestActions(requestId: string): Promise<{
Action: string;
}[]>;
performTimeOffRequestAction(requestId: string, action: 'Cancel', comment?: string): Promise<TimeOffRequest>;
createTimeOffRequest(data: TimeOffRequest): Promise<TimeOffRequest>;
getMyTimeOff(params?: any): Promise<TimeOff[]>;
createTimeOff(data: TimeOff): Promise<TimeOff>;
deleteTimeOff(timeOffId: string, dcaaExplanation?: string): Promise<void>;
getTimeOffTypes(): Promise<TimeOffType[]>;
getTimeOffBalance(typeId: string): Promise<TimeOffType>;
getMyExpenseTypes(): Promise<ExpenseType[]>;
getExpenseTypeById(expenseTypeId: string): Promise<ExpenseType>;
getMyPaymentTypes(): Promise<PaymentType[]>;
getPaymentTypeById(paymentTypeId: string): Promise<PaymentType>;
getMyExpenseSheets(params?: ExpenseSheetParams): Promise<ExpenseSheet[]>;
createExpenseSheet(data: CreateExpenseSheetData): Promise<ExpenseSheet>;
getMyExpenseItems(params?: ExpenseItemParams): Promise<ExpenseItem[]>;
createExpenseItem(data: CreateExpenseItemData): Promise<ExpenseItem>;
getMe(): Promise<User>;
healthCheck(): Promise<boolean>;
getMyTimesheets(params?: any): Promise<Timesheet[]>;
submitTimesheetById(timesheetId: string, actionData: SubmissionActionRequest): Promise<Timesheet>;
submitExpenseSheet(expenseSheetId: string, actionData: SubmissionActionRequest): Promise<ExpenseSheet>;
}