harvest-forecast-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HARVEST_ACCOUNT_ID | No | Harvest account ID (numeric) | |
| HARVEST_USER_AGENT | Yes | Identifying string for API requests (e.g. your-app (you@example.com)) | |
| FORECAST_ACCOUNT_ID | No | Forecast account ID (numeric) | |
| HARVEST_ACCESS_TOKEN | No | Personal access token for the Harvest API | |
| FORECAST_ACCESS_TOKEN | No | Personal access token for the Forecast API |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_harvest_projectsA | List all projects in Harvest with client information. |
| list_harvest_usersB | List all users in Harvest. |
| list_harvest_clientsA | List all clients in Harvest. |
| list_harvest_tasksB | List all tasks available for time tracking in Harvest. |
| list_time_entriesB | List time entries from Harvest, optionally filtered by user, project, and date range. |
| create_time_entryA | Log time against a Harvest project and task. |
| list_project_assignmentsA | List users assigned to a Harvest project with their rates and budgets. |
| harvest_whoamiA | Get the current authenticated Harvest user's identity and permissions. |
| list_forecast_projectsB | List all projects in Forecast (for scheduling purposes). |
| list_forecast_peopleA | List all people being scheduled in Forecast, with their roles and teams. |
| list_assignmentsA | List scheduled assignments in Forecast within a date range. |
| create_assignmentA | Schedule a person on a Forecast project. |
| update_assignmentB | Update an existing Forecast assignment. |
| delete_assignmentA | Delete a Forecast assignment. |
| get_remaining_budgeted_hoursA | Get remaining budgeted hours for all Forecast projects. |
| get_future_scheduled_hoursA | Get future scheduled hours for all projects starting from a date. |
| get_project_heatmapA | Get a scheduling heatmap for a Forecast project. |
| get_person_heatmapC | Get a scheduling heatmap for a Forecast person. |
| forecast_whoamiA | Get the current Forecast user's identity and account IDs. |
| list_forecast_milestonesA | List all milestones across all Forecast projects. |
| list_forecast_placeholdersA | List all placeholders (unnamed/role-based slots) available for scheduling in Forecast. |
| list_forecast_rolesA | List all roles defined in Forecast, with their assigned people and placeholders. |
| get_forecast_projectC | Get details for a single Forecast project by ID. |
| get_forecast_personB | Get details for a single Forecast person by ID. |
| get_future_scheduled_hours_for_projectA | Get future scheduled hours for a specific Forecast project. |
| get_assigned_peopleC | Get a mapping of Forecast project IDs to the person IDs assigned to each. |
| get_placeholder_heatmapA | Get a scheduling heatmap for a Forecast placeholder. |
| person_scheduleA | Get a person's complete schedule: Forecast assignments + Harvest time entries for the period. |
| project_overviewA | Get a comprehensive project overview combining Harvest and Forecast data. |
| team_utilizationA | Get team utilization: scheduled hours (Forecast) vs logged hours (Harvest) per person. |
| who_is_availableA | Find people who have capacity (are not fully scheduled) in a date range. |
| time_summaryA | Summarize Harvest time entries, grouped by project, user, or client. |
| budget_statusA | Get budget burn-down: remaining budgeted hours (Forecast) vs logged hours (Harvest, last 30 days) per project. |
| all_projects_scheduleA | Get a scheduling overview for all projects: assignments, assigned people, and milestones. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
Each tool targets a distinct resource or action, with clear separation between Forecast and Harvest operations. Overlaps like person_schedule vs get_person_heatmap are differentiated by purpose (combined view vs scheduling heatmap). No tools are redundant or confusing.
Tools predominantly follow a consistent verb_noun pattern (e.g., create_assignment, list_forecast_people). Exceptions like all_projects_schedule and who_is_available are still descriptive and follow a logical naming scheme. No mixed casing or erratic patterns.
With 34 tools, the set is comprehensive but slightly above average. However, given the dual-API coverage (Harvest and Forecast) and the inclusion of cross-reference tools, the count is justified and not excessive. Each tool serves a clear purpose.
The tool surface covers core CRUD for assignments and time entry creation, plus comprehensive listing and cross-referencing. Minor gaps exist (no time entry update/delete, no Harvest project creation), but these are likely out of scope for a scheduling/time-tracking integration server.