What do you need?
Three things: an account with a time tracker that runs an MCP server, an AI assistant that supports MCP, and the server's address. For Half5 that address is https://app.half5.com/mcp.
There's nothing to install and no API key to copy. When you connect, the assistant opens a sign-in page in your browser. You sign in with your regular account and give consent. What MCP actually is, is explained in What is MCP?.
- Coding assistants: Claude Code, Codex and Cursor. They work inside your project and can pass along the repository name.
- Chat assistants: Claude.ai (also Claude Desktop and the mobile app) and ChatGPT. They don't know your repository, so they ask more often which client it is.
- Others: VS Code and other programs that support a remote MCP server with OAuth.
How do you connect your assistant?
Each assistant keeps the setting in a different place. The table follows the setup instructions shown inside Half5. Menu names in these apps change from time to time; if you can't find one, look for ‘MCP’, ‘connector’ or ‘custom connector’.
| Assistant | Where | What you do |
|---|---|---|
| Claude Code | Terminal | claude mcp add --transport http --scope user half5 https://app.half5.com/mcp, then /mcp in Claude Code, pick half5 and sign in |
| Codex | Terminal | codex mcp add half5 --url https://app.half5.com/mcp, then codex mcp login half5; Codex opens your browser |
| Cursor | ~/.cursor/mcp.json | {"mcpServers":{"half5":{"url":"https://app.half5.com/mcp"}}}, then Connect under Settings → MCP |
| Claude.ai, Desktop, app | Settings → Connectors | Add custom connector, paste the URL and sign in |
| ChatGPT | Settings → Apps & Connectors → Advanced | Turn on Developer mode, choose Create, paste the URL and pick OAuth |
| VS Code and others | MCP settings | Add a remote (HTTP) MCP server with the URL |
Developer mode in ChatGPT isn't available on every plan. If you don't see the option, check what your plan allows.
What do you say to the assistant?
Plain language is enough. You don't need IDs, client numbers or project codes. Do name the client or project if you know it, and the time if you know it.
- ‘Log an hour and a half for this work.’
- ‘I worked on the payment provider integration from 9:00 to 11:30. Log that for Jansen Bakery.’
- ‘Log this session on the Webshop project.’ (no duration: the time tracker proposes one for you to confirm)
- ‘What did I log yesterday?’
- ‘Move this morning's entry to the Maintenance project.’
- ‘Delete the duplicate entry from today.’
What happens after logging?
An entry from an agent isn't a side note. It's a regular registration that goes through the same checks as your other hours.
- The assistant sends a short description, the date, the duration (if known) and, for coding assistants, the repository name and branch.
- The time tracker picks the client, project and activity. If it isn't sure, the assistant asks you a question with a few options.
- Without a duration, the time tracker proposes one, for example from the end of your previous entry until now. Nothing is saved until you confirm.
- The entry arrives as not approved. You or an approver review it, like your other hours.
- Once approved, the entry flows into reports and invoicing.
Which habits prevent mistakes?
An assistant is quick, but it doesn't know how long you really worked. These habits keep your records reliable, also when you later have to explain where the hours went.
- One entry per contiguous task. Three one-hour entries for three jobs beat one three-hour entry with everything in it.
- Never invent a duration. If you don't know, leave it out and confirm or correct the proposal.
- Check what's already there. Before logging a whole day, have the assistant list that day's entries so nothing gets logged twice.
- Write for the client. The description can end up on an invoice. One readable line, no file names or code.
- Name the client when in doubt. An explicit client or project always wins over what the assistant infers.
What can't it do?
An assistant logs what you or it can justify; it doesn't measure your time. If you want your working day captured on its own, you need a timeline, as described in Automatic time tracking.
A connected agent also only sees your own hours. It can't view colleagues' hours, approve hours or create invoices. It can only edit or delete your own entries while they're not yet approved.
How Half5 does it
In Half5 the setup instructions are under Settings → ‘Linked agents’, in ‘Link agent’. The consent screen shows which organisation you're connecting and what the agent may do: view hours and log hours. An unknown client is labelled ‘Unverified app’.
Entries from an agent arrive as ‘Not approved yet’ and then follow the same route as your other hours. Half5 picks the client and project from what the agent sends, your earlier entries and which repository you previously logged on which client. The details are in How log_work works; what happens to your data is in Privacy with AI agents.
Frequently asked questions
Do I need to install anything to log hours with Claude or ChatGPT?
No. You add the server address in your assistant and sign in through your browser. Only for Claude Code and Codex do you paste one command into your terminal.
Can the assistant decide how long I worked?
It shouldn't. If you give no duration, Half5 proposes one based on your previous entry and the current time, and you confirm or correct it.
Why does ChatGPT ask which client it is more often than Claude Code?
A chat assistant doesn't know your repository, so it has less to recognise the client from. After a few confirmed entries Half5 knows your habits and needs to ask less.
Can an agent see or approve my colleagues' hours?
No. A connected agent only sees your own hours and the clients, projects and activities you're allowed to see. Approval happens in Half5 itself.
What if the agent logs something wrong?
Ask the assistant to change or delete the entry, or do it yourself in Half5. While an entry isn't approved yet the agent can change it; after that you do it in the app.