Skip to main content
Connecting an AI assistant to Everhour gives it a door into your account. This page says exactly how wide that door is: what crosses it, who decides, and how it closes. Landed here first? Everhour in Claude covers what the assistant can do for you, and Connect an MCP client covers setting it up.

What Everhour receives

Everhour does not store your conversation, and does not store personal data. The messages between you and the assistant never reach Everhour — we do not receive them, store them, or process them. We have no access to your chat history, your assistant’s memory, or your files. What does reach Everhour is the arguments of the tool calls the assistant makes: a task ID, a duration, a date, a search term, and any comment text you asked it to save. Everhour handles these as ordinary API requests — they’re what the tool needs in order to do the thing you asked for. We keep a log of those calls for 30 days, for one purpose: so we can debug a call that behaved incorrectly. After 30 days it’s discarded. Nothing beyond the call arguments themselves goes into it.
One thing worth stating plainly: free text you ask the assistant to save — a timer comment, a search keyword — is a call argument. It travels with the request and sits in that 30-day debug log like any other API parameter. Everything else you type stays with your AI client.
Everhour’s handling of this data is governed by the privacy policy.

What the assistant can do

Two different permission systems are in play, and it’s worth keeping them apart:
  • Who may connect Everhour at all is decided by your AI client, not by Everhour. In Claude, for example, only an Owner can add a connector on a Team or Enterprise plan. Everhour has no say in that and cannot see it.
  • What the assistant may do once connected is decided entirely by Everhour, and it’s your existing role — nothing new to grant or configure.
The assistant acts as you, and only as you. It can do exactly what your Everhour role allows — a member can’t read the team’s payroll through the assistant any more than through the web app. There’s no separate permission model for MCP: the tools go through the same authorization as the REST API. Some tools sit behind roles: Everything else is open to any member, including everhour_list_clients — the list is readable by everyone, a single client isn’t. When a tool isn’t available to you, the assistant is told why rather than shown an empty report.
One exception is worth knowing about when you read a report back. In everhour_get_dashboard, money columns you’re not allowed to see come back as 0 rather than being left out — costs, billable amount, profit, expenses, and their sub-columns. A 0 there means “not visible to this caller”, not “no money”. An assistant that reports it as an amount is reporting a permission boundary, not a figure.

Approving and ending access

You approve the connection once, in your browser. Adding Everhour from your client sends you to Everhour to sign in and approve access — the assistant never sees your password. The flow is standard OAuth 2.1 with PKCE, and the token your client receives is audience-bound to https://api.everhour.com/mcp. Access is short-lived by design. The access token expires after an hour and is renewed silently while the connection is active. Removing the connector in your client stops the renewal, so access ends within the hour.
Disconnecting always ends access, and always within the hour. What Everhour doesn’t have yet is a way to cut it off instantly — there’s no Revoke button in your profile and no revocation endpoint, so the current token runs out its remaining time. If you need access stopped sooner than that, contact support.
If you connected with an X-Api-Key header instead of OAuth, that key never expires on its own. Regenerate it in My Profile → API key to cut off every client using it at once.

Actions that ask before they run

Most of the tools are annotated read-only and change nothing. Seven carry the destructive hint, and a well-behaved client prompts you to confirm before running any of them:
  • everhour_start_timer
  • everhour_start_timer_without_task
  • everhour_stop_timer
  • everhour_log_time
  • everhour_update_time_entry
  • everhour_delete_time_entry
  • everhour_favorite_task
The hint covers anything that changes state you’d notice, not only deletion. Starting a timer stops whichever timer was already running, so it prompts too. Note that everhour_delete_time_entry doesn’t remove an entry — it clears the duration to 0 and drops the comment, leaving the entry on its task and date. Everhour’s interactive cards open two kinds of link. Links to Everhour itself are built by the card and always resolve to https://app.everhour.com — the only origin we own and the only one we declare. There are two shapes: https://app.everhour.com/#/time(view:<task_id>) for a task, and https://app.everhour.com/#/projects/<project_id>/tasks for a project. Links to a task in an external tool — GitHub, Asana, Jira, Linear, ClickUp, and the other platforms Everhour syncs with — are not constructed by the card. They’re stored on the task record, written there by your own integration when the task was synced, and the card passes that stored URL through unchanged. We deliberately don’t declare those origins: they differ per customer, we don’t own them, and we’d rather each one keep prompting you for confirmation than list domains that aren’t ours. The card accepts such a URL only when its scheme is http or https, and falls back to the Everhour address otherwise.

Rate limits

The published API rate limits apply to requests authenticated with an API key, including MCP calls made that way. Requests authorized over OAuth aren’t counted against that quota today, which is a limit we may add later rather than a guarantee — assistant traffic is a handful of calls per question, so normal use stays well clear of it either way.

Privacy policy

Everhour’s handling of your data is governed by the Everhour privacy policy and the terms of service. Connecting an assistant doesn’t change either.