About Harvest MCP by usefulapi
Harvest MCP by usefulapi is a hosted MCP server for people who manage time, projects, and billing in Harvest. It provides read access to account records and tools to create, update, stop, restart, and delete time entries.
Key features
- 01Read time entries and account records
- 02Browse projects, clients, tasks, and users
- 03View invoices, estimates, and expenses
- 04Create, update, stop, restart, and delete time entries
Use cases
- 01Review tracked time and project assignments
- 02Log or correct a Harvest time entry
- 03Look up client, invoice, or expense details
MCP support
Exposes Harvest data and time-entry operations as tools to MCP clients. It is hosted at a remote endpoint and uses OAuth sign-in with the user's Harvest credentials.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://harvest.usefulapi.io/mcpclaude mcp add --transport http io-usefulapi-harvest https://harvest.usefulapi.io/mcp{"mcpServers":{"io-usefulapi-harvest":{"type":"http","url":"https://harvest.usefulapi.io/mcp"}}}Open in Cursor{"servers":{"io-usefulapi-harvest":{"type":"http","url":"https://harvest.usefulapi.io/mcp"}}}Open in VS Code{"mcpServers":{"io-usefulapi-harvest":{"type":"http","url":"https://harvest.usefulapi.io/mcp"}}}{"mcpServers":{"io-usefulapi-harvest":{"serverUrl":"https://harvest.usefulapi.io/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
20| Parameter | Type | Required | Description |
|---|---|---|---|
| to | string | No | Only entries on/before this date, yyyy-mm-dd. |
| from | string | No | Only entries on/after this date, yyyy-mm-dd. |
| page | integer | No | Page number (1-based) for pagination. |
| task_id | integer | No | Filter to a single task id. |
| user_id | integer | No | Filter to a single user id. |
| per_page | integer | No | Results per page (1–2000, Harvest default 2000). |
| client_id | integer | No | Filter to a single client id. |
| is_billed | boolean | No | Only billed (true) or unbilled (false) entries. |
| is_running | boolean | No | Only running (true) or only stopped (false) entries. |
| project_id | integer | No | Filter to a single project id. |
| updated_since | string | No | Only entries updated since this ISO-8601 datetime. |
Details
From the project READMEHarvest MCP by usefulapi
Use your Harvest account from Claude, Cursor, or any MCP client — read time entries, projects, clients, tasks and invoices, and log or update tracked time. Hosted, no local install: connect with your own credentials.
Live endpoint: https://harvest.usefulapi.io/mcp · Homepage: https://usefulapi.io
Connect
- Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste
https://harvest.usefulapi.io/mcp. - Claude Code:
claude mcp add --transport http harvest https://harvest.usefulapi.io/mcp, then run/mcpto log in. - VS Code: Add to VS Code.
- Cursor and other clients: add the URL as a remote MCP server:
{
"mcpServers": {
"harvest": {
"url": "https://harvest.usefulapi.io/mcp"
}
}
}
Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Harvest credentials.
Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/harvest/
On first connect you'll provide your Harvest personal access token and Account ID (id.getharvest.com → Developers). It is validated, stored per-user, and scoped to you — no keys in config files.
Tools
| Tool | Type | What it does |
|---|---|---|
harvest_list_time_entries | read | List time entries |
harvest_get_time_entry | read | Get time entry |
harvest_list_projects | read | List projects |
harvest_get_project | read | Get project |
harvest_list_clients | read | List clients |
harvest_get_client | read | Get client |
harvest_list_tasks | read | List tasks |
harvest_list_users | read | List users |
harvest_get_current_user | read | Get current user |
harvest_list_project_assignments | read | List my project assignments |
harvest_list_invoices | read | List invoices |
harvest_get_invoice | read | Get invoice |
harvest_list_estimates | read | List estimates |
harvest_list_expenses | read | List expenses |
harvest_get_company | read | Get company |
harvest_create_time_entry | write | Create time entry |
harvest_update_time_entry | write | Update time entry |
harvest_stop_time_entry | write | Stop running time entry |
harvest_restart_time_entry | write | Restart stopped time entry |
harvest_delete_time_entry | write | Delete time entry |
harvest_usage_status | meta | Usage status (free-tier meter) |
harvest_request_feature | meta | Request a missing feature |
harvest_upgrade | meta | Upgrade to Pro (unlimited*) |
harvest_cancel_subscription | meta | Cancel the Pro subscription |
read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.
Pricing
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 50 tool calls / month |
| Pro | $9/mo or $90/yr (2 months free) | Unlimited* |
*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].
Pro covers this server only. Subscribe with harvest_upgrade (it returns a Stripe Checkout link). Cancel any time with harvest_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running harvest_upgrade before then undoes the cancel. Or write to [email protected].
License
MIT — see LICENSE. Documentation only; the server is hosted.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.