KosmoKrator

productivity

Harvest MCP Integration for Codex

Connect Harvest to Codex through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.

12 functions 9 read 3 write Manual OAuth token auth

Connect Harvest to Codex

Use KosmoKrator as a local MCP proxy for Codex so coding sessions can reach selected integrations with explicit write policy.

Register kosmo mcp:serve as a local stdio server and choose the integration allowlist. The gateway is local, scoped to this integration, and starts with --write=deny so Codex can inspect read-capable tools without receiving write access by default.

Harvest MCP Config for Codex

Keep write access denied or ask-based unless the workspace is trusted.

{
  "mcpServers": {
    "kosmokrator-harvest": {
      "type": "stdio",
      "command": "kosmo",
      "args": [
        "mcp:serve",
        "--integration=harvest",
        "--write=deny"
      ]
    }
  }
}

Run the Gateway Manually

kosmokrator mcp:serve --integration=harvest --write=deny

Why Use KosmoKrator Here

Scoped tools

Expose only Harvest instead of a broad multi-service tool list.

Local credentials

Reuse credentials already configured for the KosmoKrator CLI and Lua runtime.

Write policy

Start read-only, then opt into ask or allow for trusted workspaces.

Harvest Tools Visible to Codex

Codex sees stable MCP tool names generated from the Harvest integration catalog.

MCP toolSource functionTypeDescription
integration__harvest__harvest_list_time_entries harvest.harvest_list_time_entries Read List Harvest time entries with optional filters for user, client, project, and date range.
integration__harvest__harvest_create_time_entry harvest.harvest_create_time_entry Write Create a new Harvest time entry for a project and task.
integration__harvest__harvest_get_time_entry harvest.harvest_get_time_entry Read Get a single Harvest time entry by its ID.
integration__harvest__harvest_update_time_entry harvest.harvest_update_time_entry Write Update an existing Harvest time entry (hours, notes, or spent_date).
integration__harvest__harvest_delete_time_entry harvest.harvest_delete_time_entry Write Delete a Harvest time entry by its ID.
integration__harvest__harvest_list_projects harvest.harvest_list_projects Read List Harvest projects with optional filters for client and active status.
integration__harvest__harvest_get_project harvest.harvest_get_project Read Get a single Harvest project by its ID.
integration__harvest__harvest_list_clients harvest.harvest_list_clients Read List Harvest clients with optional active status filter.
integration__harvest__harvest_list_tasks harvest.harvest_list_tasks Read List Harvest tasks with optional active status filter.
integration__harvest__harvest_list_users harvest.harvest_list_users Read List Harvest users with optional active status filter.
integration__harvest__harvest_get_user harvest.harvest_get_user Read Get a single Harvest user by their ID.
integration__harvest__harvest_get_current_user harvest.harvest_get_current_user Read Get the currently authenticated Harvest user profile.

Related Harvest Pages