Connectors · Work & projects
TimeCamp MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to TimeCamp and the rest of your systems. It gives your agent 156 TimeCamp actions (67 reads, 65 writes and 24 that wait for a confirmation) and holds the TimeCamp credential itself, so the agent never does. It paces TimeCamp's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "timecamp.users.list", intent: "check which TimeCamp account is connected"}# Get all users data · read · 1 upstream call- 156actionsin one signed file
- 67readlook, never change
- 65writecreate and update
- 24wait for a yesdestructive, confirmed first
Set up
Connect TimeCamp in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect TimeCamp.
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
access_tokenTimeCamp API token: app.timecamp.com > Settings > Your profile (app.timecamp.com/app#/settings/users/me) > API token
account { op: "connections.requirements", service: "timecamp" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "timecamp.users.list" }# get all users data · read · 1 upstream callcheck { action: "timecamp.time_entries.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
TimeCamp at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
access_token- Limits we pace to
- 60 calls a minute, per connection
- API covered
- TimeCamp API 1.0 (OpenAPI 3.0.0)
app.timecamp.com/third_party/api - Built from
- TimeCamp's documentation, read 23 October 2026developer.timecamp.comdeveloper.timecamp.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 55 of 67 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 6, so ask can line TimeCamp up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in TimeCamp.
156 actions in 32 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 67readlook, never change
- 65writecreate and update
- 24destructivewait for a confirmation
Tasks
132 read · 9 write · 2 destructive
Create new task · Get task info · Update task info · Delete task
Time entries
136 read · 5 write · 2 destructive
Get time entries · Create time entry · Update time entry · Delete time entry
Approvals
105 read · 5 write · 0 destructive
Create approval message · List approval activities · Get approval users · Get approvals
Projects
106 read · 3 write · 1 destructive
Search in projects tree · List projects tree · List assigned users for project task · List group assignment sources for a project task
Rates
84 read · 4 write · 0 destructive
Update/create billing rate for group · Update/create billing rate for task · Update/create billing rate for "task user" · Update/create billing rate for user
Timers
83 read · 3 write · 2 destructive
Get visible running timers · Get timer status · Stop timer · Start timer
Expenses
72 read · 4 write · 1 destructive
Create expense · List expense · List expense · Invoice assign to expense
Attendance
65 read · 1 write · 0 destructive
Attendance calendar search [beta] · Get attendance · Retrieve all possible day types for attendance · Retrieves day types declared by users in given timeframe
24 more areas · 81 actions
- Groups 6
- Data exports 5
- Tag lists 5
- Custom field templates 4
- Custom field values 4
- Expense categories 4
- Group settings 4
- Group users 4
- Predefined days 4
- Roles 4
- Users 4
- Favourite tasks 3
- Group scheduler 3
- Tag groups 3
- Tags 3
- Task tags 3
- Time entry restrictions 3
- Time entry tags 3
- User settings 3
- Attendance requests 2
- Computer activities 2
- Expense attachments 2
- Task tag lists 2
- Storage 1
Top actions
The TimeCamp API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 29 of TimeCamp's 29 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
timecamp.users.listGet all users data | Get all users data. | read | identity.user.list474 connectors |
timecamp.groups.listGet all groups | Get all groups. | read | identity.group.list262 connectors |
timecamp.time_entries.listGet time entries | Get time entries. | read | work.time_entry.list59 connectors |
timecamp.roles.listGet time tracking roles | Get time tracking roles. | read | identity.role.list184 connectors |
timecamp.users.meGet your user data | Get your user data. | read | identity.current_user.get307 connectors |
timecamp.time_entries.createCreate time entry | Create time entry. | write | work.time_entry.create56 connectors |
timecamp.groups.createCreate group | Create group. | write | identity.group.create205 connectors |
timecamp.timers.list_runningGet visible running timers | Get visible running timers. | read | work.timer.list8 connectors |
timecamp.users.getGet user | Get user. | read | identity.user.get399 connectors |
timecamp.roles.createCreate time tracking role | Create time tracking role. | write | identity.role.create105 connectors |
timecamp.time_entries.deleteDelete time entry | Delete time entry. | destructive | work.time_entry.delete51 connectors |
timecamp.tasks.createCreate new task | Create new task. | write | work.task.create127 connectors |
Try it
Prompts to paste into Claude.
Each one names the TimeCamp actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Who has access in TimeCamp? List every user and their role.
calls
timecamp.users.list - Writewrite
Create time entry in TimeCamp. Show me exactly what you will send before you save it.
calls
timecamp.time_entries.create
Governance for TimeCamp
Destructive actions wait for a yes.
24 TimeCamp actions are destructive. These are all of them:
- Delete time entry
timecamp.time_entries.delete - Delete group
timecamp.groups.delete - Delete time tracking role
timecamp.roles.delete - Delete task
timecamp.tasks.delete - Cancel running timer
timecamp.timers.cancel - Delete expense
timecamp.expenses.delete - Remove tags from task
timecamp.task_tags.remove - Cancel timer
timecamp.timers.cancel_v1 - Delete allowed group from tag
timecamp.tag_groups.remove - Delete user from group
timecamp.group_users.remove - Task remove
timecamp.tasks.remove_batch - Delete user setting
timecamp.user_settings.delete - Delete group setting
timecamp.group_settings.delete - Detach a tag list from a task
timecamp.task_tag_lists.detach - Delete task from favorite tasks list
timecamp.favourite_tasks.remove - Delete group scheduler
timecamp.group_scheduler.delete - Remove Predefined Day [beta]
timecamp.predefined_days.delete - Delete time entry
timecamp.time_entries.delete_v3 - Delete tags from time entry
timecamp.time_entry_tags.remove - Delete expense attachment
timecamp.expense_attachments.delete - Unassign value from custom fields
timecamp.custom_field_values.unassign - Remove Custom Field Template
timecamp.custom_field_templates.delete - Delete Time Entry restriction
timecamp.time_entry_restrictions.delete - Remove a group assignment from a project task
timecamp.projects.remove_group_assignment
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete time entry?
intent: the user asked me to delete time entry
account { op: "keys.create", name: "timecamp-agent", allowed_actions: ["timecamp.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "timecamp.time_entries.delete", approver: "[email protected]" }, { match: "timecamp.groups.delete", approver: "[email protected]" }, { match: "timecamp.roles.delete", approver: "[email protected]" } ]}Cost
What TimeCamp costs on actionlake.
Every TimeCamp action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call TimeCamp refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 156 TimeCamp actions
- 156actions pageeach page of a long list is one call
- 55reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every TimeCamp action.
156 actions by area: the id your agent calls, what it does, and its effect.
Tasks13
timecamp.tasks.archive_batchArchive a batch of taskswritetimecamp.tasks.change_parentTask change parentwritetimecamp.tasks.createCreate new taskwritetimecamp.tasks.deleteDelete taskdestructivetimecamp.tasks.duplicateTask duplicatewritetimecamp.tasks.duplicate_batchTask duplicate batchwritetimecamp.tasks.get_detailsGet task detailsreadtimecamp.tasks.listGet task inforeadtimecamp.tasks.move_worklogsTask worklog movewritetimecamp.tasks.remove_batchTask removedestructivetimecamp.tasks.restore_batchRestore a batch of archived tasks and their parent hierarchywritetimecamp.tasks.set_colorAdd/change color in taskwritetimecamp.tasks.updateUpdate task infowrite
Time entries13
timecamp.time_entries.createCreate time entrywritetimecamp.time_entries.create_v3Create time entrywritetimecamp.time_entries.deleteDelete time entrydestructivetimecamp.time_entries.delete_v3Delete time entrydestructivetimecamp.time_entries.listGet time entriesreadtimecamp.time_entries.list_changesGet time entries changesreadtimecamp.time_entries.list_deletionsGet time entries deletionsreadtimecamp.time_entries.logged_time_in_weekGet logged time in a weekreadtimecamp.time_entries.mergeMerge time entrieswritetimecamp.time_entries.query_v3Get time entries by user permissionsreadtimecamp.time_entries.searchGet time entries by user permissionsreadtimecamp.time_entries.updateUpdate time entrywritetimecamp.time_entries.update_v3Update time entrywrite
Approvals10
timecamp.approvals.bulk_change_statusBulk change status of approvalwritetimecamp.approvals.change_statusChange status of approvalwritetimecamp.approvals.create_messageCreate approval messagewritetimecamp.approvals.getGet approvalreadtimecamp.approvals.list_activitiesList approval activitiesreadtimecamp.approvals.list_usersGet approval usersreadtimecamp.approvals.list_v1Get approvalsreadtimecamp.approvals.searchList approvalreadtimecamp.approvals.send_reminderSend reminderwritetimecamp.approvals.upsert_v1Create/Update approvalwrite
Projects10
timecamp.projects.assign_groupsAssign groups to a project taskwritetimecamp.projects.assign_usersAssign users to project taskwritetimecamp.projects.listList projects treereadtimecamp.projects.list_assigned_usersList assigned users for project taskreadtimecamp.projects.list_group_assignmentsList group assignment sources for a project taskreadtimecamp.projects.load_dataLoad selected data for projectsreadtimecamp.projects.remove_group_assignmentRemove a group assignment from a project taskdestructivetimecamp.projects.searchSearch in projects treereadtimecamp.projects.time_entry_summaryGet project time-entry summaryreadtimecamp.projects.unassign_usersUnassign users from project taskwrite
Rates8
timecamp.rates.get_group_rateGet billing rate for groupreadtimecamp.rates.get_task_rateGet billing rate for taskreadtimecamp.rates.get_task_user_rateGet billing rate for "task user"readtimecamp.rates.get_user_rateGet billing rate for userreadtimecamp.rates.set_group_rateUpdate/create billing rate for groupwritetimecamp.rates.set_task_rateUpdate/create billing rate for taskwritetimecamp.rates.set_task_user_rateUpdate/create billing rate for "task user"writetimecamp.rates.set_user_rateUpdate/create billing rate for userwrite
Timers8
timecamp.timers.cancelCancel running timerdestructivetimecamp.timers.cancel_v1Cancel timerdestructivetimecamp.timers.get_running_v1Get information about running timerreadtimecamp.timers.list_runningGet visible running timersreadtimecamp.timers.manage_v1Manage timerwritetimecamp.timers.startStart timerwritetimecamp.timers.statusGet timer statusreadtimecamp.timers.stopStop timerwrite
Expenses7
timecamp.expenses.assign_invoiceInvoice assign to expensewritetimecamp.expenses.createCreate expensewritetimecamp.expenses.deleteDelete expensedestructivetimecamp.expenses.listList expensereadtimecamp.expenses.searchList expensereadtimecamp.expenses.unassign_invoiceInvoice unassign from expensewritetimecamp.expenses.updateUpdate expensewrite
Attendance6
timecamp.attendance.calendar_searchAttendance calendar search [beta]readtimecamp.attendance.get_userRetrieve attendance data for a user within a date rangereadtimecamp.attendance.listGet attendancereadtimecamp.attendance.list_day_typesRetrieve all possible day types for attendancereadtimecamp.attendance.list_user_day_typesRetrieves day types declared by users in given timeframereadtimecamp.attendance.upsert_userInsert or update user attendance recordswrite
Groups6
timecamp.groups.createCreate groupwritetimecamp.groups.deleteDelete groupdestructivetimecamp.groups.get_company_logoGet group logoreadtimecamp.groups.listGet all groupsreadtimecamp.groups.treeList visible user groups as a treereadtimecamp.groups.updateUpdate groupwrite
Data exports5
timecamp.data_exports.createCreate export requestwritetimecamp.data_exports.dataset_availabilityGet list of dataset availabilityreadtimecamp.data_exports.getGet export requestreadtimecamp.data_exports.listGet exportsreadtimecamp.data_exports.list_openGet open exportsread
Tag lists5
timecamp.tag_lists.createCreate new tag listwritetimecamp.tag_lists.getGet tag list with tagsreadtimecamp.tag_lists.listGet tag listreadtimecamp.tag_lists.list_tagsGet only tags of a tag listreadtimecamp.tag_lists.updateUpdate tag list datawrite
Custom field templates4
timecamp.custom_field_templates.createCreate Custom Field Templatewritetimecamp.custom_field_templates.deleteRemove Custom Field Templatedestructivetimecamp.custom_field_templates.listList Custom Field Templatesreadtimecamp.custom_field_templates.updateModify Custom Field Templatewrite
Custom field values4
timecamp.custom_field_values.assignAssign value to custom fieldswritetimecamp.custom_field_values.getRetrieve value for custom field in resourcereadtimecamp.custom_field_values.listRetrieve values for all custom fields in resourcereadtimecamp.custom_field_values.unassignUnassign value from custom fieldsdestructive
Expense categories4
timecamp.expense_categories.archiveArchive expense categorywritetimecamp.expense_categories.createCreate expense categorywritetimecamp.expense_categories.listList expense categoryreadtimecamp.expense_categories.updateUpdate expense categorywrite
Group settings4
timecamp.group_settings.deleteDelete group settingdestructivetimecamp.group_settings.getGet group settingreadtimecamp.group_settings.updateUpdate group settingwritetimecamp.group_settings.update_v3Update a group settingwrite
Group users4
timecamp.group_users.inviteInvite user to a groupwritetimecamp.group_users.listGet users in groupreadtimecamp.group_users.removeDelete user from groupdestructivetimecamp.group_users.updateUpdate user in groupwrite
Predefined days4
timecamp.predefined_days.createCreate Predefined Days [beta]writetimecamp.predefined_days.deleteRemove Predefined Day [beta]destructivetimecamp.predefined_days.listPredefined Days Assigned To Group [beta]readtimecamp.predefined_days.list_effectiveEffective Predefined Days Assigned To Group [beta]read
Roles4
timecamp.roles.createCreate time tracking rolewritetimecamp.roles.deleteDelete time tracking roledestructivetimecamp.roles.listGet time tracking rolesreadtimecamp.roles.updateUpdate time tracking rolewrite
Users4
timecamp.users.getGet userreadtimecamp.users.listGet all users datareadtimecamp.users.meGet your user datareadtimecamp.users.updateUpdate userwrite
Favourite tasks3
timecamp.favourite_tasks.addAdd task to favorite tasks listwritetimecamp.favourite_tasks.listList of favorite tasksreadtimecamp.favourite_tasks.removeDelete task from favorite tasks listdestructive
Group scheduler3
timecamp.group_scheduler.deleteDelete group schedulerdestructivetimecamp.group_scheduler.listGet group schedulerreadtimecamp.group_scheduler.upsertCreate/Update group schedulerwrite
Tag groups3
timecamp.tag_groups.addAdd allowed group to tagwritetimecamp.tag_groups.listGet tag allowed groupsreadtimecamp.tag_groups.removeDelete allowed group from tagdestructive
Tags3
timecamp.tags.createCreate tagwritetimecamp.tags.getGet tag datareadtimecamp.tags.updateUpdate tagwrite
Task tags3
timecamp.task_tags.addAdd tags to taskwritetimecamp.task_tags.removeRemove tags from taskdestructivetimecamp.task_tags.updateEdit tags assignment typewrite
Time entry restrictions3
timecamp.time_entry_restrictions.createCreate Time Entry restrictionwritetimecamp.time_entry_restrictions.deleteDelete Time Entry restrictiondestructivetimecamp.time_entry_restrictions.listList restrictionsread
Time entry tags3
timecamp.time_entry_tags.addAdd tags to time entrywritetimecamp.time_entry_tags.listGet time entry tagsreadtimecamp.time_entry_tags.removeDelete tags from time entrydestructive
User settings3
timecamp.user_settings.deleteDelete user settingdestructivetimecamp.user_settings.getGet user settingreadtimecamp.user_settings.updateUpdate user settingwrite
Attendance requests2
timecamp.attendance_requests.createCreate attendance request [beta]writetimecamp.attendance_requests.has_pendingHas Pending Attendance Requests [beta]read
Computer activities2
timecamp.computer_activities.listGet computer activitiesreadtimecamp.computer_activities.sites_and_appsList of sites and appsread
Expense attachments2
timecamp.expense_attachments.deleteDelete expense attachmentdestructivetimecamp.expense_attachments.listGet expense attachmentread
Task tag lists2
timecamp.task_tag_lists.assignAssign or update a tag list assignment for a taskwritetimecamp.task_tag_lists.detachDetach a tag list from a taskdestructive
Storage1
timecamp.storage.list_filesGet the list of files from the user's main groupread
Questions
The TimeCamp MCP server, answered.
Is there a TimeCamp MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 156 TimeCamp actions across tasks, time entries, approvals and projects, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by TimeCamp.
What do I need to connect TimeCamp?
TimeCamp API token: app.timecamp.com > Settings > Your profile (app.timecamp.com/app#/settings/users/me) > API token. The free call account { op: "connections.requirements", service: "timecamp" } lists exactly what to paste.
Can an AI agent delete or change things in TimeCamp?
Only if its key allows it, and only with an explicit confirmation. 24 TimeCamp actions are destructive, including delete time entry, delete group and delete time tracking role. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my TimeCamp API limit?
actionlake paces every call to the limits in the TimeCamp service file: 60 calls a minute per connection. Repeated reads are answered from cache (55 TimeCamp actions can be), which never reaches TimeCamp.
What does a TimeCamp action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (156 TimeCamp actions page). Cache hits, searches, dry runs and calls TimeCamp refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which TimeCamp API does it cover?
The TimeCamp API 1.0 (OpenAPI 3.0.0) at app.timecamp.com/third_party/api. It is built from TimeCamp's documentation as read on 23 October 2026. 156 actions in 32 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my TimeCamp data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your TimeCamp credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent TimeCamp today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.