@asanstefanski/everhour-mcp-server
Version:
Complete Everhour API integration for Model Context Protocol (MCP) with 100% endpoint coverage
85 lines • 5.15 kB
TypeScript
import { EverHourClient, EverHourProject, EverHourTask, EverHourTimeRecord, EverHourTimer, EverHourUser, EverHourSection, CreateTimeRecordParams, UpdateTimeRecordParams, CreateProjectParams, UpdateProjectParams, CreateTaskParams, UpdateTaskParams, CreateClientParams, UpdateClientParams, CreateSectionParams, UpdateSectionParams, TimerStartParams, ListParams } from '../types/everhour.js';
export declare class EverHourApiClient {
private client;
private apiKey;
private baseUrl;
constructor(apiKey: string, baseUrl?: string);
getProjects(params?: ListParams): Promise<EverHourProject[]>;
getProject(id: string): Promise<EverHourProject>;
createProject(params: CreateProjectParams): Promise<EverHourProject>;
updateProject(id: string, params: UpdateProjectParams): Promise<EverHourProject>;
deleteProject(id: string): Promise<void>;
getTasks(params?: ListParams): Promise<EverHourTask[]>;
getTask(id: string): Promise<EverHourTask>;
createTask(projectId: string, params: CreateTaskParams): Promise<EverHourTask>;
updateTask(id: string, params: UpdateTaskParams): Promise<EverHourTask>;
deleteTask(id: string): Promise<void>;
getTasksForProject(projectId: string, params?: ListParams): Promise<EverHourTask[]>;
updateTaskEstimate(id: string, estimate: number): Promise<EverHourTask>;
deleteTaskEstimate(id: string): Promise<void>;
addTimeToTask(id: string, timeParams: CreateTimeRecordParams): Promise<EverHourTimeRecord>;
updateTaskTime(id: string, timeParams: UpdateTimeRecordParams): Promise<EverHourTimeRecord>;
deleteTaskTime(id: string): Promise<void>;
getTaskTime(id: string): Promise<EverHourTimeRecord[]>;
getProjectTime(id: string): Promise<EverHourTimeRecord[]>;
getUserTime(id: number, params?: {
from?: string;
to?: string;
limit?: number;
page?: number;
}): Promise<EverHourTimeRecord[]>;
getTimeRecords(params?: ListParams): Promise<EverHourTimeRecord[]>;
createTimeRecord(params: CreateTimeRecordParams): Promise<EverHourTimeRecord>;
updateTimeRecord(id: number, params: UpdateTimeRecordParams): Promise<EverHourTimeRecord>;
deleteTimeRecord(id: number): Promise<void>;
getTimeRecord(id: number): Promise<EverHourTimeRecord>;
getCurrentTimer(): Promise<EverHourTimer | null>;
getRunningTimer(): Promise<EverHourTimer | null>;
getAllTeamTimers(): Promise<EverHourTimer[]>;
startTimer(params: TimerStartParams): Promise<EverHourTimer>;
startTimerForTask(taskId: string, comment?: string): Promise<EverHourTimer>;
stopTimer(timerId?: number): Promise<EverHourTimeRecord>;
getTimers(params?: ListParams): Promise<EverHourTimer[]>;
getClients(params?: ListParams): Promise<EverHourClient[]>;
getClient(id: number): Promise<EverHourClient>;
createClient(params: CreateClientParams): Promise<EverHourClient>;
updateClient(id: number, params: UpdateClientParams): Promise<EverHourClient>;
deleteClient(id: number): Promise<void>;
getUsers(params?: ListParams): Promise<EverHourUser[]>;
getCurrentUser(): Promise<EverHourUser>;
getTimecards(params?: ListParams): Promise<any[]>;
getTimecard(id: number): Promise<any>;
getUserTimecards(userId: number, params?: ListParams): Promise<any[]>;
updateTimecard(id: number, params: any): Promise<any>;
deleteTimecard(id: number): Promise<void>;
clockIn(userId: number, date?: string): Promise<any>;
clockOut(userId: number): Promise<any>;
getInvoices(params?: ListParams): Promise<any[]>;
getInvoice(id: number): Promise<any>;
createInvoice(params: any): Promise<any>;
updateInvoice(id: number, params: any): Promise<any>;
deleteInvoice(id: number): Promise<void>;
refreshInvoiceLineItems(id: number): Promise<any>;
updateInvoiceStatus(id: number, status: 'draft' | 'sent' | 'paid'): Promise<any>;
exportInvoice(id: number, system: 'xero' | 'quickbooks' | 'freshbooks'): Promise<any>;
getExpenses(params?: ListParams): Promise<any[]>;
createExpense(params: any): Promise<any>;
updateExpense(id: number, params: any): Promise<any>;
deleteExpense(id: number): Promise<void>;
getExpenseCategories(): Promise<any[]>;
createExpenseCategory(name: string): Promise<any>;
updateExpenseCategory(id: number, name: string): Promise<any>;
deleteExpenseCategory(id: number): Promise<void>;
createExpenseAttachment(file: any): Promise<any>;
addAttachmentToExpense(expenseId: number, attachmentId: number): Promise<any>;
getAllSections(params?: ListParams): Promise<EverHourSection[]>;
getSections(projectId: string, params?: ListParams): Promise<EverHourSection[]>;
getSection(id: string): Promise<EverHourSection>;
createSection(params: CreateSectionParams): Promise<EverHourSection>;
updateSection(id: string, params: UpdateSectionParams): Promise<EverHourSection>;
deleteSection(id: string): Promise<void>;
testConnection(): Promise<boolean>;
formatTime(seconds: number): string;
parseTimeToSeconds(timeString: string): number;
}
//# sourceMappingURL=everhour-client.d.ts.map