Everhour MCP server
48 operations20 webhooks
Time tracking tool for managing projects, tasks, sections, clients, timers, time records, timecards, expenses, and invoices.
Try Everhour with your agent
Connect Everhour, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Everhour on my account, then run one read-only example and show me the result.
Everhour tools and triggers
Tools are what your agent can do in Everhour through Corsair's MCP server. Triggers are the Everhour events a routine can start from.
Time
- Delete Time EntryWrite
Delete a time record
time.deleteTimeEntry
- Discard Timesheet ApprovalWrite
Discard a pending timesheet approval request
time.discardTimesheetApproval
- List User TimeRead-only
List time records for a user
time.listUserTime
- List User TimesheetsRead-only
List timesheets for a user
time.listUserTimesheets
- Log TimeWrite
Log a new time record
time.logTime
- Request Timesheet ApprovalWrite
Request approval for a timesheet week
time.requestTimesheetApproval
- Update Time EntryWrite
Update a time record
time.updateTimeEntry
Timecards
- Clock InWrite
Clock a user in
timecards.clockIn
- Clock OutWrite
Clock a user out
timecards.clockOut
- Delete TimecardWrite
Delete a user timecard
timecards.deleteTimecard
- Get TimecardRead-only
Get a user timecard for a date
timecards.getTimecard
- List TimecardsRead-only
List team timecards
timecards.listTimecards
- List User TimecardsRead-only
List timecards for a user
timecards.listUserTimecards
- Update TimecardWrite
Update a user timecard
timecards.updateTimecard
Clients
- Create ClientWrite
Create a client
clients.createClient
- Delete ClientWrite
Delete a client
clients.deleteClient
- Get ClientRead-only
Get a client
clients.getClient
- List ClientsRead-only
List clients
clients.listClients
- Update ClientWrite
Update a client
clients.updateClient
Hooks
- Create WebhookWrite
Create a webhook
hooks.createWebhook
- Delete WebhookWrite
Delete a webhook
hooks.deleteWebhook
- Get WebhookRead-only
Get a webhook
hooks.getWebhook
- List WebhooksRead-only
List webhooks
hooks.listWebhooks
- Update WebhookWrite
Update a webhook
hooks.updateWebhook
Projects
- Create ProjectWrite
Create a project
projects.createProject
- Delete ProjectWrite
Delete a project
projects.deleteProject
- Get ProjectRead-only
Get a project
projects.getProject
- List ProjectsRead-only
List projects
projects.listProjects
- Update ProjectWrite
Update a project
projects.updateProject
Sections
- Create SectionWrite
Create a section
sections.createSection
- Delete SectionWrite
Delete a section
sections.deleteSection
- Get SectionRead-only
Get a section
sections.getSection
- List SectionsRead-only
List sections in a project
sections.listSections
Tasks
- Create TaskWrite
Create a task
tasks.createTask
- Get TaskRead-only
Get a specific task
tasks.getTask
- List Tasks For ProjectRead-only
List tasks for a project
tasks.listTasksForProject
- Search TasksRead-only
Search tasks across projects
tasks.searchTasks
Timer
- Get Current TimerRead-only
Get the current active timer
timer.getCurrentTimer
- Start TimerWrite
Start a new timer
timer.startTimer
- Stop TimerWrite
Stop the currently running timer
timer.stopTimer
User
- Get UserRead-only
Get current user profile
user.getUser
- List Team UsersRead-only
List all team users
user.listTeamUsers
- List TeamsRead-only
Get the authenticated Everhour workspace
user.listTeams
Expenses
- List Expense CategoriesRead-only
List expense categories
expenses.listExpenseCategories
- List ExpensesRead-only
List expenses
expenses.listExpenses
Invoices
- List InvoicesRead-only
List invoices
invoices.listInvoices
Platforms
- List PlatformsRead-only
List supported platforms
platforms.listPlatforms
Tags
- List TagsRead-only
List workspace tags
tags.listTags
Connect Everhour to Claude, ChatGPT or Cursor
- 1
Connect Everhour in Corsair
Add your Everhour API key or sign in with OAuth once in Corsair. Corsair stores the credential encrypted and makes the Everhour API calls for your agent, so it never goes into a prompt or a config file. Connect Everhour
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Everhour. On a ChatGPT personal plan, connect Everhour here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. None of Everhour's operations are destructive, so in the default Cautious mode they all run right away. Strict mode asks before each of its 23 writes, and Read mode allows reads only.
Everhour works with
FAQ
Install corsair and @corsair-dev/everhour, add the Everhour plugin, and connect with an API key or OAuth. Then call methods like corsair.everhour.api.clients.createClient() from your app. Corsair verifies webhooks, stores tokens, and syncs data per tenant.
Yes. Everhour supports an API key or OAuth. Use credentials or OAuth scopes that match what you automate. Create them in the Everhour developer console, then paste into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Everhour, GitHub, Notion, Stripe, and the rest. Trigger Everhour from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for time tracking tool for managing projects, tasks, sections, clients, timers, time records, timecards, expenses, and invoices. Common builds include sync jobs, admin tooling, and agents that call Everhour APIs from your backend. Webhook handlers react to Everhour events and fan out to Slack, email, or other plugins in the same tenant. Local DB entities let you query synced Everhour records without hitting the API on every read.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Everhour API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/everhour in the open repo. When Everhour ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Everhour data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Everhour data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Everhour on a link in Strict mode and every write waits for your approval, while destructive actions are refused. None of the Everhour operations are destructive, so the default Cautious mode runs them all without asking. You can change a link's mode at hub.corsair.dev/me.