Skip to main content
Glama
AZX-PBC-OSS

harvest-forecast-mcp

by AZX-PBC-OSS

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HARVEST_ACCOUNT_IDNoHarvest account ID (numeric)
HARVEST_USER_AGENTYesIdentifying string for API requests (e.g. your-app (you@example.com))
FORECAST_ACCOUNT_IDNoForecast account ID (numeric)
HARVEST_ACCESS_TOKENNoPersonal access token for the Harvest API
FORECAST_ACCESS_TOKENNoPersonal access token for the Forecast API

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_harvest_projectsA

List all projects in Harvest with client information.

Args:
    is_active: If True, only return active projects. If False, only archived.
list_harvest_usersB

List all users in Harvest.

Args:
    is_active: If True, only return active users.
list_harvest_clientsA

List all clients in Harvest.

Args:
    is_active: If True, only return active clients.
list_harvest_tasksB

List all tasks available for time tracking in Harvest.

Args:
    is_active: If True, only return active tasks.
list_time_entriesB

List time entries from Harvest, optionally filtered by user, project, and date range.

Args:
    user_id: Filter to a specific user's entries.
    project_id: Filter to a specific project's entries.
    from_date: Start date (YYYY-MM-DD). Defaults to 30 days ago.
    to_date: End date (YYYY-MM-DD). Defaults to today.
create_time_entryA

Log time against a Harvest project and task.

Args:
    project_id: Harvest project ID.
    task_id: Harvest task ID.
    spent_date: Date the time was spent (YYYY-MM-DD).
    hours: Number of hours to log (can be decimal, e.g. 1.5).
    notes: Optional notes for the time entry.
list_project_assignmentsA

List users assigned to a Harvest project with their rates and budgets.

Args:
    project_id: Harvest project ID.
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.

Args:
    start_date: Start of date range (YYYY-MM-DD). Required.
    end_date: End of date range (YYYY-MM-DD). Required.
    project_id: Filter to assignments for a specific project.
    person_id: Filter to assignments for a specific person.
create_assignmentA

Schedule a person on a Forecast project.

Args:
    project_id: Forecast project ID (must be >= 1).
    person_id: Forecast person ID (0 = Everyone).
    start_date: Assignment start date (YYYY-MM-DD).
    end_date: Assignment end date (YYYY-MM-DD).
    allocation: Allocation in minutes per day (e.g. 480 = 8 hours).
    notes: Optional notes for the assignment.
update_assignmentB

Update an existing Forecast assignment.

Args:
    assignment_id: ID of the assignment to update (must be >= 1).
    project_id: Forecast project ID (must be >= 1).
    person_id: Forecast person ID.
    start_date: New start date (YYYY-MM-DD).
    end_date: New end date (YYYY-MM-DD).
    allocation: New allocation in minutes per day.
    notes: New notes.
delete_assignmentA

Delete a Forecast assignment.

Args:
    assignment_id: ID of the assignment to delete (must be >= 1).
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.

Args:
    from_date: Starting date (YYYY-MM-DD).
get_project_heatmapA

Get a scheduling heatmap for a Forecast project.

Args:
    project_id: Forecast project ID.
    from_date: Start date (YYYY-MM-DD).
    to_date: End date (YYYY-MM-DD).
    scale: Time scale — "daily" or "weekly".
get_person_heatmapC

Get a scheduling heatmap for a Forecast person.

Args:
    person_id: Forecast person ID.
    from_date: Start date (YYYY-MM-DD).
    to_date: End date (YYYY-MM-DD).
    scale: Time scale — "daily" or "weekly".
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.

Args:
    project_id: Forecast project ID.
get_forecast_personB

Get details for a single Forecast person by ID.

Args:
    person_id: Forecast person ID.
get_future_scheduled_hours_for_projectA

Get future scheduled hours for a specific Forecast project.

Args:
    from_date: Starting date (YYYY-MM-DD).
    project_id: Forecast project ID.
get_assigned_peopleC

Get a mapping of Forecast project IDs to the person IDs assigned to each.

Args:
    start_date: Start of date range (YYYY-MM-DD).
    end_date: End of date range (YYYY-MM-DD).
get_placeholder_heatmapA

Get a scheduling heatmap for a Forecast placeholder.

Args:
    placeholder_id: Forecast placeholder ID.
    from_date: Start date (YYYY-MM-DD).
    to_date: End date (YYYY-MM-DD).
    scale: Time scale — "daily" or "weekly".
person_scheduleA

Get a person's complete schedule: Forecast assignments + Harvest time entries for the period.

Combines both APIs to show what a person is scheduled to work on (Forecast)
and what they've actually logged (Harvest) in one view.

Args:
    person_id: Forecast person ID (for assignments) — also used to look up
        the corresponding Harvest user if the person has a harvest_user_id.
    start_date: Start of date range (YYYY-MM-DD).
    end_date: End of date range (YYYY-MM-DD).
project_overviewA

Get a comprehensive project overview combining Harvest and Forecast data.

Returns Harvest project details, Forecast project details (if linked),
remaining budgeted hours, future scheduled hours, and recent time entries.

Args:
    project_id: Harvest project ID.
team_utilizationA

Get team utilization: scheduled hours (Forecast) vs logged hours (Harvest) per person.

For each Forecast person with a linked Harvest user, shows their total
scheduled allocation and total logged hours in the date range, with a
utilization percentage.

Args:
    start_date: Start of date range (YYYY-MM-DD).
    end_date: End of date range (YYYY-MM-DD).
who_is_availableA

Find people who have capacity (are not fully scheduled) in a date range.

Lists Forecast people whose total scheduled allocation in the period
is below the given threshold, so they can take on more work.

Args:
    start_date: Start of date range (YYYY-MM-DD).
    end_date: End of date range (YYYY-MM-DD).
    max_daily_minutes: Max allocation to be considered "available" (default 480 = 8h/day).
time_summaryA

Summarize Harvest time entries, grouped by project, user, or client.

Args:
    from_date: Start date (YYYY-MM-DD). Defaults to 7 days ago.
    to_date: End date (YYYY-MM-DD). Defaults to today.
    group_by: How to group the summary — "project", "user", or "client".
budget_statusA

Get budget burn-down: remaining budgeted hours (Forecast) vs logged hours (Harvest, last 30 days) per project.

Cross-references Forecast's remaining_budgeted_hours with recent Harvest
time entries to show which projects are burning through their budget fastest.
all_projects_scheduleA

Get a scheduling overview for all projects: assignments, assigned people, and milestones.

Combines Forecast assignments, people, and milestones into a per-project
view showing who is working on what during the date range.

Args:
    start_date: Start of date range (YYYY-MM-DD).
    end_date: End of date range (YYYY-MM-DD).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/AZX-PBC-OSS/harvest-forecast-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server