clockodo-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CLOCKODO_API_KEY | Yes | Your Clockodo API key | |
| CLOCKODO_API_USER | Yes | Your Clockodo email | |
| CLOCKODO_BASE_URL | No | API base URL | https://my.clockodo.com/api/ |
| CLOCKODO_MCP_HOST | No | Host address to bind to | 0.0.0.0 |
| CLOCKODO_MCP_PORT | No | Port for SSE transport | 8000 |
| CLOCKODO_MCP_ROLE | No | Set the user's role. Options: employee, team_leader, hr_analytics, admin | |
| CLOCKODO_USER_AGENT | No | Custom user agent string | clockodo-mcp/unknown |
| CLOCKODO_MCP_TRANSPORT | No | Transport protocol (stdio or sse) | stdio |
| CLOCKODO_EXTERNAL_APP_CONTACT | No | Contact info for external app header (default: API user email) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| healthA | Health check for the Clockodo MCP server. |
| list_usersA | List all users from Clockodo API. |
| list_customersB | List all customers from Clockodo API. |
| list_servicesA | List all services from Clockodo API. |
| list_projectsA | List all projects from Clockodo API. |
| get_raw_user_reportsA | Get raw user reports from Clockodo API (for debugging). Shows the actual data returned by Clockodo's /api/userreports endpoint. Args: year: Year to fetch (e.g., 2024, 2025) Returns: Raw API response with all user report data |
| get_my_clockB | Get the currently running clock for the authenticated user. |
| get_my_time_entriesA | Get time entries for the authenticated user in a given time range. Args: time_since: Start time (e.g., 2025-01-01T00:00:00Z) time_until: End time (e.g., 2025-01-01T23:59:59Z) |
| start_my_clockC | Start the clock for the authenticated user. Args: customers_id: ID of the customer services_id: ID of the service billable: Whether the entry is billable (1) or not (0) projects_id: Optional project ID text: Optional description |
| stop_my_clockA | Stop the currently running clock for the authenticated user. |
| add_my_vacationA | Add a vacation for the authenticated user. Args: date_since: Start date (YYYY-MM-DD) date_until: End date (YYYY-MM-DD) |
| add_my_time_entryA | Add a manual time entry for the authenticated user. Args: customers_id: ID of the customer services_id: ID of the service time_since: Start time (e.g., 2025-01-01T09:00:00Z) time_until: End time (e.g., 2025-01-01T10:00:00Z) billable: Whether the entry is billable (1) or not (0) projects_id: Optional project ID text: Optional description |
| edit_my_time_entryC | Edit a time entry for the authenticated user. Args: entry_id: ID of the entry to edit data: Dictionary of fields to update (e.g., {"text": "new description"}) |
| delete_my_time_entryB | Delete a time entry for the authenticated user. Args: entry_id: ID of the entry to delete |
| delete_my_vacationB | Delete a vacation/absence for the authenticated user. Args: absence_id: ID of the absence to delete |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| start_tracking | Start tracking time for a customer and service. Args: customer: Customer name service: Service/task name project: Optional project name |
| stop_tracking | Stop tracking the current time entry. |
| request_vacation | Request vacation time. Args: start_date: Vacation start date (YYYY-MM-DD) end_date: Vacation end date (YYYY-MM-DD) |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| current_entry | Get the currently running time entry. |
| customers_list | Get the list of available customers. |
| services_list | Get the list of available services. |
| projects_list | Get the list of available projects. |
| recent_entries | Get recent time entries (last 7 days). |
TDQS
Scored across 15 tools
Each tool has a clear, distinct purpose: time entry operations, clock start/stop, vacation management, list operations, and reports are all separate. No significant overlap or ambiguity.
All tools follow a consistent verb_noun pattern in snake_case (get_, start_, stop_, add_, edit_, delete_, list_). The naming is uniform and predictable.
15 tools is at the upper end of the typical range but still appropriate for a comprehensive time-tracking API. Each tool serves a necessary function without excessive redundancy.
Covers the core lifecycle for time entries (create, read, update, delete), clock control, vacation add/delete, and listing resources. Minor gap: no edit/update for vacation or users, but not critical for the primary use case.