Skip to main content
Glama
KaterinaProtivenskiy

Productive.io MCP Server

Log Time

productive_log_time

Create a time entry in Productive.io to log work hours. Provide person, service, and date; use start/end times or minutes for duration.

Instructions

Create a new time entry in Productive.io. Requires person_id, service_id, and date. You can specify duration either as 'time' in minutes OR as 'started_at'/'ended_at' times (HH:MM format). When started_at and ended_at are provided, the duration is auto-calculated and the entry shows as a time block. ALWAYS prefer started_at/ended_at when the user mentions start/end times (e.g. '9 to 5', '09:00-17:00'). Use productive_list_people to find person IDs. Use productive_list_services to find service IDs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDate of the work in YYYY-MM-DD format
noteNoDescription of work performed
timeNoTime spent in minutes (e.g. 90 for 1.5 hours). Optional if started_at and ended_at are provided.
task_idNoOptional task ID to associate with this time entry
ended_atNoEnd time in HH:MM format (e.g. '17:00'). Used with started_at to create a time block.
person_idYesPerson ID who performed the work
service_idYesService/budget line item ID to log time against
started_atNoStart time in HH:MM format (e.g. '09:00'). Used with ended_at to create a time block.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does disclose non-obvious traits: that started_at/ended_at auto-calculates duration and renders the entry as a time block. It stops short of stating permission requirements, reversibility, or error behavior, leaving some gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and required params, then layers the duration-mode guidance and ID lookups. Every sentence adds actionable information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no output schema and no annotations, the description covers the key decision (which duration mode), prerequisites, and ID resolution. It omits what a successful call returns and any permission/side-effect caveats, but is largely sufficient to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning by explaining that 'time' and 'started_at'/'ended_at' are alternative duration specifications rather than independent fields, plus the format expectations. This interaction is not fully conveyed by the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Create a new time entry in Productive.io') and immediately scopes the required inputs. It is clearly distinguishable from the sibling list_time_entries, which only reads entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit rule for choosing between the two duration modes ('ALWAYS prefer started_at/ended_at when the user mentions start/end times') with concrete examples, and routes the agent to productive_list_people and productive_list_services to resolve IDs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.