- Home
- MCP servers
- Harvest
Harvest
- python
15
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"taiste-harvest-mcp-server": {
"command": "uv",
"args": [
"run",
"--directory",
"change_directory",
"harvest-mcp-server.py"
],
"env": {
"HARVEST_API_KEY": "api_key",
"HARVEST_ACCOUNT_ID": "account_id"
}
}
}
}You can connect Claude and other MCP-aware assistants to your Harvest account through this Harvest MCP Server. It exposes time tracking, project, client, user, and task data so you can manage work items and time entries directly from your AI workflow.
How to use
Once you have the Harvest MCP Server running, you can interact with Harvest data through your MCP client. You can list users, view user details, fetch and filter time entries, start or stop timers, and retrieve unsubmitted timesheets. You can also list projects and clients, view detailed information, and list available tasks. Use natural language prompts like: “Show my time entries from last week,” “List active projects,” or “Get unsubmitted timesheets for this month.” The server translates these requests into Harvest API calls and returns structured results that you can present in your AI conversation.
You can combine multiple actions in a single session, such as selecting a project, starting a timer for a specific task, and then querying the resulting time entry details. If you need to refine results, apply filters for date ranges, project IDs, or user IDs depending on your access level.
How to install
Prerequisites you need before running the Harvest MCP Server:
-
Python 3.10 or higher
-
Harvest account with API access
-
Harvest API key and Account ID
Follow these steps to set up and run the server locally.
Additional configuration and notes
Server configuration is provided as a local, stdio-based MCP setup. The server runs under the uv runtime and expects Harvest credentials to be supplied via environment variables.
{
"mcpServers": {
"harvest": {
"command": "uv",
"args": [
"run",
"--directory",
"change_directory",
"harvest-mcp-server.py"
],
"env": {
"HARVEST_ACCOUNT_ID": "account_id",
"HARVEST_API_KEY": "api_key"
}
}
}
}
Security and best practices
This server requires your Harvest API credentials to function. Keep your API key and account ID secure. Do not share the configuration file that contains these credentials. If possible, use a dedicated API key with restricted permissions for this integration.
Troubleshooting
If you encounter API errors, verify that your Harvest API key and Account ID are correct and have the necessary permissions. If you have connection issues, confirm that the client configuration points to the correct MCP server runtime and that environment variables are set properly. Ensure all required Python packages are installed in your environment.
Tools exposed by the Harvest MCP Server
The server provides the following capabilities to be used by your MCP client:
List and view users
- List users
- Get user details
Manage time entries
- List time entries with filtering options
- Create new time entries
- Start timers
- Stop timers
- Query time entry details
- Get unsubmitted timesheets
Projects and clients
- List projects with filtering options
- Retrieve detailed project information
- List clients with filtering options
- Retrieve detailed client information
Tasks
- List available tasks with filtering options
Prerequisites and setup summary
- Python 3.10 or higher
- Harvest account with API access
- Harvest API key and Account ID
- Environment variables HARVEST_ACCOUNT_ID and HARVEST_API_KEY for secure access
What you get
Seamless integration that lets you manage time, projects, and client data from your AI assistant, reducing context switching and speeding up daily workflows.
Available tools
list_users
Retrieve a list of users in Harvest and support filtering by attributes such as role or activity.
get_user
Fetch detailed information for a specific Harvest user by ID.
list_time_entries
Return time entries with optional filters like date range, project, or user.
create_time_entry
Create a new time entry with required fields such as project, task, and duration.
start_timer
Start a live timer for a given time entry, project, and task.
stop_timer
Stop an active timer and finalize the time entry.
query_time_entry
Retrieve details for a specific time entry by its ID.
get_unsubmitted_timesheets
Fetch time entries that have not yet been submitted for approval.
list_projects
List Harvest projects with optional filters and retrieve detailed information.
get_project
Get detailed information for a specific project by ID.
list_clients
List Harvest clients with optional filters and retrieve details.
get_client
Get detailed information for a specific client by ID.
list_tasks
List available tasks with optional filters for easier selection when creating time entries.