UNPKG

@timesheet/mcp

Version:

Model Context Protocol server for Timesheet API

92 lines 2.87 kB
#!/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