Skip to main content
Glama
index.ts2.14 kB
import dotenv from "dotenv"; dotenv.config(); import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { api, SERVER_CONFIG } from "./config/api"; import { createEntryTool, deleteEntryTool, editEntryTool, listEntriesTool, } from "./tools/entries"; import { findProjectTool } from "./tools/projects"; import { getCurrentUserTool } from "./tools/users"; import { findWorkspacesTool } from "./tools/workspaces"; import { z } from "zod"; import { argv } from "process"; export const configSchema = z.object({ clockifyApiToken: z.string().describe("Clockify API Token"), }); const server = new McpServer(SERVER_CONFIG); export default function createStatelessServer({ config, }: { config: z.infer<typeof configSchema>; }) { api.defaults.headers.Authorization = `Bearer ${config.clockifyApiToken}`; server.tool( createEntryTool.name, createEntryTool.description, createEntryTool.parameters, createEntryTool.handler ); server.tool( findProjectTool.name, findProjectTool.description, findProjectTool.parameters, findProjectTool.handler ); server.tool( listEntriesTool.name, listEntriesTool.description, listEntriesTool.parameters, listEntriesTool.handler ); server.tool( getCurrentUserTool.name, getCurrentUserTool.description, getCurrentUserTool.handler ); server.tool( findWorkspacesTool.name, findWorkspacesTool.description, findWorkspacesTool.handler ); server.tool( deleteEntryTool.name, deleteEntryTool.description, deleteEntryTool.parameters, deleteEntryTool.handler ); server.tool( editEntryTool.name, editEntryTool.description, editEntryTool.parameters, editEntryTool.handler ); return server.server; } (() => { if (argv.find((flag) => flag === "--local")) { createStatelessServer({ config: { clockifyApiToken: process.env.CLOCKIFY_API_TOKEN as string, }, }); const transport = new StdioServerTransport(); server.connect(transport); } })();

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/https-eduardo/clockify-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server