Timely MCP server
36 operations12 webhooks
Log, edit and report time in Timely: time entries, timers, projects, clients, tags, people and signed webhooks.
Try Timely with your agent
Connect Timely, 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 Timely on my account, then run one read-only example and show me the result.
Timely tools and triggers
Tools are what your agent can do in Timely through Corsair's MCP server. Triggers are the Timely events a routine can start from.
Time Entries
- BulkDestructive
Create, update and delete up to 100 time entries in one request
timeEntries.bulk
- CreateWrite
Log time on a project
timeEntries.create
- DeleteDestructive
Delete a time entry
timeEntries.delete
- GetRead-only
Get a time entry by id
timeEntries.get
- ListRead-only
List time entries for a day or a since/upto date range
timeEntries.list
- Start TimerWrite
Start the timer on a time entry
timeEntries.startTimer
- Stop TimerWrite
Stop the timer on a time entry
timeEntries.stopTimer
- UpdateWrite
Update a time entry
timeEntries.update
Projects
- CreateWrite
Create a project under a client
projects.create
- DeleteDestructive
Delete a project
projects.delete
- GetRead-only
Get a project by id
projects.get
- ListRead-only
List projects
projects.list
- UpdateWrite
Update a project; passing `users` replaces who may log time on it
projects.update
Tags
- CreateWrite
Create a tag
tags.create
- DeleteDestructive
Delete a tag
tags.delete
- GetRead-only
Get a tag by id
tags.get
- ListRead-only
List tags (labels)
tags.list
- UpdateWrite
Update a tag
tags.update
Webhooks
- CreateWrite
Create a signed webhook subscription
webhooks.create
- DeleteDestructive
Delete a webhook
webhooks.delete
- GetRead-only
Get a webhook by id
webhooks.get
- ListRead-only
List webhooks
webhooks.list
- UpdateWrite
Update a webhook
webhooks.update
Clients
- CreateWrite
Create a client
clients.create
- GetRead-only
Get a client by id
clients.get
- ListRead-only
List clients
clients.list
- UpdateWrite
Update a client (active: false archives it)
clients.update
Users
- CurrentRead-only
Get the connected user in a workspace
users.current
- GetRead-only
Get a person by id
users.get
- ListRead-only
List people
users.list
Accounts
- GetRead-only
Get a Timely workspace (account) by id
accounts.get
- ListRead-only
List the Timely workspaces (accounts) the user can reach
accounts.list
Reports
- FilterRead-only
Totals grouped by clients, users, tags, days and teams, or the matching time entries
reports.filter
- TotalsRead-only
Logged time and cost per client and project for a period
reports.totals
Teams
- GetRead-only
Get a team by id
teams.get
- ListRead-only
List teams
teams.list
Connect Timely to Claude, ChatGPT or Cursor
- 1
Connect Timely in Corsair
Sign in to Timely once in Corsair. Corsair stores the credential encrypted and makes the Timely API calls for your agent, so it never goes into a prompt or a config file. Connect Timely
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Timely. On a ChatGPT personal plan, connect Timely 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. In the default Cautious mode, Timely's read and write operations run right away and its 5 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/timely, add the Timely plugin, and connect with OAuth. Then call methods like corsair.timely.api.accounts.get() from your app. Corsair verifies webhooks, stores tokens, and keeps each tenant isolated.
Yes. Timely needs an OAuth app with scopes that match what you automate. Register the app in Timely, configure redirect URLs, then connect through Corsair or managed OAuth in Hub.
Yes. One Corsair client can hit Timely, GitHub, Notion, Stripe, and the rest. Trigger Timely from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for log, edit and report time in timely: time entries, timers, projects, clients, tags, people and signed webhooks. Common builds include sync jobs, admin tooling, and agents that call Timely APIs from your backend. Webhook handlers react to Timely events and fan out to Slack, email, or other plugins in the same tenant.
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 Timely 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/timely in the open repo. When Timely 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 Timely data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Timely 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 Timely on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 5 destructive Timely operations. You can change a link's mode at hub.corsair.dev/me.