Timelog MCP Server
This server lets you manage Timelog time registration, absence, projects, and timesheet approvals through MCP tools.
User & organization: view current user profile and list legal entities
Projects & tasks: search/get projects, list project tasks, create tasks and projects from templates, search customers and project templates
Contracts & rates: view project contracts, hourly rates on contracts, fixed-price contract details, and organization-wide hourly rates
Time registrations: view weekly or date-range registrations, get financial/billable data, search tasks, and create/update/delete time registrations
Absence: search absence codes and create absence registrations (vacation, sick leave, etc.)
Timesheet approval: check timesheet submission/approval status and submit timesheets for yourself or employees
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Timelog MCP Server Register 7.5 hours on task SGI-100 for yesterday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Timelog MCP Server
An MCP server that exposes the Timelog time registration API as tools for agentic use. It lets you view, create, and manage time registrations, absences, and timesheet approvals through natural language.
Capabilities
View time registrations — by week or arbitrary date range, including financial/billable data
Create, update, and delete time registrations on any task you have access to
Absence management — search absence codes and register vacation, sick leave, etc.
Timesheet approval — check submission status and submit timesheets, with filtering by employee, department, approver, or legal entity
Organization — look up legal entities and the current user profile
Task search — find tasks to register time on by name or number
Projects — search, view, and create projects, and create tasks/phases on them
Contracts & rates — view project contracts, hourly rates, and fixed-price contract details
Related MCP server: Tripletex MCP Server
Tools
User & Organization
get_current_user— get the authenticated user's profileget_legal_entities— list legal entities
Projects & Tasks
search_projects— find projects by name or numberget_project— get project details by IDget_project_tasks— list tasks/phases on a projectcreate_task— create a task or sub-task on a projectsearch_customers— find customers by nameget_project_templates— list project templatescreate_project— create a project from a template
Contracts & Rates
get_project_contracts— list contracts for a projectget_contract_hourly_rates— list hourly rates on a contractget_fixed_price_contract_details— get value, payments, and rates for a fixed-price contractget_hourly_rates— search hourly rates across the organization
Time Registrations
get_weekly_registrations— view a week's registrationsget_registrations_by_date_range— view registrations in a date range, with optional filtering by project/taskget_financial_data— view billable/invoice status for a date rangesearch_tasks— find tasks you can register time oncreate_time_registration— log time on a taskupdate_time_registration— edit a registrationdelete_time_registration— remove a registration
Absence
search_absence_codes— find absence codes (vacation, sick leave, etc.)create_absence_registration— register an absence
Timesheet Approval
get_timesheet_status— check submission/approval status (yourself or, as a manager, your team)submit_timesheet— submit a timesheet for approval, for yourself or on behalf of an employee
Setup
Via npx (recommended)
Add to your Claude Code .mcp.json or Claude Desktop config:
{
"mcpServers": {
"timelog": {
"command": "npx",
"args": ["-y", "timelog-mcp"],
"env": {
"TIMELOG_PAT": "<your-personal-access-token>",
"TIMELOG_BASE_URL": "https://app[X].timelog.com/<your-account>/api"
}
}
}
}From source
git clone git@github.com:Amoeslund/Timelog-MCP-server.git
cd Timelog-MCP-server
npm install
npm run buildThen point your MCP config at the built file:
{
"mcpServers": {
"timelog": {
"command": "node",
"args": ["/path/to/Timelog-MCP-server/dist/index.js"],
"env": {
"TIMELOG_PAT": "<your-personal-access-token>",
"TIMELOG_BASE_URL": "https://app[X].timelog.com/<your-account>/api"
}
}
}
}Configuration
Personal Access Token
Generate a PAT at https://login.timelog.com/personaltoken.
Base URL
Your URL follows the pattern https://app[X].timelog.com/<your-account>/api where [X] is a server number (1–10) and <your-account> is your Timelog account name. See the Timelog API docs for details.
Environment Variables
Variable | Required | Description |
| Yes | Personal Access Token (see above) |
| Yes | API base URL (see above) |
License
ISC
Available Tools
21 toolscreate_absence_registrationA
Create an absence registration (e.g. vacation, sick leave). Use search_absence_codes to find the AbsenceCodeID. Registers a full day by default; specify Hours for partial days.
Inputs: Date (required), AbsenceCodeID (required), Hours, Comment.
create_taskB
Create a new task (phase) on a project. Use search_projects to find the ProjectID first.
Inputs: EndDate (required), TaskName (required), ProjectID (required), StartDate (required), +7 more.
create_time_registrationA
Create a new time registration on a task. Use search_tasks first to find the TaskID.
Inputs: Date (required), Hours (required), TaskID (required), JiraId, +2 more.
delete_time_registrationB
Delete a time registration by its GUID.
Inputs: id (required).
get_contract_hourly_ratesA
Get all hourly rates configured on a specific contract. Returns rate name (role), amount, currency, type, and active status. Use get_project_contracts first to find the contractId.
Inputs: contractId (required).
get_current_userA
Get the currently authenticated Timelog user (name, email, department).
Inputs: no named parameters.
get_financial_dataB
Get financial data (billable/invoice status) for time registrations in a date range.
Inputs: endDate (required), startDate (required).
get_fixed_price_contract_detailsA
Get complete details for a fixed-price contract: contract value (from payment plan), payment schedule, linked fixed-price tasks/phases, and configured hourly rates. The contract value is the total price agreed with the client. For FP contracts, hourly rates are typically 0 (billing isn't per-hour) — use the overall project financial data to compute effective rates.
Inputs: projectId (required), contractId (required).
get_hourly_ratesA
Get hourly rates defined in Timelog. Returns rate name, amount, currency, customer, and active status. Use searchText to filter by name. Results are paginated.
Inputs: pageSize, pageNumber, searchText.
get_legal_entitiesA
Get all legal entities in the Timelog organization. Returns ID, name, active status, currency, and country for each entity.
Inputs: no named parameters.
get_projectA
Get project details by project ID. Returns name, project number, customer, project manager, budget, dates, and type.
Inputs: projectId (required).
get_project_contractsA
Get all contracts for a project. Returns contract ID, name, type (Fixed Price / Time & Material), status, and whether it's the main contract. Use the contractId with get_contract_hourly_rates to see rates.
Inputs: projectId (required).
get_project_tasksA
Get all tasks (phases) for a project. Returns task IDs, names, parent hierarchy, fixed-price status, and billable defaults. Use the projectId from get_project or from time registrations.
Inputs: projectId (required), pageSize, pageNumber.
get_registrations_by_date_rangeB
Get time registrations between two dates.
Inputs: endDate (required), startDate (required).
get_timesheet_statusB
Get weekly timesheet status. Defaults to the authenticated user. Pass userId to check a specific employee, or omit to get all employees (manager view). Can also filter by departmentId, approverId, or legalEntityId.
Inputs: endDate (required), startDate (required), userId, approverId, +2 more.
get_weekly_registrationsA
Get time registrations for a specific week. Provide the Monday date of the week.
Inputs: startDate (required).
search_absence_codesA
Search for absence codes (e.g. Ferie, Sygdom). Returns AbsenceCodeID needed for create_absence_registration.
Inputs: searchText.
search_projectsA
Search for projects by name or number. Returns project IDs, names, numbers, and customer info.
Inputs: searchText.
search_tasksA
Search for tasks the user can register time on. Returns task IDs needed for creating time registrations. Use searchText to filter by task or project name.
Inputs: searchAll, searchText.
submit_timesheetB
Submit timesheet for approval for a date range (e.g. a full week).
Inputs: endDate (required), startDate (required), comment, employeeUserId.
update_time_registrationA
Update an existing time registration (hours, comment, date, billable status).
Inputs: TaskID (required), TimeRegistrationID (required), Date, Hours, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Most tools target distinct resources (time registrations, absence, projects, contracts, rates), but there is potential overlap between get_weekly_registrations and get_registrations_by_date_range, and between get_hourly_rates and get_contract_hourly_rates. Descriptions clarify the differences, so only minor confusion risk exists.
All tools follow a consistent verb_noun snake_case pattern (e.g., get_project, create_time_registration, search_tasks, update_time_registration, submit_timesheet). The naming convention is uniform and predictable, with no mixed styles or vague verbs.
21 tools is on the higher end but appropriate for a comprehensive time tracking and project management domain. The server covers time registration, absence, projects, contracts, rates, financials, and users, so the tool count is justified without being bloated.
The tool surface covers core CRUD for time registrations, timesheet submission and status, project and task search, contract and rate queries, and financial data. Minor gaps exist, such as lack of update/delete for absence registrations and no direct query for absence registrations, but these are workable.
Related MCP Connectors
Connects AI assistants to TrackingTime for querying time entries, projects, tasks, customers, and team data using natural language.
Time tracking you talk to: log, check and fix your work hours from your AI assistant.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Read hours, absences and projects; start timers, add entries, approve leave in TimeTac.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables automated timesheet management including creating entries, listing work activities, managing daily scrum updates, and viewing assigned projects with automatic authentication handling.8 npmMIT
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with the Tripletex accounting API to manage time tracking, projects, and timesheet approvals through natural language. It also supports searching and managing outgoing invoices and processing supplier invoice approvals.312ISC

Timesheet MCP Serverofficial
AlicenseBqualityBmaintenanceEnables natural language control of the Timesheet API for timer management, task tracking, and project management through MCP tools.50337 npm1MIT- FlicenseNot gradedqualityCmaintenanceEnables natural-language reading, logging, editing, and deleting of your own HaloPSA timesheet entries, scoped to timesheets only.-