Clockify MCP Server

Clockify MCP Server

An MCP server that lets LLMs interact with your Clockify workspace for time-tracking automation and reporting, enabling natural language logging of time entries, querying entries, and generating reports.

Category
Visit Server

README

Build Status Docker Image

<a href="https://glama.ai/mcp/servers/@wwwslinger/clockify-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@wwwslinger/clockify-mcp/badge" alt="Clockify MCP server" /> </a>

Clockify MCP Server

An MCP server that lets LLMs interact with your Clockify workspace for time-tracking automation and reporting. Use natural language to log time, query entries, and generate reports.

<p align="center"> <img src="assets/clockify_example.png" alt="Clockify Example" width="600" /> </p>

Features

Time Entry Management

  • addTimeEntry — Add time entries to a project, or start a running timer (omit end time)
  • updateTimeEntry — Update an existing time entry (description, project, times, tags, billable)
  • deleteTimeEntry — Delete a time entry by ID

Querying Time Entries

  • getTimeEntries — List time entries for the authenticated user (with date, project, and description filters)
  • getUserTimeEntries — List time entries for any user by their ID
  • getUserTimeEntriesByName — List time entries for a user by name (case-insensitive partial match)

Reports

  • getSummaryReport — Summary of hours grouped by user, project, client, task, tag, or date (Clockify Reports API)
  • getDetailedReport — Individual time entries with full metadata for a date range

Workspace Data

  • listProjects — List projects with filtering by name, archived status, and billable status
  • listUsers — List workspace users with filtering by name, email, and status
  • listTags — List all tags in the workspace
  • listClients — List all clients in the workspace

Setup

1. Get a Clockify API Key

  1. Log in to your Clockify account.
  2. Click your profile icon (top right) → Profile.
  3. Scroll to the API section and click Manage API keys.

<p align="center"> <img src="assets/Clockify-ManageAPIKeys.png" alt="Clockify Manage API Keys" width="600" /> </p>

  1. Click Generate to create a new API key, or copy your existing one.

<p align="center"> <img src="assets/Clockify-GenerateAPIKey.png" alt="Clockify Generate API Key" width="400" /> </p>

2. Configure Your LLM Client

Kiro CLI (local)

Clone the repo and add the following to your project's .kiro/settings/mcp.json (or your global ~/.kiro/settings/mcp.json):

{
  "mcpServers": {
    "clockify": {
      "command": "/path/to/node",
      "args": ["/path/to/clockify-mcp/build/index.js"],
      "env": {
        "CLOCKIFY_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}

Or docker pull ghcr.io/<REPO_USER>/clockify-mcp:latest and use

{
  "mcpServers": {
    "clockify": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "CLOCKIFY_API_KEY=<YOUR_API_KEY>",
        "ghcr.io/<REPO_USER>/clockify-mcp:latest"  
      ]
    }
  }
}

Cursor / Claude Desktop (Docker)

Add to your settings.json:

{
  "mcpServers": {
    "clockify-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "CLOCKIFY_API_KEY=<YOUR_API_KEY>",
        "ghcr.io/<REPO_USER>/clockify-mcp:latest"
      ]
    }
  }
}

Usage Tips

Project Caching (Recommended)

Tell your LLM:

"Create a cache of the list of Clockify projects and only refresh when a project isn't found, I request a refresh, or 24 hours has passed since it was refreshed."

This avoids an API call on every time entry and keeps interactions fast. The LLM will store something like this and use it for instant project ID lookups:

| Project Name                          | ID                       | Client         | Billable |
|---------------------------------------|--------------------------|----------------|----------|
| Acme - Website Redesign (Phase 2)     | 64a1b2c3d4e5f6a7b8c9d0e1 | Acme Corp      | Yes      |
| Presales-Engineering                  | 64b2c3d4e5f6a7b8c9d0e1f2 | Internal       | No       |
| Widget Co - Data Migration            | 64c3d4e5f6a7b8c9d0e1f2a3 | Widget Co      | Yes      |
| Internal Training                     | 64d4e5f6a7b8c9d0e1f2a3b4 | Internal       | No       |
| Globex - Mobile App                   | 64e5f6a7b8c9d0e1f2a3b4c5 | Globex Inc     | Yes      |
| Leave/PTO/Sick Leave                  | 64f6a7b8c9d0e1f2a3b4c5d6 | Internal       | No       |

Natural Language Examples

You can use partial project names — the LLM will fuzzy-match against the cached list:

Single entry:

Add a Clockify time entry: 9-10am, July 28, 2026; Acme; "Sprint review and deployment fixes"

Short form (partial project name):

Clockify: 8-8:30a on 2026-07-28 for Presales as "SOW Review"

Batch entries:

Add the following time entries to Clockify for July 28, 2026:
Acme: 11a-12:30p "Sprint review and database connections"
Widget Co: 9:30-11a "Data migration planning; schema review"
Presales: 12:30p-5p "Customer demo prep; proposal writing"

With semicolons for multiple activities:

Clockify time entry: 12-5p, July 27; Presales; "Sales call; SOW draft; competitor research"

Multiple entries, same project, out of order:

Add to Clockify for Presales on July 29:
8-9a "Morning standup and sprint planning"
2-4p "Architecture review with customer"
11a-12p "SOW revisions"

Reports:

Show me a summary of hours by project for last week.
How many hours did I log to Globex in July?

Docker Image

  • Image: ghcr.io/<REPO_USER>/clockify-mcp:latest
  • Pull:
    docker pull ghcr.io/<REPO_USER>/clockify-mcp:latest
    

Published automatically via GitHub Actions on every push to main.

Development

npm install
npm run build

The build output goes to build/index.js which is the entry point for the MCP server.

License

MIT — see LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured