@iiinigence/harvest-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| READ_ONLY | No | true = reports and entries readable, all writing blocked (default false) | false |
| HARVEST_ACCOUNT_ID | Yes | Numeric account id shown next to the token | |
| HARVEST_ACCESS_TOKEN | Yes | Personal Access Token from id.getharvest.com/developers |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_meA | Get the authenticated Harvest user (name, email, id, roles, timezone). Useful to resolve 'my' time entries and check the connection. |
| list_clientsB | List clients in the Harvest account. Returns id, name, active state. |
| list_projectsA | List projects with their client, code, and budget info. Filter by client_id or include archived projects. |
| list_project_tasksA | List the task assignments for a project (task_id + name). You need a task_id to log time or start a timer on that project. |
| list_time_entriesA | List time entries, newest first. Filter by date range (from/to, YYYY-MM-DD), project_id, user_id, or only_running. Use mine=true to limit to the authenticated user. Returns up to 300 entries per call. |
| get_time_reportA | Aggregated hours for a date range, grouped by clients, projects, tasks, or team members. Includes billable vs total hours and billable amounts (when permitted). Perfect for 'how many hours did we spend on X this month?' |
| log_timeA | Create a completed time entry: project, task, date, and duration in hours (e.g. 1.5). Use list_projects and list_project_tasks first to get ids. Add a short note describing the work. |
| start_timerA | Start a running timer on a project + task for today (authenticated user). Any other running timer for the user is stopped automatically by Harvest. Use list_project_tasks to get the task_id. |
| stop_timerA | Stop a running timer. If time_entry_id is omitted, finds and stops the authenticated user's currently running timer. |
| update_time_entryA | Edit an existing time entry's hours, notes, date, project, or task. Only provided fields are changed. (This server intentionally has no delete tool — set hours or move entries instead, and delete in Harvest itself if truly needed.) |
| list_usersA | List users in the Harvest account (id, name, email, roles). Needed for per-person filters and team reports. Requires admin/manager access. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/iiinigence/harvest-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server