kimai-timelog-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| whoamiA | Who the Kimai API token belongs to, plus their timezone and today's date. Call this once at the start of a time-logging conversation so that relative dates ("yesterday") and times are anchored correctly. |
| list_projectsA | List the projects this user can book time against. Args: search: optional substring to filter project or customer names. customer: optional customer name or id to scope the list. |
| list_activitiesA | List activities, optionally the ones valid for a given project. Args: project: project name or id. Omit to list every activity. search: optional substring filter on the activity name. |
| list_customersA | List customers visible to this user. |
| list_timesheetsA | The user's own time entries for a date range, newest first. Defaults to the last 7 days. Use this before writing an entry to avoid duplicates, and to answer "what did I log this week". Args: from_date: 'today', 'monday', '2026-08-24', '3 days ago'. to_date: same formats; defaults to today. project: optional project name or id to filter by. search: optional free-text search over descriptions. limit: maximum entries to return (max 500). |
| recent_entriesA | The project/activity/description combinations this user booked most recently. Best first call for "log the usual" or "same as yesterday" requests. |
| log_timeA | Write a finished time entry to Kimai. Give either start+end, or start+duration, or duration alone (which books the period ending now). Do not guess missing times — ask the user instead. Args: project: project name or id. activity: activity name or id, must be valid for the project. description: what was worked on. Strongly recommended. date: 'today', 'yesterday', 'monday', '2026-08-24'. start: '09:00', '9am', '14.30'. end: same formats as start. duration: '1h30m', '90m', '1.5h', '1:30'. tags: optional list of Kimai tag names. billable: optional override of the project default. |
| start_timerB | Start a running timer now (or at a given start time today). Args: project: project name or id. activity: activity name or id. description: what is being worked on. start: optional start time such as '09:00'; defaults to now. |
| active_timersB | Any currently running time entries for this user. |
| stop_timerA | Stop a running timer. Args: timesheet_id: which entry to stop. Omit to stop the only running one. |
| restart_timerA | Start a new running entry that copies an existing one's project/activity. |
| update_timesheetA | Change an existing time entry. Only the fields you pass are touched. Args: timesheet_id: the entry to change (from list_timesheets). date/start/end/duration: same formats as log_time. Passing any of these recomputes the entry's begin and end. |
| delete_timesheetA | Permanently delete a time entry. Args: timesheet_id: the entry to delete. confirm: must be true. Show the user what will be deleted first. |
| summarize_timeA | Total the user's logged hours over a range, grouped for reporting. Args: from_date: defaults to 7 days ago. to_date: defaults to today. group_by: 'project', 'activity' or 'day'. |
| list_tagsA | Tag names configured in this Kimai instance. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Each tool targets a distinct operation: reference data listing, timesheet queries, entry creation, timer control, editing, deletion, and reporting. Even similar tools like list_timesheets and recent_entries are clearly differentiated by what they return.
The set mostly follows a clear list_ for read-only collections and verb_noun for actions, such as log_time and stop_timer. Minor deviations like active_timers, recent_entries, and whoami break the pattern slightly but remain understandable.
At 15 tools, the server covers discovery, logging, timer lifecycle, modifications, deletion, and reporting without feeling bloated. Each tool contributes a meaningful piece of the time-logging workflow.
The toolset supports a full time-logging lifecycle: lookup reference data, check existing entries, log time, start and stop timers, restart entries, update or delete entries, and summarize hours. It also includes helpful context tools like whoami and recent_entries; admin CRUD for projects or customers is outside the apparent purpose.