productivity
Harvest MCP Integration for Claude Agent SDK
Connect Harvest to Claude Agent SDK through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.
Connect Harvest to Claude Agent SDK
Give Claude Agent SDK workflows access to KosmoKrator integrations through a local MCP server.
Add a KosmoKrator stdio MCP server to the Claude Agent SDK options. The gateway is local, scoped to this integration, and starts with
--write=deny so Claude Agent SDK can inspect read-capable tools without receiving write access by default.
Harvest MCP Config for Claude Agent SDK
Use a narrow integration list so the agent does not load unrelated tools.
{
"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
Expose only Harvest instead of a broad multi-service tool list.
Reuse credentials already configured for the KosmoKrator CLI and Lua runtime.
Start read-only, then opt into ask or allow for trusted workspaces.
Harvest Tools Visible to Claude Agent SDK
Claude Agent SDK sees stable MCP tool names generated from the Harvest integration catalog.
| MCP tool | Source function | Type | Description |
|---|---|---|---|
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. |