UNPKG

@aot-tech/clockify-mcp-server

Version:

MCP Server for Clockify time tracking integration with AI tools

42 lines (41 loc) 2.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js"); const dotenv_1 = __importDefault(require("dotenv")); const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js"); const api_1 = require("./config/api"); const projects_1 = require("./tools/projects"); const users_1 = require("./tools/users"); const reports_1 = require("./tools/reports"); dotenv_1.default.config(); const CLOCKIFY_API_TOKEN = process.env.CLOCKIFY_API_TOKEN; if (!CLOCKIFY_API_TOKEN) { console.error("❌ CLOCKIFY_API_TOKEN environment variable is required"); console.error("Please set your Clockify API token in the environment or .env file"); process.exit(1); } (0, api_1.updateApiToken)(CLOCKIFY_API_TOKEN); (0, api_1.updateReportsApiToken)(CLOCKIFY_API_TOKEN); const server = new mcp_js_1.McpServer(api_1.SERVER_CONFIG); server.tool(projects_1.listProjectsTool.name, projects_1.listProjectsTool.description, projects_1.listProjectsTool.parameters, projects_1.listProjectsTool.handler); server.tool(users_1.getCurrentUserTool.name, users_1.getCurrentUserTool.description, users_1.getCurrentUserTool.parameters, users_1.getCurrentUserTool.handler); server.tool(users_1.getAllUsersTool.name, users_1.getAllUsersTool.description, users_1.getAllUsersTool.parameters, users_1.getAllUsersTool.handler); server.tool(reports_1.getSummaryReportTool.name, reports_1.getSummaryReportTool.description, reports_1.getSummaryReportTool.parameters, reports_1.getSummaryReportTool.handler); server.tool(users_1.offboardEmployeeTool.name, users_1.offboardEmployeeTool.description, users_1.offboardEmployeeTool.parameters, users_1.offboardEmployeeTool.handler); async function main() { try { const transport = new stdio_js_1.StdioServerTransport(); await server.connect(transport); } catch (error) { console.error("❌ Failed to start Enhanced Clockify MCP server:", error); process.exit(1); } } main().catch((error) => { console.error("Server error:", error); process.exit(1); });