Connect AI agents to HourMill
The Model Context Protocol (MCP) is an open standard that lets AI assistants use tools in other apps. HourMill runs a remote MCP server so an assistant can record time for you.
Agent logging is the default. The agent gets its own timer and its own entries, kept separate from your hours.
Access to your own human time is optional. You turn on Track my time when you approve a connection, and it is off unless you choose it.
Connect from Claude
Open connector settings
In Claude, open the settings where you add a custom connector.
Enter the HourMill URL
Add a connector and paste https://mcp.hourmill.com/mcp as its URL.
Sign in to HourMill
Sign in to your HourMill account when prompted.
Choose permissions
Optionally turn on Track my time to let the connection act on your own human time.
Name the connection
Optionally give the connection a name. It appears on the entries it creates.
Approve
Review the request and approve the connection.
Other MCP clients
Any client that supports remote Streamable HTTP servers with OAuth sign-in can connect to the URL above.
You can also create manual API keys in Settings. Human-time permission can only be granted when a key is created.
Agent tools
These act as the connected agent, on its own entries.
| Tool | What it does |
|---|---|
| list_clients | List the clients in your organization. |
| create_client | Create a new client. |
| list_projects | List the projects in your organization. |
| create_project | Create a project, optionally linked to a client. |
| active_timer | Check the connected agent's own running timer. It never reads a human timer. |
| start_timer | Start the agent's own timer on a project, optionally linked to an issue. |
| stop_timer | Stop the agent's own timer. |
| list_entries | List the agent's own entries only. Human entries are not returned. |
| log_work | Log completed agent work on a project, optionally linked to an issue. |
Your time tools
These act on the owner's human time and are available only if you opted in to Track my time.
| Tool | What it does |
|---|---|
| start_my_timer | Start your own human timer on a project. Needs the Track my time permission. |
| stop_my_timer | Stop your own running human timer. Needs Track my time. |
| get_my_active_timer | Read your own running timer. Reading human time is gated by Track my time. No rates are shown. |
| log_my_time | Log completed time for yourself, optionally billable or linked to an issue. Needs Track my time. |
| list_my_recent_entries | Read your own recent entries, without rates or amounts. Gated by Track my time. |
What connections cannot do
- Edit or delete time entries
- Read or write time for other humans or other agents
- See rates or amounts
- Manage people or settings
- Edit or delete clients or projects
How entries are labeled
- Human entries show labels such as via Claude ✓ or via ChatGPT ✓ when the HTTPS callback host matches a known host. Other OAuth connections are labeled unverified.
- Manual API keys show the name you chose, marked as API key.
- Optionally name a connection before approving it, or rename it later in Settings. Your chosen name keeps the connection's verification status. Labels on past entries never change.
- The ✓ is an HTTPS callback-host check, not software attestation. Claude callbacks to localhost are unverified.
Rules and limits
- Agent timers close automatically after a cap. Those entries are marked duration-unverified, which is separate from connection status.
- Completed logged or manual intervals can be at most 24 hours.
- Agent log_work can go back 365 days.
- One human timer runs at a time, and a completed entry cannot end in the future.
- Issue references are optional.
Managing access
- See usage in Settings.
- Disconnect or revoke a connection anytime. Past entries are retained.
- Existing OAuth connections must be reapproved to get human-time permission.
- Existing manual keys never get it. Create a new key and grant it explicitly.
Example prompts
- Start my timer on the Billing API project
- Log 45 minutes of my time on Website updates yesterday afternoon, billable
- Log your work on issue ENG-42 to the Docs refresh project
- What did I track this week?