Connect your account, then chat with AI to run tools.
Everhour is a time tracking platform with project budgeting, expense tracking, scheduling, and invoicing. Use it to record billable hours, manage project budgets, attach expenses, and generate timesheet reports across a team.
Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.
Browse all toolsDomain knowledge for Everhour — workflow patterns, data models, and gotchas for your AI agent.
A workspace-per-API-key time tracking platform. Reads are organized around a strict project hierarchy; writes split into resource CRUD plus two parallel "live event" surfaces (timers and time records).
A project can belong to at most one client; reassigning an already-attached project to a different client errors with HTTP 400. Tasks and sections are parent-scoped on create (POST under /projects/{id}/...) but updated and deleted on the flat /tasks/{id} and /sections/{id} paths. There is no workspace-wide tasks list endpoint — list tasks one project at a time.
ev: — e.g. ev:195526947697395. Imported integration projects use as: (Asana), jira:, trello:. Only ev: projects accept POST / PUT / DELETE.(user_id, date). Both are always required on read-single, upsert, and delete.Read with one tool that branches on which scope arg you supply: nothing for the team feed, project_id for one project, task_id for one task (returns the aggregate plus per-history detail), user_id for one user. from_date and to_date (YYYY-MM-DD, inclusive) only narrow the team and user feeds.
Write surface is two explicit verbs: add (POST /tasks/{task_id}/time — minimum 60 seconds, maximum 36000 per call) and delete by record id (DELETE /time/{id}, where the id is the .id on a record, not an ev:... task id and not a row in .history[]). There is no PUT endpoint for individual records — the API models edits as more history rows on the same task/user/date aggregate, so the right way to "edit" is delete + re-add.
There is exactly one current timer per user. Starting a new timer auto-stops any running one for the same user and saves the accrued seconds as a TIMER history entry on the previous task. Stop is a no-op when no timer is running.
Currency amounts (project budget, hourly rate, expense amount, line item totals) are integers in the lowest currency unit (cents). Hours / durations are integers in seconds.
The API key is scoped to a single user in a single workspace. Mutations run as that user. Admin-only operations (creating users, editing tag definitions, sending invoices) are not exposed via this API and remain in the Everhour admin UI.
Add a manual time record to a task. POST to /tasks/{task_id}/time. Returns the task's time aggregate; the new history row's id (under .lastHistory.id)...
Delete a client by numeric id. Returns an empty body on success. Projects previously attached to the client are detached, not deleted.
Delete an expense record by numeric id. Returns an empty body (HTTP 204) on success.
Delete a webhook by numeric id. Returns an empty body on success. The targetUrl will no longer receive event POSTs.
Delete a native Everhour project ('ev:...' id). Cascades sections, tasks, and time entries inside the project. Integration-imported projects ('as:', '...
Delete a section by id (numeric). Tasks that were in the section are reassigned to the project's implicit 'isNoSection' catch-all rather than being de...
Delete a task by id ('ev:...'). Time entries logged against the task are removed too. Returns an empty body on success.
Delete a time record by id. DELETE /time/{id}. Returns the aggregate after removal so the new total is visible. Pass the .id from a get_time response,...
Delete a user's timecard for one date. DELETE /users/{user_id}/timecards/{date}. (user_id, date) is the composite key — both required.
Read clients in the Everhour workspace. Omit id to list every client (returns name, status, associated project ids, billing/invoice settings). Pass id...
Get the authenticated user's current running timer (/timers/current). Returns status (active or stopped), elapsed duration in seconds, the task being ...
Get the profile of the authenticated user (the user the API key is scoped to). Returns id, name, email, role, capacity, and the team they belong to. T...
List expense categories (e.g. Travel, Meals, Office Supplies). Each category id is what to pass as 'category' to upsert_expense or get_expenses.
List expense records from the workspace. Supports server-side filters: from_date / to_date (YYYY-MM-DD), user id, project id ('ev:...'), category id, ...
Read configured webhooks. Omit id to list every hook in the workspace (each row carries targetUrl, subscribed events, active flag, project filter). Pa...
List invoices in the workspace. Each row carries invoice number, client, project, currency, total, status (draft / sent / paid), and dates. Read-only ...
Read projects accessible to the API key. Omit id to list (supports server-side filters: query for name search, status = 'open' | 'archived' | 'all', p...
Read sections. Pass id (numeric) to fetch a single section. Omit id and pass project_id to list sections for that project. An entry with isNoSection=t...
List workspace tags. Each tag has id (numeric), name (e.g. 'high', 'low'), and color (hex). The id is what to pass in the tags array on upsert_task. T...
Read tasks. Pass id ('ev:...') to fetch a single task with its assignees, section, status, and time aggregate. Omit id and pass project_id to list eve...
Read workspace-wide team settings (singleton). Returns the workdays array, lock-time policy, future-tracking flag, plan + billing status, owner, enabl...
List the members of the Everhour team. Each row carries id (numeric — the value to use as user / assignee in other tools), name, email, role (admin / ...
Read Everhour time records. Pass nothing to read the team-wide feed (/team/time). Pass project_id for one project. Pass task_id for one task (returns ...
Read timecards (clock-in / clock-out / break records) for one user. user_id is required. Pass id (YYYY-MM-DD) to fetch one day's timecard with its his...
Start a new timer for the authenticated user. POST /timers. Any timer the user already had running stops first and its accrued seconds are saved to th...
Stop the authenticated user's current running timer (DELETE /timers/current). The accrued seconds are saved as a TIMER history entry on the task. Retu...
Create or update an Everhour client. Omit id to create (name required); pass id to update a subset of fields. status accepts 'active' or 'archived'. p...
Create or update an expense record. Omit id to create — project, date, and category are required, amount and quantity are typical. Pass id (numeric) t...
Create or update a webhook subscription. Omit id to create (events and targetUrl required; targetUrl must respond 200 to Everhour's validation request...
Create or update an Everhour project. Omit id to create (name required; client optional, numeric client id from get_clients). Pass id ('ev:...' format...
Create or update a section. Omit id to create — project_id and name are required, POST goes to /projects/{project_id}/sections. Pass id (numeric) to u...
Create or update a task. Omit id to create (project_id and name required) — POST goes to /projects/{project_id}/tasks. Pass id ('ev:...') to update an...
Create or overwrite a user's timecard for one date. PUT /users/{user_id}/timecards/{date}. The (user_id, date) pair is the natural key, so both are re...
Everhour is a time tracking platform with project budgeting, expense tracking, scheduling, and invoicing. Use it to record billable hours, manage project budgets, attach expenses, and generate timesheet reports across a team. It provides 33 tools that AI agents can use through the Model Context Protocol (MCP).
Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/everhour. Authentication is handled automatically.
Everhour provides 33 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.
Everhour uses API Key. Everhour requires credentials. Connect via MCPBundles and authentication is handled automatically.
Connect Everhour to any MCP client in minutes
Model Context Protocol lets AI tools call external capabilities securely through a single URL. This MCP server groups tools behind an endpoint that many clients can use.
Skip the manual setup! Use the .mcpb file format for one-click installation. Check the Claude Desktop tab for setup instructions.
Select ChatGPT, Cursor, Claude Code, or another tab for copy-paste config.
More time management integrations you might like
7shifts is a workforce management platform designed for restaurants, enabling users to schedule staf...
Acuity Scheduling is an online appointment scheduling software that allows businesses to automate bo...
Cal.com is an open-source scheduling platform for managing appointments, availability, and calendar ...
Calendly is a scheduling platform that automates appointment bookings and calendar management. Use i...
Clockify is a time tracking platform for workspaces, clients, projects, tasks, tags, user groups, an...
Clockodo is a time tracking software designed for businesses to monitor employee work hours, project...