productivity
Harvest MCP Integration for LangChain
Connect Harvest to LangChain through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.
Connect Harvest to LangChain
Bridge LangChain agents to local KosmoKrator integration tools through MCP or headless CLI calls.
Use the MCP gateway when the agent should discover tools, or wrap kosmo integrations:call for fixed chains. The gateway is local, scoped to this integration, and starts with
--write=deny so LangChain can inspect read-capable tools without receiving write access by default.
Harvest MCP Config for LangChain
Keep the gateway scoped to the integration and operation class needed by the chain.
{
"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 LangChain
LangChain 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. |