Connect via MCP
Let an AI assistant (Claude Desktop, IDEs, …) manage your TimeWave tasks and time tracker over the Model Context Protocol. Everything the AI does is attributed with an AI badge in the app.
- 1
Claude, and anything that speaks remote MCP
In Claude, open Settings → Customize → Connectors, click “+” → “Add custom connector”, and paste this address:
https://timewave.cloud/api/mcpClick “Add”. A TimeWave page opens where you are already signed in: it names the application asking, the organisation it would work in, and exactly what it would be able to do — then two buttons. Nothing is installed and no key is copied anywhere.
Then the part that is easy to miss: a connector you have added still has to be switched on inside a conversation. In the chat window press “+” → “Connectors” and tick TimeWave. Settings live under Ctrl+, on the desktop app (or menu → File → Settings), and ⌘⇧, in the browser (or profile icon → Settings).
On Team and Enterprise an owner adds it first, in Organization settings → Connectors → Add → Custom → Web; members then press “Connect” in their own list. The free plan allows one custom connector.
Menu labels follow Anthropic's help centre and may change over time; the address above does not.
- 2
Clients that only speak stdio
Run this — it prints a short code and a link:
npx @timewave-cloud/mcp login --url=https://timewave.cloudApprove the code in a browser and the token arrives on the machine by itself, saved to ~/.timewave/mcp.json. Then add this to your client's config (for Claude Desktop, claude_desktop_config.json):
{ "mcpServers": { "timewave": { "command": "npx", "args": ["-y", "@timewave-cloud/mcp"], "env": { "TIMEWAVE_API_URL": "https://timewave.cloud" } } } }There is no secret in that block — only a command and an address. It is safe to paste into a chat or commit to a repository.
On Windows, use this instead:
{ "mcpServers": { "timewave": { "command": "cmd", "args": ["/c", "npx", "-y", "@timewave-cloud/mcp"], "env": { "TIMEWAVE_API_URL": "https://timewave.cloud" } } } }On Windows, Claude Desktop launches the server without a shell and can't find “npx” directly — wrapping it in “cmd /c npx” fixes that. Fully restart the client after editing the config.
- 3
A key by hand, for automation
When what you are connecting is a script rather than a person: user menu → Account & API keys, create a key with the scopes it needs, and pass it as TIMEWAVE_API_KEY. The environment wins over a saved login, so anything already set up keeps working untouched.
However you connect, what you end up with is the same kind of key: an organisation, a set of scopes, and an AI badge on everything it does. Revoke it any time on the Account & API keys page, which also shows which application asked for it.
Tools
| Tool | What it does | Scope |
|---|---|---|
| guide | How TimeWave works + smart-commit rules | — |
| list_projects | Projects and their kanban columns | read |
| list_members | Members (userId for assigning) | read |
| list_tasks | Tasks; filter by project / status | read |
| get_task | One task with checklist + activity | read |
| create_task | Create a task | tasks |
| update_task | Edit title, description, priority, assignee, due date | tasks |
| move_task | Move to a column | tasks |
| complete_task | Mark done / reopen | tasks |
| comment_task | Add a comment to the activity feed | tasks |
| delete_task | Permanently delete a task | tasks |
| start_timer | Start the tracker (optionally on a task) | timer |
| stop_timer | Stop the running timer | timer |
| timer_status | Is a timer running, and for how long | timer |
| log_time | Add a manual time entry | timer |
| list_time_entries | List entries; filter by project / task / dates | read |
| get_time_entry | One time entry by id | read |
| update_time_entry | Edit duration, date, description, project, billable | timer |
| delete_time_entry | Permanently delete a time entry | timer |
| whoami | Who the key belongs to, and which organization | read |
| add_checklist_item | Add a subtask to a task | tasks |
| set_checklist_item | Tick a subtask off (or back on) | tasks |
| remove_checklist_item | Remove a subtask | tasks |
| list_timesheets | Recent weeks: total, status, locked or not | read |
| get_timesheet | One week, day by day and project by project | read |
| submit_timesheet | Hand a week in — this locks it | timer |
| withdraw_timesheet | Take a submitted week back | timer |
| list_docs | Search the knowledge base by title | docs |
| get_doc | Read a document with its Markdown | docs |
| create_doc | Write a new document | docs |
| update_doc | Edit the title, body or visibility | docs |
| list_doc_versions | A document's history — who changed what, when | docs |
| get_doc_version | Read one earlier version in full | docs |
| list_doc_attachments | Files on a document (metadata + url) | docs |
| store_secret | Put a credential in the vault (never read one back) | secrets |
| generate_secret | Generate a secret, store it, and get it back once | secrets |
Security: a tool whose scope the key lacks returns 403. Revoke a key any time on the Account & API keys page.
The secrets vault only takes things from an assistant. `generate_secret` hands back what it has just created, and that is all: there is no scope that lets a key list the vault or re-read something stored earlier. Values are shown to a person in a browser, one at a time, after the password is entered again, and every look goes into the audit log. Adding at all needs an owner to turn it on in Settings → Assistants.
The knowledge base stays closed to assistants until an owner opens it in Settings → Assistants — even for a key holding the “docs” scope. A single page can be held back on its own, along with everything filed under it; to an assistant it then simply does not exist. There is no tool for deleting documents at all.