@timesheet/mcp
Version:
Model Context Protocol server for Timesheet API
92 lines • 2.87 kB
TypeScript
#!/usr/bin/env node
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
/**
* Options for creating a TimesheetMCPServer instance
*/
export interface TimesheetMCPServerOptions {
/**
* OAuth 2.1 access token for authentication
* Takes precedence over environment API key when provided
*/
oauthToken?: string;
}
export declare class TimesheetMCPServer {
private server;
private client;
private oauthToken?;
/**
* Create a new TimesheetMCPServer instance
* @param options - Optional configuration including OAuth token
*/
constructor(options?: TimesheetMCPServerOptions);
/**
* Get the MCP server instance (for HTTP server)
*/
getServer(): Server;
/**
* Get the Timesheet API client
*
* Authentication priority:
* 1. OAuth token passed to constructor (from ChatGPT/HTTP Bearer header)
* 2. TIMESHEET_API_TOKEN environment variable (for CLI usage)
*/
private getClient;
private setupHandlers;
private handleTimerStart;
private handleTimerStop;
private handleTimerPause;
private handleTimerResume;
/**
* Helper to fetch profile and settings data for all widgets
*/
private getProfileAndSettings;
/**
* Helper to format timer data consistently for all timer operations
* Uses nested structure (timer.task.project) only
*/
private formatCompleteTimerData;
private handleTimerStatus;
private handleTimerUpdate;
private handleAddNote;
private handleAddExpense;
private handleAddPause;
private handleTeamList;
private handleProjectList;
private handleProjectCreate;
private handleProjectUpdate;
private handleProjectDelete;
private handleProjectGet;
private handleTaskList;
private handleTaskCreate;
private handleTaskUpdate;
private handleTaskDelete;
private handleTaskGet;
private handleAuthConfigure;
private handleReportDocumentGet;
private handleReportDocumentPdf;
private handleReportDocumentXml;
private handleReportTaskGet;
private handleReportTaskPdf;
private handleReportExpenseGet;
private handleReportExpensePdf;
private handleReportNoteGet;
private handleReportNotePdf;
private handleExportGenerate;
private handleExportSend;
private handleExportFromTemplate;
private handleExportFields;
private handleExportReportTypes;
private handleExportTemplateList;
private handleExportTemplateGet;
private handleExportTemplateCreate;
private handleExportTemplateUpdate;
private handleExportTemplateDelete;
private handleStatisticsGet;
private computeStatistics;
private handleApiError;
/**
* Run server with stdio transport (for Claude Desktop)
*/
runStdio(): Promise<void>;
}
//# sourceMappingURL=index.d.ts.map