UNPKG

@clicktime/mcp-server

Version:

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

44 lines (43 loc) 2.66 kB
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>; }