Skip to main content
Glama
rubenlangeweg

productive-mcp-rb2

productive-mcp-rb2

npm version

An MCP (Model Context Protocol) server for Productive.io, extended with delivery-focused tools for budget burn, resource planning, and org overview.

Based on berwickgeek/productive-mcp — extended by Ruben Langeweg.


Quick Start

1. Get your credentials

  1. Log in to Productive.io

  2. Go to Settings → API integrations

  3. Generate a new token

  4. Note your API token and Organisation ID

To find your user ID: use the whoami tool after setup, or check your profile URL in Productive.io.

2. Configure your MCP host

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "productive": {
      "command": "npx",
      "args": ["-y", "productive-mcp-rb2"],
      "env": {
        "PRODUCTIVE_API_TOKEN": "your_api_token",
        "PRODUCTIVE_ORG_ID": "your_org_id",
        "PRODUCTIVE_USER_ID": "your_user_id"
      }
    }
  }
}

Restart Claude Desktop after saving.

Claude Code

claude mcp add productive -- npx -y productive-mcp-rb2

Then set your environment variables in ~/.zshrc or ~/.bashrc:

export PRODUCTIVE_API_TOKEN="your_api_token"
export PRODUCTIVE_ORG_ID="your_org_id"
export PRODUCTIVE_USER_ID="your_user_id"

3. Try it

Once configured, ask your AI assistant:

"Show me my open tasks"
"Log 2 hours to the Gadero project for today"
"Which projects are over 80% budget burn?"
"Mark task 99 as Done"

Related MCP server: TrackingTime MCP Server

Environment Variables

Variable

Required

Description

PRODUCTIVE_API_TOKEN

Yes

Your Productive.io API token

PRODUCTIVE_ORG_ID

Yes

Your organisation ID

PRODUCTIVE_USER_ID

Optional

Your user ID — enables my_tasks, me shorthand in all tools, and the productive://me/* resources


Installation

Via npx (no install required)

npx productive-mcp-rb2

Global install

npm install -g productive-mcp-rb2

Updating

npx users — no action needed. Restart your MCP host and npx resolves the latest published version.

Global install users:

npm install -g productive-mcp-rb2@latest

Local checkout users:

git pull && npm install && npm run build

Then restart your MCP host.


Automated npm publishing

This repo includes .github/workflows/npm-publish.yml.

  • Trigger: every push to main

  • Guardrail: skips publishing if the current package.json version already exists on npm

  • Auth: requires repository secret NPM_TOKEN

Typical release flow:

npm version patch
git push

Tool Reference

Tools are listed in tables, grouped by area. Read-only tools are safe to call freely; write/mutate tools are noted in the description.

People & Identity

Tool

Description

whoami

Get the current user context — shows which user ID is configured as "me".

list_people

List team members. Optional company_id, project_id, is_active, email, limit.

get_person

Get details about a person. Requires person_id.

Projects & Companies

Tool

Description

list_projects

List projects in your organisation. Optional status, company_id, limit.

list_companies

List companies (clients). Optional status, limit.

Tasks

Tool

Description

list_tasks

List tasks. Optional project_id, assignee_id, status, limit.

get_task

Get full details of a task. Requires task_id.

get_project_tasks

Get all tasks for a project. Requires project_id. Optional status.

my_tasks

Get tasks assigned to the configured user. Requires PRODUCTIVE_USER_ID.

create_task

Create a task. Requires title. Optional description, project_id, board_id, task_list_id, assignee_id (use "me"), due_date, status.

update_task_details

Update title and/or description. Requires task_id. Optional title, description.

update_task_assignment

Set or clear a task's assignee. Requires task_id, assignee_id (use "me" or "null").

update_task_status

Set task status by workflow_status_id OR status_name (case-insensitive, partial match). Requires task_id.

update_task_sprint

Move task to one or more sprints (custom field). Requires task_id.

reposition_task

Reposition a task within its list. Requires taskId. Optional move_before_id, move_after_id.

move_task_to_list

Move a task to a different task list. Requires task_id, task_list_id.

add_to_backlog

Add a task to the project backlog. Creates a Backlog list if missing. Requires task_id.

create_tasks_batch

Create multiple tasks at once. Requires tasks array.

delete_task

Permanently delete a task. Destructive. Requires task_id.

Subtasks

Tool

Description

list_subtasks

List child tasks of a parent. Requires parent_task_id. Optional limit.

create_subtask

Create a subtask under a parent. Requires parent_task_id, title. Optional project_id, task_list_id, assignee_id (use "me"), due_date, description.

Task Todos / Checklists

Tool

Description

list_todos

List checklist items on a task. Requires task_id.

get_todo

Get a single todo. Requires todo_id.

create_todo

Add a checklist item. Requires task_id, title.

update_todo

Rename a todo or toggle completed. Requires todo_id. Optional title, completed.

delete_todo

Delete a checklist item. Destructive. Requires todo_id.

Task Dependencies

Tool

Description

list_task_dependencies

List dependencies for a task. Requires task_id.

get_task_dependency

Get a single dependency by ID. Requires dependency_id.

add_task_dependency

Link two tasks. Requires task_id, depends_on_task_id. Optional type (blocking

remove_task_dependency

Remove a dependency by its ID. Destructive. Requires dependency_id.

Comments

Tool

Description

list_comments

List comments on a task. Requires task_id. Optional project_id, limit.

get_comment

Get a comment by ID. Requires comment_id.

add_task_comment

Add a comment to a task. Requires task_id, comment.

update_comment

Edit a comment's body. Requires comment_id, body.

pin_comment

Pin a comment to the top. Requires comment_id.

unpin_comment

Unpin a comment. Requires comment_id.

add_comment_reaction

Add a reaction (e.g. like). Requires comment_id, reaction.

delete_comment

Delete a comment. Destructive. Requires comment_id.

Attachments

Tool

Description

list_attachments

List file attachments on a task or comment. Requires task_id or comment_id.

Boards & Task Lists

Tool

Description

list_boards

List boards in a project.

create_board

Create a board. Requires project_id, name.

list_task_lists

List task lists. Optional board_id, limit.

get_task_list

Get a single task list. Requires task_list_id.

create_task_list

Create a task list. Requires board_id, project_id, name.

update_task_list

Rename a task list. Requires task_list_id, name.

archive_task_list

Archive a task list (reversible). Requires task_list_id.

restore_task_list

Restore an archived task list. Requires task_list_id.

reposition_task_list

Reposition a task list. Requires task_list_id. Optional move_before_id.

Folders

Folders group boards within a project.

Tool

Description

list_folders

List folders. Optional project_id, status (1=active, 2=archived), limit.

get_folder

Get a single folder. Requires folder_id.

create_folder

Create a folder. Requires project_id, name.

update_folder

Rename a folder. Requires folder_id, name.

archive_folder

Archive a folder (reversible). Requires folder_id.

restore_folder

Restore an archived folder. Requires folder_id.

Workflow Statuses

Tool

Description

list_workflow_statuses

List workflow statuses. Optional workflow_id, category_id (1=Not Started, 2=Started, 3=Closed), limit.

Time Entries

Time entry creation follows a 5-step workflow: project → deal → service → task → create.

Tool

Description

list_time_entries

View existing time entries. Optional date, after, before, person_id (use "me"), project_id, limit.

create_time_entry

Create a time entry (step 5 of the workflow). Requires service_id, time, date, note (≥10 chars).

update_time_entry

Update an existing time entry. Requires time_entry_id. Optional time, note, date.

delete_time_entry

Delete a time entry. Destructive. Requires time_entry_id.

list_services

List all services in the org.

list_project_deals

List deals/budgets for a project (step 2). Requires project_id.

list_deal_services

List services for a deal (step 3). Requires deal_id.

get_project_services

Convenience: get services for a project across all deals. Requires project_id.

Memberships

Tool

Description

list_memberships

List project/team memberships. Optional project_id, person_id, limit.

Expenses

Tool

Description

list_expenses

List expenses. Optional person_id (use "me"), project_id, after, before, limit.

create_expense

Log an expense. Requires date, amount. Optional project_id, deal_id, note, billable.

Invoices

Tool

Description

list_invoices

List invoices. Optional company_id, project_id, status, after, before, limit.

get_invoice

Get a single invoice. Requires invoice_id.

Activity & Pages

Tool

Description

list_activities

List activities (changes/updates). Optional project_id, person_id, date range, limit.

get_recent_updates

Summary of recent updates with breakdown by item type. Optional days.

list_pages

List knowledge base pages. Optional project_id, limit.

get_page

Get full content of a page. Requires page_id.

create_page

Create a new page. Requires project_id, title. Optional body (HTML), parent_page_id.

update_page

Update title and/or body. Requires page_id. Optional title, body.

move_page

Move a page under another parent. Requires page_id, target_doc_id.

copy_page

Copy a page from a template. Requires template_id. Optional project_id.

delete_page

Delete a page. Destructive. Requires page_id.


rb2 Delivery Tools

These tools are extended beyond the core Productive.io API and are tailored for rb2's delivery workflow.

Tool

Description

get_budget_burn

Budget burn analysis with RAG status (Green <70%, Amber 70-90%, Red >90%). Optional min_burn_pct, project_id.

get_resource_plan

Team bookings and utilisation for a date range. Optional person_name, project_id, after, before.

get_overbooked_people

Detect team members exceeding capacity. Optional threshold_pct, after, before.

get_org_overview

rb2 headcount per subsidiary (NL, SCAPE, Code Blue, CN, PT, NG) with active project counts.

list_bookings

Raw resource bookings/capacity entries. Optional person_id (use "me"), project_id, date range.


Common Workflows

Updating task status by name

update_task_status accepts a status_name instead of an ID — it auto-resolves against the project's workflow statuses (case-insensitive, partial match).

"Move task 12345 to In Progress"
   → update_task_status(task_id="12345", status_name="In Progress")

If the name is ambiguous or missing, the tool returns the available statuses so you can retry with workflow_status_id.

Creating a subtask

"Add a subtask 'Write tests' under task 12345 assigned to me"
   → create_subtask(parent_task_id="12345", title="Write tests", assignee_id="me")

Logging time (5-step flow)

list_projects
   → list_project_deals(project_id)
      → list_deal_services(deal_id)
         → get_project_tasks(project_id)         # optional, to link a task
            → create_time_entry(service_id, time, date, note)

The simplest approach is to use the timesheet prompt, which walks through every step automatically.

Managing knowledge base pages

"Create a runbook for project 12345 with the deployment steps"
   → create_page(project_id="12345", title="Deployment Runbook", body="<p>...</p>")

"Move page 999 under page 100"
   → move_page(page_id="999", target_doc_id="100")

Pinning an important comment

list_comments(task_id) → pick the comment ID → pin_comment(comment_id)

Prompts (5 total)

Prompts are pre-built workflow templates that guide the AI through multi-step operations. Invoke them by name in Claude Desktop or with /mcp__productive__<name> in Claude Code.

timesheet

Guided workflow for creating timesheet entries. Walks through project → budget → service → task → time entry selection with proper validation. Accepts optional hints to pre-fill the workflow.

Arguments:

  • project — project name or ID to start with (optional)

  • datetoday, yesterday, or YYYY-MM-DD (optional)

  • time — duration like "2h", "120m", "1.5h" (optional)

  • work_description — brief description of work performed (optional)

quick_timesheet

Step-by-step guidance for a specific stage of the timesheet workflow. Use when you're already partway through and need help with a specific step: project, budget, service, task, or create.

Arguments:

  • step — current step: project, budget, service, task, or create

  • project_id — project ID if already selected (optional)

  • deal_id — deal/budget ID if already selected (optional)

  • service_id — service ID if already selected (optional)

  • task_id — task ID if already selected (optional)

weekly_report

Generate a structured weekly status report for a team member: time logged, tasks completed, in-progress work.

Arguments:

  • person_id — person to report on (leave blank to use the configured user)

  • week_start — start of the week in YYYY-MM-DD format (defaults to current Monday)

project_health

Full project health check: budget burn, open tasks, team capacity, and recent activity — produces a RAG-rated summary.

Arguments:

  • project_id — the Productive.io project ID to analyse

sprint_planning

Walk through sprint planning: review backlog, check capacity, select tasks, create new ones, and assign the team.

Arguments:

  • project_id — the project ID to plan the sprint for

  • sprint_name — name for the new sprint (e.g. "Sprint 12")


Resources (6 total)

Resources are read-only data sources you can reference directly. In Claude, prefix with @productive or use the URI scheme productive://.

Resource

Description

productive://projects

All active projects in Productive.io — names, IDs, and status.

productive://org/overview

rb2 headcount per subsidiary and total active projects.

productive://me/tasks

Open tasks assigned to the configured user. Requires PRODUCTIVE_USER_ID.

productive://me/today

Time entries logged today by the configured user. Requires PRODUCTIVE_USER_ID.

productive://projects/{id}/tasks (template)

Open tasks for a specific project. Replace {id}.

productive://tasks/{id} (template)

Full details of a specific task. Replace {id}.


Timesheet Workflow

The recommended workflow for logging time follows a strict hierarchy:

list_projects
    ↓
list_project_deals       (get budgets for the project)
    ↓
list_deal_services       (get services for the budget)
    ↓
list_tasks               (optional: find task to link)
    ↓
create_time_entry        (log time with service_id + notes)

The simplest approach is to use the timesheet prompt, which walks through all steps automatically.


Repository

github.com/rubenlangeweg/productive-mcp

License

ISC

Available Tools

83 tools
add_comment_reactionadd_comment_reactionA

Add a reaction emoji (e.g. "like") to a comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesThe ID of the comment to react to
reactionYesThe reaction key (e.g. "like", "heart", "thumbs_up")

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, and the description aligns with that. However, no additional behavioral traits (e.g., idempotency, rate limits) are disclosed beyond what annotations provide.

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?

The description is a single concise sentence that is front-loaded with the core action and includes an example, with no unnecessary words.

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 a simple tool with two parameters and no output schema, the description is nearly complete. It could hint at whether the reaction key is case-sensitive or list supported values, but the schema already provides examples.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are described adequately. The tool description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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?

The description clearly states the action (add), resource (reaction emoji to a comment), and provides an example ('like'). It distinguishes from sibling tools like add_task_comment, pin_comment, and others that handle different comment operations.

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

Usage Guidelines3/5

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

The description implies usage for adding reactions but does not explicitly state when to use or not use this tool, nor does it mention alternatives or exclusions.

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

add_task_commentadd_task_commentB

Add a comment to a task in Productive.io.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to add the comment to (required)
commentYesText content of the comment (required)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate it's mutable and non-destructive, so the description is consistent but adds no extra behavioral context beyond the obvious 'add' action.

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

Conciseness4/5

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

The description is extremely concise at 10 words, but it could be slightly more informative without becoming verbose, so it's efficient but not maximally helpful.

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

Completeness3/5

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

For a simple mutation with two parameters and clear annotations, the description is adequate but misses contextual details like requiring existing tasks or character limits.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond what the schema already provides for the two parameters.

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?

The description clearly states the action 'Add a comment to a task' with a specific verb and resource, distinguishing it from sibling tools like delete_comment or add_comment_reaction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., add_comment_reaction), nor are there any exclusions or prerequisites mentioned.

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

add_task_dependencyadd_task_dependencyB

Add a dependency relationship between two tasks in Productive.io.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe ID of the task that has the dependency
depends_on_task_idYesThe ID of the task being depended upon
typeNoDependency type: blocking (task_id blocks depends_on), waiting_on (task_id waits on depends_on), related (general relation). Default: blocking.blocking

TDQS

B3.1/5.0
Behavior2/5

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

Annotations indicate this is a write operation (readOnlyHint false) and not destructive (destructiveHint false). The description adds no further behavioral details, such as error behavior or side effects. Minimal transparency beyond annotations.

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

Conciseness4/5

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

Extremely concise, one sentence. No wasted words. However, it is almost too brief and could include minimal context without harming conciseness.

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

Completeness2/5

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

No output schema, so the description should explain expected return or error cases. It lacks any mention of prerequisites or consequences. For a mutation tool, this is insufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100%; the description does not add any meaning beyond the schema. The schema already documents each parameter and the enum values. No additional semantics provided.

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?

The description clearly states the action: 'Add a dependency relationship between two tasks.' The verb 'add' and resource 'dependency' are specific, and it distinguishes from sibling tools like remove_task_dependency and get_task_dependency.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like remove_task_dependency. No mention of prerequisites or context. Simply states action without situational advice.

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

add_to_backlogadd_to_backlogB

Add a task to the project backlog. Creates a Backlog task list if it doesn't exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to add to backlog
project_idYesID of the project containing the task

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, so the description correctly implies a write operation. It adds a behavioral trait: automatic creation of the Backlog list if missing. This is useful but more detail on idempotency or failure modes would improve transparency.

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?

Two concise sentences. The first states the primary action, the second adds a key behavioral note. No filler or redundancy. Every word serves a purpose.

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 a tool with two simple parameters and no output schema, the description covers the main action and relevant side effect. It lacks error conditions or return value notes, but these are partially mitigated by the input schema and annotations. Overall adequate.

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add additional meaning beyond the schema's parameter descriptions. The baseline for high coverage is 3, and no extra semantic clues are provided.

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

Purpose4/5

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

Description clearly states the action: 'Add a task to the project backlog.' It also mentions a side effect (creating Backlog list if missing) which helps distinguish from generic task creation. However, it does not explicitly differentiate from sibling tools like 'move_task_to_list' or 'create_task_list', so a score of 4 is appropriate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention prerequisites, contexts, or when not to use it. In a list of many siblings, this lack of usage direction hampers correct selection.

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

archive_folderarchive_folderA
Idempotent

Archive a folder. This is reversible — use restore_folder to undo.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYesThe ID of the folder to archive

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate non-destructive and idempotent. Description adds value by clarifying reversibility, which aligns with annotations. No contradictions.

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?

Two short sentences with no superfluous information. Every word earns its place.

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

Completeness5/5

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

Given the single required parameter, no output schema, and annotations covering safety, the description is complete. It explains the action and reversibility.

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

Parameters3/5

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

Schema coverage is 100% and parameter description is adequate. Description adds no extra meaning beyond 'the ID of the folder to archive' already in the schema.

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?

Description uses specific verb 'Archive' and resource 'folder'. It directly states the action and distinguishes from siblings by noting the reversal tool 'restore_folder'.

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

Usage Guidelines4/5

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

Explicitly states that the operation is reversible and recommends using 'restore_folder' to undo, providing clear guidance on when to use the alternative. Lacks broader context about when to archive vs other folder actions, but sufficient for a simple tool.

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

archive_task_listarchive_task_listA
Idempotent

Archive a task list. This is reversible — use restore_task_list to undo.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_list_idYesThe ID of the task list to archive

TDQS

A4.2/5.0
Behavior4/5

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

The description adds context about reversibility, which is not fully captured by annotations (idempotentHint=true, destructiveHint=false). It reassures the agent that the action is not permanent, complementing the annotations.

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?

Two succinct sentences, with the first stating the primary action and the second providing important context about reversibility. No extraneous words, front-loaded with the key purpose.

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?

Given the tool's simplicity (single required parameter, no output schema, no nested objects), the description is complete enough. It explains the core function and reversibility, which are the only critical behavioral aspects.

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

Parameters3/5

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

The input schema already has 100% description coverage with a clear parameter 'task_list_id'. The description does not add additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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?

The description clearly states the action ('Archive') and the resource ('task list'). It distinguishes from the sibling tool 'restore_task_list' by mentioning reversibility and suggesting the undo tool.

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

Usage Guidelines4/5

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

It explicitly says 'This is reversible — use restore_task_list to undo,' giving clear guidance on when to use the undo tool. However, it does not state when not to use this tool, though context implies it should be used for archiving, not deleting.

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

copy_pagecopy_pageA

Copy a page to create a new page from a template. Optionally specify a destination project.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_idYesThe ID of the source page to copy from
project_idNoOptional destination project ID (defaults to source project)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate a non-read-only, non-destructive operation. The description adds the detail that the destination defaults to the source project, but does not discuss side effects, required permissions, or behavior when copying complex pages.

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?

Two concise sentences (15 words) with a clear verb and resource. No filler, front-loaded with key information.

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

Completeness3/5

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

For a simple copy tool, the description covers the essential action and optional parameter, but lacks details on whether attachments, comments, or child pages are copied. Adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions. The description reiterates the template and destination concepts, adding minimal new meaning beyond the schema.

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?

The description clearly states the action ('copy a page') and the result ('create a new page from a template'), distinguishing it from siblings like create_page (creates from scratch) and move_page (relocates).

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

Usage Guidelines3/5

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

The description implies usage when duplicating a page as a template and optionally specifying a destination, but does not explicitly compare with alternatives or state when not to use this tool.

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

create_boardcreate_boardB

Create a new board in a Productive.io project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe ID of the project to create the board in
nameYesName of the board
descriptionNoDescription of the board

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false; description adds no extra behavioral context (e.g., permissions required, side effects, or return value).

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?

Single sentence, 10 words, no wasted text. Perfectly concise for the information conveyed.

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

Completeness2/5

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

Simple creation tool with 3 parameters and no output schema; description lacks details on return value, side effects, or post-conditions, leaving gaps for the agent.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds no additional meaning beyond what's in the schema. Baseline 3 is appropriate.

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?

Description clearly states the verb 'create', the resource 'board', and the context 'Productive.io project'. It effectively distinguishes from sibling tools like create_task or create_folder.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., create_task_list, create_page). No mention of prerequisites or when not to use it.

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

create_expensecreate_expenseA

Create a new expense record in Productive.io. Use get_project_services to find a valid service_id first.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName/title of the expense (required)
dateYesDate of the expense (YYYY-MM-DD) (required)
amountYesExpense amount (required)
currencyYesCurrency code, e.g. EUR, USD (required)
service_idYesService ID to link this expense to — use get_project_services to find valid IDs (required)
person_idYesPerson ID who incurred the expense. Use "me" if PRODUCTIVE_USER_ID is configured. (required)
noteNoAdditional notes (optional)
billableNoWhether the expense is billable to the client (default: false)

TDQS

A4.4/5.0
Behavior4/5

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

The description correctly indicates a write operation ('create'), which aligns with annotations (readOnlyHint=false). It also discloses a prerequisite (service_id from get_project_services). No annotation contradiction. Could mention potential side effects or idempotency, but annotations already cover safety.

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?

The description is two sentences, concise and front-loaded with the main purpose. Every word is useful, no redundancy.

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?

Given the tool's complexity (8 parameters, 6 required, no output schema) and complete schema descriptions, the description adequately covers the essential information: what it does and a key prerequisite. It could mention possible errors or response format, but it's sufficient for an agent to select and 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 baseline is 3. The description adds value by emphasizing the need to call get_project_services for service_id, which goes beyond the schema description. This compensates and provides practical guidance.

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?

The description clearly states the action ('Create a new expense record'), the resource ('expense record'), and the system ('Productive.io'). It also differentiates from sibling tools by specifying the expense domain and providing a prerequisite step.

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

Usage Guidelines4/5

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

The description explicitly instructs the agent to use get_project_services to find a valid service_id first. This provides clear usage guidance. However, it does not mention when not to use this tool (e.g., if the goal is to list expenses).

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

create_foldercreate_folderB

Create a new folder inside a project to group boards.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe ID of the project the folder belongs to
nameYesFolder name

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already indicate non-readOnly and non-destructive behavior. The description adds no extra behavioral details such as permission requirements, side effects (e.g., duplicate handling), or constraints beyond the basic 'Create' action.

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?

The description is a single, concise sentence (12 words) that is front-loaded with the action and resource, with no wasted words.

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

Completeness2/5

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

The tool has no output schema, but the description does not mention what the tool returns (e.g., the created folder object) or any potential error conditions. This leaves gaps in the agent's understanding.

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

Parameters3/5

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

Schema description coverage is 100% with both parameters already described. The description does not add any additional meaning or context to the parameters beyond what the schema provides.

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?

The description clearly states the action ('Create'), the resource ('folder'), its location ('inside a project'), and its purpose ('to group boards'). It distinguishes itself from sibling tools like 'create_board' and 'archive_folder'.

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

Usage Guidelines3/5

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

The description implies usage for organizing boards into a folder but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or conditions.

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

create_pagecreate_pageA

Create a new knowledge base page in a project. Optionally nest under a parent page.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe ID of the project to create the page in
titleYesTitle of the new page
bodyNoOptional HTML body for the page
parent_page_idNoOptional parent page ID to nest the new page under

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate non-read-only and non-destructive. Description adds context about creating a knowledge base page with optional nesting, but does not elaborate on return value or side effects.

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?

Two sentences, front-loaded with essential purpose, no redundant information.

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?

Given parameter count (4, required 2) and no output schema, the description is sufficient for a creation tool, though could mention return behavior.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter is described. The description's mention of 'nest under a parent page' adds context for parent_page_id but does not significantly surpass the schema descriptions.

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?

Clearly states 'Create a new knowledge base page' with specific verb and resource, and distinguishes from siblings like create_task or create_board by mentioning 'knowledge base page' and optional nesting.

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

Usage Guidelines3/5

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

Implies use when you need to create a page in a project, but does not explicitly state when not to use or mention alternatives from sibling tools.

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

create_subtaskcreate_subtaskA

Create a new subtask under a parent task. If PRODUCTIVE_USER_ID is configured, "me" can be used for assignee_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_task_idYesThe ID of the parent task
titleYesSubtask title
project_idYesProject ID for the subtask (required by API)
task_list_idYesTask list ID for the subtask (required by API)
assignee_idNoOptional assignee ID. Use "me" for the configured user.
due_dateNoOptional due date in YYYY-MM-DD format
descriptionNoOptional subtask description

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds minor behavioral context about the 'me' placeholder for assignee_id but does not discuss success/failure behavior or side effects beyond schema descriptions.

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?

The description is extremely concise with only two sentences, each adding distinct value. The primary action is front-loaded, and the special usage note is placed second. No redundant or unnecessary information.

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?

Given the lack of output schema, the description reasonably covers the main action and a key edge case (assignee_id 'me'). However, it could be more complete by mentioning the structure of the response (e.g., returns the created subtask) or any prerequisites for the parent task to exist. Overall, it is adequate for a straightforward creation tool.

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 description coverage is 100%, so all parameter meanings are already defined in the schema. The description enhances semantic understanding by explaining that 'me' can substitute for a user ID in assignee_id, which adds value beyond the schema's description.

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?

The description clearly states the action ('create'), resource ('subtask'), and relationship ('under a parent task'). It distinguishes from sibling tools like create_task and create_tasks_batch by specifying the subtask context. The additional note about using 'me' for assignee_id adds specificity.

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

Usage Guidelines4/5

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

The description provides a specific guideline for using 'me' as assignee_id when PRODUCTIVE_USER_ID is configured, which helps the agent decide when that shorthand is applicable. However, it does not explicitly state when to prefer this tool over alternatives like create_task or when not to use it.

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

create_taskcreate_taskB

Create a new task in Productive.io. If PRODUCTIVE_USER_ID is configured, you can use "me" to refer to the configured user when assigning.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask title (required)
descriptionNoTask description
project_idYesID of the project to add the task to (required by the API)
board_idNoID of the board to add the task to
task_list_idNoID of the task list to add the task to
assignee_idNoID of the person to assign the task to. If PRODUCTIVE_USER_ID is configured in environment, "me" refers to that user.
due_dateNoDue date in YYYY-MM-DD format
statusNoTask status (default: open)

TDQS

B3.4/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, consistent with creation. The description adds no further behavioral context (e.g., side effects, return value, idempotency).

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?

Two concise sentences: the first states purpose, the second provides a useful parameter tip. No redundancy.

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

Completeness2/5

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

Despite full schema coverage, the description omits critical context: return format (e.g., task ID), environment variable setup for 'me', and error handling. Lacks completeness for a complex creation tool.

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%, but the description adds value by explaining the 'me' alias for assignee_id, leveraging an environment variable. This goes beyond the schema description.

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?

The description clearly states 'Create a new task in Productive.io' with a specific verb and resource, distinguishing it from sibling tools like create_subtask or create_tasks_batch.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., create_subtask, create_tasks_batch) or prerequisites like project existence. The only hint is about the 'me' alias for assignee_id.

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

create_task_listcreate_task_listA

Create a new task list in a Productive.io board. Task lists help organize tasks within boards.

ParametersJSON Schema
NameRequiredDescriptionDefault
board_idYesThe ID of the board to create the task list in
project_idYesThe ID of the project
nameYesName of the task list
descriptionNoDescription of the task list

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds no further behavioral details beyond stating 'Create', so it does not exceed what annotations already provide.

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?

Two sentences, no redundancy, front-loaded with the action. Every sentence adds value.

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

Completeness3/5

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

No output schema; description does not mention return values or behavior on creation. For a straightforward creation tool with documented parameters, it is minimally complete but could benefit from listing prerequisites or side effects.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already describes all parameters. The description adds no additional semantics beyond the schema content.

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?

The description clearly states the action 'Create', the resource 'task list', and the context 'in a Productive.io board'. It distinguishes from sibling tools like archive_task_list or update_task_list by specifying creation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Lacks 'when not to use' or references to other tools like create_task or create_tasks_batch.

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

create_tasks_batchcreate_tasks_batchA

Create multiple tasks at once in Productive.io. Each task is created independently — failures on individual tasks do not abort the others. Shared project/board/task_list can be set at the top level and overridden per task.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYesArray of tasks to create (max 20)
project_idNoDefault project ID for all tasks (can be overridden per task)
board_idNoDefault board ID for all tasks (can be overridden per task)
task_list_idNoDefault task list ID for all tasks (can be overridden per task)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, and the description adds that failures are independent. No details on authorization or rate limits, but adequate for a creation tool.

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

Conciseness4/5

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

Two well-structured sentences with no fluff. Could be slightly improved by front-loading the batch behavior, but it's clear and efficient.

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?

Given no output schema, the description could mention return values (e.g., list of created task IDs). It does cover key behavioral aspects and differentiators from siblings.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. The description explains the default/override pattern which is not explicitly in the schema but adds clarity.

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?

The description clearly states 'Create multiple tasks at once' with the specific resource (tasks) and action (batch creation), distinguishing it from the sibling tool 'create_task' which handles single tasks.

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

Usage Guidelines4/5

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

It specifies batch creation with independent failure handling and shared/override behavior. However, it does not explicitly advise to use 'create_task' for a single task, though the context implies it.

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

create_time_entrycreate_time_entryA

STEP 5 (FINAL) of timesheet workflow: Create a time entry with detailed work description. COMPLETE WORKFLOW: 1) list_projects → 2) list_project_deals → 3) list_deal_services → 4) list_project_tasks (recommended) → 5) create_time_entry. You MUST provide: valid service_id from the hierarchy, detailed work notes (minimum 10 chars), and optionally link to a specific task_id. This tool requires confirmation before creating. If PRODUCTIVE_USER_ID is configured, use "me" for person_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate for the time entry. Accepts "today", "yesterday", or YYYY-MM-DD format (required)
timeYesTime duration. Accepts formats like "2h", "120m", "2.5h", or "2.5" (assumed hours) (required)
person_idYesID of the person logging time. If PRODUCTIVE_USER_ID is configured in environment, "me" refers to that user. (required)
service_idYesID of the service being performed (required)
task_idNoID of the task being worked on (recommended - use list_project_tasks to find available tasks)
noteYesREQUIRED: Detailed description of work performed - be specific about what was accomplished, include bullet points if multiple items (minimum 10 characters)
billable_timeNoBillable time duration, same format as time field. If not specified, defaults to the time value (optional)
confirmNoSet to true to confirm and create the time entry. First call without this to see confirmation details.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations are minimal (readOnlyHint=false, destructiveHint=false). The description adds critical behavioral context: the tool requires a two-step confirmation (first call without confirm to see details, then set confirm=true). It also discloses that person_id can be 'me' if PRODUCTIVE_USER_ID is configured. This provides transparency beyond what annotations offer.

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?

The description is concise yet information-dense. It opens with the workflow step, then lists the workflow, followed by key requirements and behavioral notes. Every sentence serves a purpose, and the numbered list aids readability. Ideal length for quick parsing.

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

Completeness5/5

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

Given 8 parameters (5 required), no output schema, and minimal annotations, the description covers all essential aspects: the complete workflow, prerequisites, confirmation mechanics, parameter details (including defaults for billable_time), and environment-specific behavior (PRODUCTIVE_USER_ID). An AI agent has sufficient information to invoke the tool 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?

While input schema covers all parameters (100% coverage), the description enriches meaning: for note, it advises specificity and bullet points (beyond schema's minLength); for confirm, it explains the two-step process; for person_id, it explains 'me' mapping. It also reiterates the workflow context for service_id and task_id. This adds value beyond the schema descriptions.

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?

The description clearly states 'STEP 5 (FINAL) of timesheet workflow: Create a time entry with detailed work description.' It specifies the exact resource (time entry) and verb (create), and distinguishes from siblings like update_time_entry and delete_time_entry by placing it in a workflow context.

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?

The description provides an explicit numbered workflow (list_projects → ... → create_time_entry) indicating prerequisites. It details required fields (service_id, note min 10 chars) and optional task_id. It explains the confirmation process with the confirm parameter and the 'me' shorthand for person_id based on environment configuration. This guides when and how to use the tool versus alternatives.

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

create_todocreate_todoA

Create a new todo/checklist item on a task in Productive.io.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe ID of the task to add the todo to
descriptionYesThe todo item text

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare it as non-read-only and non-destructive. The description adds no extra behavioral details (e.g., idempotency, prerequisites, side effects), but it does not contradict annotations.

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?

Single sentence, 11 words, no redundancy. Front-loaded with key action and resource. Every word earns its place.

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

Completeness3/5

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

No output schema exists, and the description does not mention what the tool returns (e.g., the created todo object). For a simple creation tool, this omission reduces completeness.

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

Parameters3/5

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

Input schema has 100% coverage, so both parameters are described in the schema. The description adds no additional parameter information beyond referencing the task.

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?

The description clearly states the action ('Create') and the resource ('new todo/checklist item on a task'), and specifies the domain ('Productive.io'). This distinguishes it from sibling tools like delete_todo, list_todos, etc.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like create_subtask or add_task_comment. The purpose is implied but not contrasted.

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

delete_commentdelete_commentB
Destructive

Delete a comment from Productive.io. This action is destructive.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesThe ID of the comment to delete

TDQS

B3.3/5.0
Behavior2/5

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

The description redundantly states 'destructive' which is already declared by the destructiveHint annotation. No behavioral details are added, such as irreversibility, cascading effects on replies, or authentication requirements. The description fails to provide value beyond the annotation.

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?

The description is extremely concise — two short sentences that convey the core action and its destructive nature. No unnecessary words or fluff.

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

Completeness3/5

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

For a simple delete operation with one parameter and no output schema, the description is adequate but could mention that deletion is permanent or that it removes replies. It does not explain error cases or success indicators. It is minimally complete.

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

Parameters3/5

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

With 100% schema description coverage, the description adds no extra meaning to the single parameter (comment_id). The schema already describes it as 'The ID of the comment to delete', so the description is sufficient but not enhanced.

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?

The description clearly states the verb 'Delete', the resource 'a comment', and the platform 'Productive.io'. It effectively distinguishes this tool from sibling comment tools like add_comment_reaction, update_comment, and list_comments.

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

Usage Guidelines2/5

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

The description lacks guidance on when to use this tool versus alternatives, such as prerequisites (e.g., comment ownership) or when not to use (e.g., if the comment is referenced elsewhere). The only context is the destructive hint from annotations, but the description itself provides no explicit usage context.

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

delete_pagedelete_pageA
Destructive

Delete a knowledge base page. This action is destructive.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesThe ID of the page to delete

TDQS

A3.6/5.0
Behavior3/5

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

The description repeats the destructive hint already provided by the annotations, adding no new behavioral context. With annotations covering the safety profile, this is adequate but not additive.

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?

The description is extremely concise with two sentences, front-loading the purpose and adding a single critical behavioral note. There is no wasted text.

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 a simple destructive tool with one required parameter and full annotation coverage, the description is nearly complete. However, it omits any mention of irreversible consequences or error conditions, which could be useful.

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

Parameters3/5

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

The schema already describes the single parameter page_id with sufficient detail (100% coverage). The description adds no extra meaning beyond the schema, achieving the baseline.

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?

The description explicitly states 'Delete a knowledge base page', which is a specific verb and resource, clearly distinguishing it from sibling tools like delete_task or delete_comment.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions for safe use, leaving the agent without decision support.

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

delete_taskdelete_taskA
Destructive

Permanently delete a task in Productive.io. This action is destructive and irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe ID of the task to delete

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already provide destructiveHint: true, but the description adds context by stating 'destructive and irreversible', which reinforces and clarifies the behavior beyond the annotation flag.

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?

Single sentence that is direct and free of unnecessary words. Front-loaded with key action and resource.

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

Completeness5/5

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

Given the simplicity of the tool (single parameter, no output schema), the description fully covers the necessary information to invoke it correctly.

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

Parameters3/5

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

The schema description coverage is 100% for the single parameter task_id, so the description adds no extra meaning beyond what the schema already provides.

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?

The description clearly states the verb 'delete' and the resource 'task', explicitly noting it is permanent and irreversible. It distinguishes itself from sibling tools like archive_task_list or delete_comment.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. It only states what it does, not when it should be preferred or avoided.

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

delete_time_entrydelete_time_entryA
Destructive

Delete a time entry from Productive.io. This action is irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
time_entry_idYesID of the time entry to delete (required)

TDQS

A4.2/5.0
Behavior4/5

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

Adds 'irreversible', which complements the destructiveHint annotation. It does not mention permissions or side effects, but the added behavioral context is valuable.

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?

Two efficient sentences, front-loaded with purpose. No filler words.

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 a simple delete with one param and no output schema, the description is fairly complete. It could mention the response, but overall adequate.

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

Parameters3/5

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

The description adds no information about the parameter beyond the input schema, which already has 100% coverage. Baseline of 3 is appropriate.

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?

Clearly states 'Delete a time entry', specifying the verb and resource. The mention of 'Productive.io' adds context, and the irreversible nature distinguishes it from update tools like 'update_time_entry'.

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

Usage Guidelines4/5

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

The irreversibility warning implies cautious use, but no explicit when-to-use or alternatives are given. It could mention 'update_time_entry' as an alternative if modification is intended.

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

delete_tododelete_todoA
Destructive

Delete a todo/checklist item from a task in Productive.io.

ParametersJSON Schema
NameRequiredDescriptionDefault
todo_idYesThe ID of the todo item to delete

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, so the description adds little beyond stating the delete action. No additional behavioral traits (e.g., irreversibility, cascading effects) are mentioned.

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

Conciseness4/5

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

The description is concise with a single sentence. It is front-loaded and clear, though could optionally include a note about consequences without losing conciseness.

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

Completeness5/5

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

For a simple tool with one parameter and no output schema, the description fully covers the necessary information: what the tool does and what input is required.

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

Parameters3/5

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

With 100% schema coverage, the schema already documents the todo_id parameter. The description does not add meaning beyond the schema's description.

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?

The description clearly states the action ('Delete'), the resource ('todo/checklist item'), and context ('from a task in Productive.io'), which distinguishes it from sibling tools like create_todo or update_todo.

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

Usage Guidelines3/5

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

The description implicitly indicates when to use the tool (when deleting a todo), but it does not provide explicit guidance on when not to use it or mention alternatives like update_todo or archive.

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

get_budget_burnget_budget_burnA
Read-only

Analyse budget burn for rb2 projects. Returns budget value, amount spent, burn %, remaining, and RAG status per budget deal. RAG: 🟢 <70% / 🟡 70-90% / 🔴 >90%. Use min_burn_pct=70 to show only at-risk projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoFilter to a specific project ID
limitNoMax budgets to analyse (default 30)
min_burn_pctNoOnly show budgets above this burn % (default 0 = all)

TDQS

A4.2/5.0
Behavior3/5

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

The description aligns with readOnlyHint annotation, explains RAG status formula, and hints at filtering with min_burn_pct. However, it does not disclose default limit behavior or what happens when project_id is omitted, though annotations reduce the burden somewhat.

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?

Two sentences front-load purpose and return values, define RAG status, and provide a usage tip. Every sentence is valuable and well-structured.

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 a read-only analysis tool with 3 optional parameters and no output schema, the description adequately covers purpose, return fields, RAG logic, and a practical usage tip. Could mention default limit or scoping, but overall complete.

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 description coverage is 100%, but the description adds value by suggesting a specific usage of min_burn_pct (showing at-risk projects) beyond the schema's generic 'Only show budgets above this burn %'.

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?

The description clearly states 'Analyse budget burn for rb2 projects' with specific verb and resource, and distinguishes itself from sibling tools like get_deal or list_project_deals by focusing on budget burn analysis.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance with 'Use min_burn_pct=70 to show only at-risk projects,' but does not explicitly mention when not to use it or alternative tools. Context is clear for the intended use case.

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

get_commentget_commentA
Read-only

Get a single comment by ID, including its body and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesThe ID of the comment

TDQS

A3.9/5.0
Behavior3/5

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

The description aligns with the readOnlyHint annotation by stating 'Get', indicating a safe read operation. It adds context about the return content ('body and metadata') but does not disclose any additional behavioral traits beyond what the annotation already provides.

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?

The description is a single, concise sentence with no wasted words. It front-loads the action and resource, making it easy for an agent to quickly understand the tool's purpose.

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

Completeness5/5

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

Given the simplicity of the tool (one required parameter, no output schema, clear name), the description provides enough context for an agent to use it correctly. The sibling tools list further clarifies its distinct role.

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

Parameters3/5

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

The input schema provides full coverage (100%) for the single parameter 'comment_id' with a description. The tool description does not add further meaning or constraints beyond what the schema already states, earning a baseline score of 3.

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?

The description clearly states the verb 'Get', the resource 'a single comment by ID', and the content returned ('body and metadata'). This distinguishes it from sibling tools like 'list_comments' which retrieve multiple comments.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives such as 'list_comments' or 'get_task'. It is implied that you use it when you have a specific comment ID, but no when-not-to or direct comparisons are provided.

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

get_dealget_dealA
Read-only

Get details of a specific deal or budget by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
deal_idYesThe ID of the deal or budget

TDQS

A3.8/5.0
Behavior3/5

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

The description aligns with the readOnlyHint annotation by stating 'Get details'. However, it adds no additional behavioral context beyond what the annotation already conveys, such as error handling or rate limits.

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?

The description is a single, front-loaded sentence with no unnecessary words. Every word earns its place.

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?

The tool has only one parameter and no output schema. The description covers the basic purpose, but it could be improved by noting that it returns detailed deal information.

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

Parameters3/5

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

With 100% schema description coverage, the parameter 'deal_id' is already described as 'The ID of the deal or budget'. The description adds no meaning beyond this, so it meets the baseline with no extra value.

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?

The description clearly states the verb 'Get', the resource 'deal or budget', and the method 'by its ID'. It effectively distinguishes from sibling tools like get_comment or get_folder by specifying the entity type.

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

Usage Guidelines3/5

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

The description implies the need for a deal ID but provides no guidance on when to use this tool versus alternatives such as list_project_deals, nor does it mention edge cases like when the ID is invalid.

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

get_folderget_folderA
Read-only

Get details of a specific folder by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYesThe ID of the folder

TDQS

A4/5.0
Behavior3/5

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

The annotations already mark the tool as readOnlyHint=true, so the description does not need to state it. The description adds no extra behavioral context (e.g., required permissions, response structure), but it doesn't contradict the annotations.

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?

The description is a single, concise sentence that conveys the necessary information without extraneous details. It is front-loaded and efficient.

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 a simple read operation with one parameter and no output schema, the description is fairly complete. It could be improved by mentioning the expected return value (e.g., folder details like name and parent), but it remains adequate.

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

Parameters3/5

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

The schema coverage is 100% and the parameter description ('The ID of the folder') is minimal. The description's mention of 'by its ID' is redundant, adding no meaningful semantics beyond the schema.

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?

The description clearly states 'Get details of a specific folder by its ID', using a specific verb and resource. It distinguishes itself from sibling tools like 'list_folders' (list all) and 'update_folder' (modify).

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

Usage Guidelines4/5

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

The purpose is well-defined but does not explicitly mention when not to use this tool or suggest alternatives like 'list_folders' for retrieving multiple folders. However, the context from sibling tool names implies the distinction.

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

get_invoiceget_invoiceA
Read-onlyIdempotent

Get detailed information about a specific invoice by its Productive ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesThe ID of the invoice to retrieve (required)

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
numberNo
statusNo
totalNo
paidAmountNo
currencyNo
invoiceDateNo
dueDateNo
noteNo
companyIdNo
projectIdNo
createdAtNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and idempotentHint, so the tool's safety profile is clear. The description adds minimal behavioral context (e.g., 'detailed information') but doesn't disclose what happens if the invoice is not found or authorization needs.

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?

The description is a single sentence that is front-loaded with the verb and resource, containing no unnecessary words. Every part earns its place.

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?

Given the simple single-parameter input schema, clear annotations, and presence of an output schema, the description is largely complete. However, it could briefly mention that the tool is a read-only retrieval, which is already covered by annotations.

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?

The description adds meaning beyond the schema by specifying 'by its Productive ID', clarifying the type of ID. Since schema coverage is 100%, the description complements the schema with context about the ID format.

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?

The description clearly states the action ('Get'), the resource ('detailed information about a specific invoice'), and the identifier ('by its Productive ID'), distinguishing it from sibling tools like 'list_invoices' which lists multiple invoices.

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

Usage Guidelines3/5

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

The description implies usage when you have a specific invoice ID but does not explicitly state when to use this tool over alternatives like 'list_invoices' or other get_* tools, nor does it mention exclusions or context.

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

get_org_overviewget_org_overviewA
Read-only

Get an rb2 org-level overview: headcount per subsidiary (NL, SCAPE, Code Blue, CN, PT, NG) plus total active projects. Shows who works where across the organisation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, consistent with the description. The description adds value by detailing the data returned (headcount per subsidiary, active projects), which goes beyond the annotation.

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?

Two concise sentences, front-loaded with the action and key details. No unnecessary words.

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?

Given no parameters and no output schema, the description sufficiently explains what the tool returns. Could be slightly more explicit about output format, but still complete for its purpose.

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?

No parameters exist (schema coverage 100%). The description clarifies the output, meeting the baseline of 4 for zero-parameter tools.

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?

The description clearly states the tool's purpose: getting an org-level overview with headcount per subsidiary and total active projects. It lists specific subsidiaries, distinguishing it from other list or detail tools.

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

Usage Guidelines3/5

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

The description implies use for org overview but does not provide explicit guidance on when to use versus alternatives or when not to use. No direct comparison with sibling tools.

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

get_overbooked_peopleget_overbooked_peopleB
Read-only

Detect people with overlapping bookings above a utilisation threshold in a date range. Calculates daily load and highlights over-capacity dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoStart date (YYYY-MM-DD). Defaults to today.
beforeNoEnd date (YYYY-MM-DD). Defaults to today + 4 weeks.
threshold_pctNoOverbooking threshold in percent (default: 100).

TDQS

B3.3/5.0
Behavior3/5

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

The description adds some behavioral context beyond the readOnlyHint annotation by stating that it calculates daily load and highlights over-capacity dates. However, it does not disclose potential performance implications, data freshness, or what specific highlighting entails.

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?

The description is extremely concise with two sentences, no redundancy, and directly communicates the core function without unnecessary words.

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

Completeness3/5

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

Given three parameters and no output schema, the description explains the input and purpose but does not detail the return format or how results are structured. The mention of 'highlights over-capacity dates' provides some output hint, but more detail would be beneficial for complete understanding.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter described in the input schema. The tool description does not add further meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool detects people with overlapping bookings above a utilization threshold within a date range, using specific terms like 'detect', 'overlapping bookings', and 'utilization threshold'. It distinguishes itself from other list tools but does not explicitly differentiate from siblings like 'get_resource_plan'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor are there any exclusions or prerequisites. The list of sibling tools suggests many related functions, but the description does not mention when this tool is preferable over others.

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

get_pageget_pageA
Read-only

Get the full content of a specific knowledge base page in Productive.io.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesThe ID of the page to retrieve

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate 'readOnlyHint: true', making the read-only nature clear. The description adds 'Get the full content' which is consistent but provides no additional behavioral context such as error handling, permissions, or what constitutes 'full content'.

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?

A single sentence that is concise, front-loaded, and contains only necessary information. No redundancy.

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 a simple tool with one parameter, no output schema, and a clear read-only annotation, the description is mostly complete. However, it lacks details on what 'full content' includes (e.g., formatting, attachments) and does not explain return format or pagination.

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

Parameters3/5

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

The input schema covers 100% of parameter descriptions, so the baseline is 3. The tool description does not add any extra meaning beyond the schema's 'The ID of the page to retrieve'.

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?

The description clearly specifies the action ('Get'), the resource ('full content of a specific knowledge base page'), and the platform ('Productive.io'). It effectively distinguishes from sibling tools like 'list_pages' (list vs get) and 'copy_page' (copy vs get).

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

Usage Guidelines3/5

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

The description implies use when retrieving a single page's full content, but does not explicitly state when to use it versus alternatives (e.g., 'list_pages' for summaries, 'copy_page' for duplication). No when-not or prerequisites are provided.

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

get_personget_personA
Read-onlyIdempotent

Get detailed information about a specific person by their Productive ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idYesThe ID of the person to retrieve (required)

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
firstNameYes
lastNameYes
emailNo
titleNo
roleNo
statusYes
companyIdNo
createdAtNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, indicating safe, idempotent behavior. The description adds minimal context by saying 'detailed information' but does not disclose additional behavioral traits like error handling or rate limits.

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?

The description is a single sentence with no wasted words. It is front-loaded with the core purpose and efficiently communicates the essential information.

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?

Given the tool's simplicity (one parameter, no nested objects, output schema exists), the description adequately covers the purpose. It could mention that an output schema is available, but the information is complete for an agent to invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no extra meaning beyond the schema's parameter description. Baseline 3 is appropriate as the schema already documents the parameter adequately.

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?

The description clearly states the action (Get detailed information), the resource (person), and the identifier method (by their Productive ID). It distinguishes the tool from list_people by specifying a single person retrieval.

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

Usage Guidelines3/5

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

The description implicitly suggests using the Productive ID but does not provide explicit when-to-use guidance or alternatives. It lacks directives on when to choose this over list_people or other similar tools.

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

get_project_servicesget_project_servicesA
Read-only

Get all services for a project by traversing its deals/budgets. Returns services grouped by deal/budget. Prefer using list_project_deals + list_deal_services for more control.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe ID of the project (required)
limitNoNumber of services per deal to return (1-200)

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description adds limited behavioral context. It mentions traversal of deals/budgets but does not disclose further traits like performance or failure behavior.

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?

Two concise sentences with no wasted words. Front-loaded with the primary action and grouping behavior.

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?

With no output schema, the description adequately explains the grouped return structure. However, it omits details on pagination and whether the limit applies per deal or total, leaving minor gaps.

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

Parameters3/5

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

Schema coverage is 100% (both parameters have descriptions). The description adds no additional meaning beyond what the schema provides, meeting baseline expectations.

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?

Clearly states it gets all services for a project by traversing deals/budgets and returns them grouped. Distinguishes from sibling tools list_project_deals + list_deal_services.

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?

Explicitly advises preferring list_project_deals + list_deal_services for more control, providing clear guidance on when to use this tool vs alternatives.

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

get_project_tasksget_project_tasksA
Read-only

Get all tasks for a specific project. ALSO used as STEP 4 in timesheet workflow to find task_id for linking time entries to specific tasks. Workflow: list_projects → list_project_deals → list_deal_services → get_project_tasks → create_time_entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe ID of the project
statusNoFilter by task status (open or closed)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the description's statement 'Get all tasks' confirms read-only behavior. The description adds workflow context beyond annotations, but does not disclose additional behavioral traits like rate limits or prerequisites, which is acceptable given the annotations cover safety.

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?

The description is concise with two sentences plus a workflow list. It is front-loaded with the primary purpose and structures additional context efficiently. Every sentence adds value without redundancy.

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?

Given the tool's simplicity (two parameters, no output schema), the description adequately covers its purpose and workflow role. It lacks details on return format or pagination, but the workflow context somewhat compensates by implying the output includes task_id for time entries.

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

Parameters3/5

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

The input schema already provides descriptions for both parameters (project_id and status) with 100% coverage. The description does not add any additional parameter semantics beyond what the schema provides, so a baseline score of 3 is appropriate.

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?

The description clearly states the tool retrieves all tasks for a specific project, using a specific verb and resource. It also distinguishes this from a generic tasks listing by specifying the project scope, and provides workflow context that differentiates it from sibling tools.

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

Usage Guidelines4/5

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

The description explicitly positions the tool as step 4 in a timesheet workflow and lists the preceding and following tools, giving clear guidance on when to use it. It does not explicitly mention alternatives or when not to use, but the workflow context is strong.

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

get_recent_updatesget_recent_updatesA
Read-onlyIdempotent

Get a summary of recent updates and changes in the last N days, with detailed breakdown by item type

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoOptional project ID to filter updates for a specific project
days_backNoNumber of days to look back (1-30, default: 7)
limitNoMaximum number of updates to analyze (1-200, default: 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
updatesYes
summaryYes
returnedYes
daysBackYes
projectIdNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint: true and idempotentHint: true, so the description does not need to re-assert those. The description adds valuable context: it returns a 'summary' with 'detailed breakdown by item type', which is beyond structural annotations. This informs the agent about the output format without contradicting any annotations.

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?

The description is a single sentence of 18 words that front-loads the core purpose. Every word is necessary; there is no redundancy or filler. It is optimally concise for quick comprehension.

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?

Given the tool's low complexity (3 optional parameters, clear annotations, and an expected output schema), the description is largely sufficient. It covers the what and the time scope. Additional details about 'item type' or structure could be helpful but are not critical, as the output schema likely provides that.

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

Parameters3/5

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

The input schema covers all three parameters (project_id, days_back, limit) with 100% description coverage. The description does not add additional semantic meaning beyond what the schema provides, so it meets the baseline of 3 per the rubric.

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?

The description clearly states the tool's purpose: 'Get a summary of recent updates and changes in the last N days, with detailed breakdown by item type'. It uses a specific verb ('Get'), identifies the resource ('summary of recent updates/changes'), and differentiates from sibling list tools (e.g., list_activities) by emphasizing 'summary' and 'detailed breakdown by item type'.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving recent updates but does not explicitly state when to prefer it over alternatives like list_activities or list_comments. There is no guidance on when not to use it or mention of prerequisites, making the usage context inferred rather than explicit.

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

get_resource_planget_resource_planA
Read-only

Get the rb2 resource plan for a date range. Shows bookings with person, project, hours/day, and utilisation %. Use person_name and project_id for focused planning views.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoStart date (YYYY-MM-DD). Defaults to today.
beforeNoEnd date (YYYY-MM-DD). Defaults to today + 4 weeks.
person_nameNoFilter by person name (case-insensitive partial match).
project_idNoFilter by project ID.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is clear. The description adds value by detailing what the plan includes (bookings, person, project, hours/day, utilisation %), going beyond the annotation to inform the agent about the content. No contradictions.

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?

Two sentences, no redundant words. The first sentence defines the action and data, the second provides usage guidance. Every sentence earns its place; very efficient.

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

Completeness5/5

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

Given the tool's simplicity (4 optional params, no output schema), the description covers the return data (bookings with key fields) and how to filter. No gap is apparent; it fully prepares an agent to use the tool 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 parameters are well-documented. The description adds the phrase 'focused planning views' to suggest the purpose of person_name and project_id, adding slight value beyond the schema descriptions. No explicit format or semantics beyond schema, but the coverage is high.

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?

The description clearly states the tool retrieves the rb2 resource plan for a date range and specifies the data shown (bookings with person, project, hours/day, utilisation %). This distinguishes it from sibling tools like list_bookings or get_overbooked_people by focusing on a planning view with detailed metrics.

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

Usage Guidelines4/5

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

The description advises using person_name and project_id for focused planning views, providing clear context for parameter usage. However, it does not explicitly state when not to use this tool or mention alternatives, which would further enhance guidance.

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

get_taskget_taskA
Read-only

Get detailed information about a specific task by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe ID of the task to retrieve

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true. Description adds no additional behavioral details beyond confirming it is a read operation. No mention of rate limits, authentication, or error conditions.

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?

Single sentence, front-loaded with purpose, no unnecessary words. Efficient and clear.

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 a simple tool with one parameter and no output schema, the description sufficiently covers the basic action. Could mention return type or error scenarios, but not strictly required given low complexity.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains the task_id parameter adequately. Description does not add extra meaning or format hints beyond 'by ID'.

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?

The description clearly states the tool retrieves detailed information about a specific task by ID. It uses a specific verb ('get') and resource ('task'), and distinguishes from sibling tools like list_tasks or update_task.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., list_tasks for multiple tasks). Lacks context about prerequisites or exclusion criteria.

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

get_task_dependencyget_task_dependencyA
Read-only

Get a single task dependency by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
dependency_idYesThe ID of the dependency to retrieve

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'Get' aligns. No additional behavioral context beyond what annotations provide, but no contradiction.

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?

Single sentence, front-loaded, every word essential. No wasted text.

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

Completeness5/5

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

For a simple retrieval with one parameter and annotations providing readOnlyHint, the description fully covers the tool's purpose and usage.

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

Parameters3/5

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

The schema covers 100% of parameter meaning with description 'The ID of the dependency to retrieve'. The tool description adds no further semantics.

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?

The description clearly states the verb 'Get', the resource 'task dependency', and the identifier 'by its ID', making it distinct from listing or adding dependencies.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a single dependency but does not explicitly state when to use it versus alternatives like list_task_dependencies or add_task_dependency.

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

get_task_listget_task_listA
Read-only

Get details of a specific task list by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_list_idYesThe ID of the task list

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint: true, so the description does not need to reiterate. It adds no additional behavioral context beyond the annotation, but does not contradict it.

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?

Single sentence of 10 words, no redundancy. Every word is necessary to convey the core purpose.

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

Completeness3/5

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

The description lacks detail about return values (e.g., 'returns a task list object with all fields'), but given the low complexity and readOnly annotation, it is minimally complete. No output schema exists, so the description could be more informative.

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

Parameters3/5

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

Schema description coverage is 100% (the only parameter task_list_id has a clear description). The tool description adds minimal extra meaning beyond 'by its ID', which is already implied by the parameter requirement.

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?

The description clearly states the action (Get), resource (task list), and retrieval method (by ID). It distinguishes from siblings like list_task_lists (which lists all) and archive_task_list (which archives).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., list_task_lists). The description does not specify that it is for retrieving a single task list by ID, nor does it exclude cases where a list of task lists is needed.

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

get_todoget_todoA
Read-only

Get a single todo/checklist item by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
todo_idYesThe ID of the todo item

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds no further behavioral traits (e.g., error handling, rate limits, or return format), so it meets the minimum bar without extra value.

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?

The description is a single, focused sentence with no wasted words. It front-loads the core purpose ('Get a single todo/checklist item') and is efficient.

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

Completeness3/5

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

For a simple one-parameter getter with no output schema, the description is adequate but lacks information about the response format or fields returned. It meets basic needs but could be more complete with a hint about the return value.

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

Parameters3/5

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

Schema coverage is 100%, so the parameter is fully described structurally. The description adds only 'by its ID', which aligns with the schema's description. No additional semantic meaning is provided beyond what is already in the schema.

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?

The description clearly states the tool retrieves a single todo/checklist item by its ID, using a specific verb and resource. It distinguishes itself from siblings like list_todos (list) and delete_todo (mutation).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like get_task or get_page. Usage is implied by the tool's simplicity, but given many sibling getter tools, some context would help.

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

list_activitieslist_activitiesA
Read-onlyIdempotent

List activities (changes/updates) from Productive.io with filtering options for tracking recent work

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNoFilter activities for a specific task ID
project_idNoFilter activities for a specific project ID
person_idNoFilter activities by a specific person/user ID
item_typeNoFilter by item type (e.g., "Task", "Project")
eventNoFilter by event type (e.g., "create", "update", "delete")
afterNoFilter activities after this date (ISO 8601)
beforeNoFilter activities before this date (ISO 8601)
days_backNoFilter activities from the last N days (1-365)
limitNoMaximum number of activities to return (1-200)
pageNoPage number for pagination

Output Schema

ParametersJSON Schema
NameRequiredDescription
activitiesYes
returnedYes
totalNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint and idempotentHint. The description confirms the read operation and adds no further behavioral traits (e.g., pagination, ordering). It does not contradict annotations.

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

Conciseness4/5

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

The description is a single sentence with 12 words, front-loaded and free of unnecessary information. It is concise while conveying the core purpose, though slightly minimal given the tool's complexity.

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?

Given the presence of a rich input schema, output schema, and annotations, the description adequately covers the tool's purpose. It does not explain return values (schema covers it) or differentiate from siblings, but remains complete for basic use.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description only vaguely mentions 'filtering options' without adding new meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool lists activities (changes/updates) from Productive.io. It identifies the specific resource and action, but does not explicitly distinguish from sibling list tools like list_attachments or list_boards.

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

Usage Guidelines3/5

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

The phrase 'for tracking recent work' gives context for when to use the tool, but it does not mention when not to use it or alternatives such as get_recent_updates. This is adequate but lacks explicit guidance.

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

list_attachmentslist_attachmentsA
Read-onlyIdempotent

List file attachments on a task or comment in Productive.io. Returns filenames, types, sizes, and download URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNoThe ID of the task to list attachments for
comment_idNoThe ID of the comment to list attachments for
limitNoNumber of attachments to return (1-200, default 30)

Output Schema

ParametersJSON Schema
NameRequiredDescription
attachmentsYes
returnedYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the tool as readOnly and idempotent. The description adds that it returns specific fields. No mention of pagination or rate limits, but the overall behavior is clear and consistent with annotations.

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?

The description is a single, direct sentence that conveys all necessary information without unnecessary words. It is front-loaded with the main action.

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?

The description covers the purpose and return values. With an output schema present (indicated true), it does not need to detail return fields. Could mention pagination behavior, but the limit parameter is documented in the schema.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add parameter details. The description mentions 'on a task or comment' which aligns with task_id and comment_id parameters but does not add new semantics beyond the schema.

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?

The description clearly states the action ('List'), the resource ('file attachments on a task or comment'), and the data returned ('filenames, types, sizes, and download URLs'). It distinguishes from sibling tools because no other tool lists attachments.

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

Usage Guidelines3/5

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

The description implies usage for retrieving attachments from a specific task or comment, but does not explicitly state when to use it vs alternatives or provide exclusion criteria. No guidance on when not to use.

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

list_boardslist_boardsB
Read-only

Get a list of boards from Productive.io

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoFilter boards by project ID
limitNoNumber of boards to return (max 200)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is clear. The description adds no behavioral context like pagination or ordering, which is acceptable given annotations.

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?

Single sentence is concise and front-loads the core purpose. No unnecessary words or redundancy.

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

Completeness3/5

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

For a simple list tool with two optional parameters and no output schema, the description could mention return structure or highlight the optional filter. Lacks completeness for full context.

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

Parameters3/5

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

Schema description coverage is 100% with both parameters documented. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 applies.

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

Purpose4/5

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

The description 'Get a list of boards from Productive.io' clearly states the action (get list) and resource (boards), distinguishing it from siblings like create_board. However, it lacks specificity on filtering scope.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as list_projects or get_task. No context on prerequisites or exclusions.

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

list_bookingslist_bookingsA
Read-only

List resource bookings/capacity planning entries in Productive.io. Bookings show planned work allocation for people on projects over date ranges. Use to check availability and planned capacity. Use "me" for person_id if PRODUCTIVE_USER_ID is configured.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idNoFilter by person ID. Use "me" for the configured user.
project_idNoFilter by project ID
afterNoFilter bookings starting after this date (YYYY-MM-DD)
beforeNoFilter bookings starting before this date (YYYY-MM-DD)
limitNoNumber of results (1-200, default: 30)
pageNoPage number for pagination

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description aligns by calling it a list operation. Adds context about planned work allocation and date ranges, which goes beyond the annotation. No contradictions.

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?

Three sentences with no waste. The first sentence states purpose, the second adds context, and the third provides a usage tip. Ideal conciseness.

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?

The description explains the concept of bookings and when to use the tool. With 6 parameters and no output schema, it covers the main usage, though pagination or result details are not mentioned. Still, it is adequate for the complexity.

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 description coverage is 100%, so baseline is 3. The description adds value by explaining the 'me' shortcut for person_id, which is not in the schema. This extra hint justifies a 4.

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?

Description clearly states the verb 'list', the resource 'bookings', and the context of capacity planning and availability checking. It distinguishes from sibling tools that are CRUD or specific operations.

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

Usage Guidelines4/5

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

Explicitly says 'Use to check availability and planned capacity' and includes a helpful hint about using 'me' for person_id. While not listing alternatives, the context is sufficient for a read-only list tool.

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

list_commentslist_commentsB
Read-only

List comments on a task in Productive.io.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task whose comments to list
project_idNoOptional project ID to scope the query
limitNoNumber of comments to return (1-200, default 30)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows it's safe. The description adds no further behavioral details (e.g., pagination behavior, ordering, or field limitations). A score of 3 is appropriate because annotations cover the safety profile.

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?

The description is a single, clear sentence with no fluff. It efficiently conveys the core purpose.

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

Completeness2/5

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

No output schema exists, yet the description omits details about pagination (implied by limit param), ordering, or the optional project_id scope. For a list operation, this is insufficient guidance.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. The description adds no extra meaning beyond what the schema provides, so a baseline of 3 is correct.

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?

The description clearly states the verb ('List') and resource ('comments on a task') with the platform ('Productive.io'). It is specific and distinguishes from sibling tools like add_task_comment or delete_comment.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool vs alternatives (e.g., get_comment for a single comment), prerequisites, or context. The agent must infer usage from the name alone.

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

list_companieslist_companiesA
Read-onlyIdempotent

List companies (clients) in your Productive organisation. Filter by active or archived status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by company status
limitNoNumber of companies to return (1-200)

Output Schema

ParametersJSON Schema
NameRequiredDescription
companiesYes
returnedYes
totalNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, indicating safe, repeatable use. The description adds filtering behavior but does not conflict with annotations. It does not disclose additional traits like pagination or rate limits, but the annotations reduce the burden.

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?

The description is extremely concise (one sentence) and front-loaded with the core purpose. Every word serves a clear function, and there is no extraneous information.

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?

With two optional parameters fully described in the schema and an output schema present, the description is adequate. It covers the basic functionality, though it could mention default sorting or result format for completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains both parameters. The description repeats filtering by status, adding no new semantic value beyond what the enum and description in the schema provide.

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?

The description clearly states the tool lists companies (clients) in the organization, with a specific verb 'List' and resource 'companies'. It also mentions filtering by status, and the tool name is unique among siblings, ensuring no confusion.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives (e.g., list_projects, list_people). It implies usage for listing companies but lacks exclusion or alternative recommendations, leaving the agent without comparative context.

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

list_deal_serviceslist_deal_servicesA
Read-only

STEP 3 of timesheet workflow: Get services for a specific deal/budget. COMPLETE WORKFLOW: 1) list_projects → 2) list_project_deals → 3) list_deal_services → 4) list_project_tasks (recommended) → 5) create_time_entry. After this, optionally use list_project_tasks to find specific tasks to link your time entry to.

ParametersJSON Schema
NameRequiredDescriptionDefault
deal_idYesThe ID of the deal/budget (required)
limitNoNumber of services to return (1-200)

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already declare readOnlyHint: true, and the description adds behavioral context by framing this as part of a timesheet workflow, implying it is a read-only listing operation. It does not contradict annotations and adds value beyond them.

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

Conciseness4/5

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

The description is front-loaded with the workflow step and then provides the full workflow. It is concise and helpful, though the workflow listing could be considered slightly redundant if the agent has context from previous steps.

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?

Given that there is no output schema, the description does not explain return values, but the context implies it returns a list of services. The workflow guidance provides enough completeness for an agent to understand when and why to use this tool.

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

Parameters3/5

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

Schema coverage is 100% (both parameters are described). The description does not add extra meaning beyond the schema; it only implies that deal_id is required, which is already in the schema. Baseline of 3 is appropriate.

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?

The description clearly states it is STEP 3 of a timesheet workflow and specifies the action: 'Get services for a specific deal/budget.' This is a specific verb+resource combination and distinguishes it from sibling tools like list_services or list_project_services by tying it to a deal context.

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

Usage Guidelines4/5

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

The description explicitly provides the complete workflow steps, telling the agent when to use this tool (after list_project_deals, before list_project_tasks) and what to optionally do after. However, it does not explicitly exclude scenarios or compare with alternative tools like list_project_services.

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

list_expenseslist_expensesA
Read-only

List expenses in Productive.io. Filter by person, project, or date range. Use "me" for person_id if PRODUCTIVE_USER_ID is configured.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idNoFilter by person ID. Use "me" to filter by the configured user.
project_idNoFilter by project ID
afterNoFilter expenses after this date (YYYY-MM-DD)
beforeNoFilter expenses before this date (YYYY-MM-DD)
limitNoNumber of results (1-200, default: 30)
pageNoPage number for pagination

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is clear. The description adds filter behavior but does not disclose pagination details or response format. This adds some context beyond annotations.

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?

Two sentences with zero waste. The description is front-loaded with the action and essential filtering details. Every word contributes.

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?

The tool has 6 parameters and no output schema. The description covers key filter options and usage hints. It does not explain pagination or result format, but these are standard for list tools. Overall, it is adequately complete.

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 description coverage is 100%, and the description adds extra meaning with the 'me' shortcut for person_id. This provides value beyond the schema's basic descriptions.

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?

The description clearly states 'List expenses in Productive.io' with specific verb and resource. It mentions available filters (person, project, date range), distinguishing it from sibling tools that create or modify expenses.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance, including the 'me' shortcut for person_id and filter options. However, it does not specify when not to use this tool or list alternatives, which is acceptable given its straightforward nature.

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

list_folderslist_foldersA
Read-only

List folders that group boards within projects. Filter by project and active/archived status.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoFilter folders by project ID
statusNoStatus: 1=active, 2=archived (default 1)
limitNoNumber of folders to return (1-200, default 30)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, confirming it's safe. The description adds filtering behavior, consistent with read-only nature. No contradictions.

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?

Two short sentences, front-loaded, no extraneous information. Efficient and clear.

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?

The description is adequate for a read-only list tool with good schema coverage. It could mention the limit parameter, but the schema already describes it.

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

Parameters3/5

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

Schema covers all parameters with 100% coverage. Description adds no semantic value beyond what the schema already provides regarding the two filters.

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?

The description clearly states 'List folders that group boards within projects' and specifies filters by project and status, distinguishing it from sibling tools like get_folder (single) or create_folder.

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

Usage Guidelines4/5

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

It implies usage for listing with optional filters, but does not explicitly state when not to use or compare to alternatives. However, the sibling tool context makes it sufficiently clear.

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

list_invoiceslist_invoicesA
Read-onlyIdempotent

List invoices in Productive.io. Filter by company, project, or status (1=draft, 2=sent, 3=paid, 4=canceled) and date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNoFilter by company ID
project_idNoFilter by project ID
statusNoFilter by status: 1=draft, 2=sent, 3=paid, 4=canceled
afterNoFilter invoices dated after this date (YYYY-MM-DD)
beforeNoFilter invoices dated before this date (YYYY-MM-DD)
limitNoNumber of results (1-200, default: 30)
pageNoPage number for pagination

Output Schema

ParametersJSON Schema
NameRequiredDescription
invoicesYes
returnedYes
totalNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description adds value by detailing the filtering behavior (status codes, date range). No contradictions and no missing critical behavioral traits.

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?

A single, front-loaded sentence with no extraneous words. Every part is essential and earns its place.

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

Completeness5/5

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

Given the presence of an output schema and strong annotations, the description adequately covers the tool's core functionality for listing and filtering invoices. No gaps identified.

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

Parameters3/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. The description repeats some schema details (status values) but does not add significant new meaning beyond the schema.

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?

The description clearly states the verb 'List' and the resource 'invoices', and specifies filtering by company, project, status, and date range. It is distinct from sibling tools like get_invoice.

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

Usage Guidelines3/5

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

The description implies usage for listing invoices with filters but does not explicitly state when to use this tool versus alternatives like get_invoice. No when-not or alternative guidance is provided.

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

list_membershipslist_membershipsA
Read-onlyIdempotent

List project memberships in Productive.io. Use to see which people are members of a project, or which projects a person belongs to.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoFilter by project ID — returns all members of this project
person_idNoFilter by person ID — returns all projects this person is a member of
limitNoNumber of results (1-200, default: 50)
pageNoPage number for pagination

Output Schema

ParametersJSON Schema
NameRequiredDescription
membershipsYes
returnedYes
totalNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds value by explaining the dual filtering capability (by project_id or person_id) and the core behavior of listing memberships. No contradictions with annotations.

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?

Two sentences that efficiently convey purpose and usage. No redundant phrases; every sentence adds value. The first sentence states what it does, the second explains when to use it.

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?

Given the tool has 4 optional parameters, an output schema, and annotations, the description covers the main use cases adequately. It does not detail pagination, but the output schema exists and the schema already documents limit/page. The description is complete for a list tool with good structured data.

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

Parameters3/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. The description only rephrases the filter options (project_id and person_id) without adding new meaning or constraints beyond the schema. No additional detail on limit/page or parameter interactions.

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?

The description clearly states the verb 'List' and resource 'project memberships' in Productive.io, and distinguishes two specific use cases: seeing members of a project or projects of a person. This effectively differentiates it from sibling tools like list_projects or list_people.

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

Usage Guidelines4/5

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

The description explicitly guides when to use the tool: 'to see which people are members of a project, or which projects a person belongs to.' It does not mention when not to use or alternatives, but the two clear scenarios provide sufficient context for an agent to select this tool over others.

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

list_pageslist_pagesA
Read-only

List knowledge base pages in Productive.io. Filter by project to see project-specific docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoFilter pages by project ID (optional — omit for all pages)
limitNoNumber of pages to return (1-200, default 30)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description is consistent but adds minimal extra context beyond stating it lists pages with optional filtering.

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?

The description is a single concise sentence that front-loads the purpose, with no wasted words.

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

Completeness3/5

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

Given no output schema, the description is adequate for a simple list tool with 2 parameters, but it could mention the return type or pagination.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds context for the project_id parameter by mentioning filtering, but does not add significant meaning beyond the schema.

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?

The description clearly states the tool lists knowledge base pages and mentions filtering by project. It distinguishes itself from siblings like get_page and create_page.

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

Usage Guidelines3/5

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

The description implies using the filter for project-specific docs but does not explicitly guide when to use this tool versus alternatives like list_folders or other list tools.

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

list_peoplelist_peopleA
Read-onlyIdempotent

List people (team members) in your Productive.io organization. Use to find person IDs for task assignment, time entries, and filtering. Supports filtering by company, project membership, active status, and email.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNoFilter by company ID
project_idNoFilter by project membership (people assigned to this project)
is_activeNoFilter by active status (true = active, false = inactive/archived)
emailNoFilter by email address
limitNoNumber of results to return (1-200, default: 30)
pageNoPage number for pagination

Output Schema

ParametersJSON Schema
NameRequiredDescription
peopleYes
returnedYes
totalNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the tool as readOnlyHint and idempotentHint, so the safety profile is clear. The description adds transparency about filtering capabilities (by company, project membership, active status, email) which helps the agent understand behavior beyond the annotation flags. No contradictions.

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?

The description is exceptionally concise: two sentences with no wasted words. The first sentence states the core purpose, the second provides use cases and filter summary. It is front-loaded and easy to parse.

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

Completeness5/5

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

Given that an output schema exists (not shown but flagged as true) and annotations cover safety, the description provides all necessary context: what it does, why to use it, and what filters are available. No gaps for a list tool with 6 well-documented parameters.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds minimal value by naming the filter types (company, project membership, etc.), but this largely mirrors the schema properties. It does not provide additional syntax or context beyond what the schema already offers.

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?

The description clearly states it lists people (team members) in the organization, with the specific purpose of finding person IDs for task assignment, time entries, and filtering. This directly states the verb and resource, distinguishing it from the sibling 'get_person' tool which would return a single person's details.

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

Usage Guidelines4/5

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

The description explicitly tells when to use it (to find person IDs for task assignment, time entries, and filtering) and lists the supported filters. It lacks an explicit 'when not to use' or mention of alternatives like 'get_person', but the context is clear enough that an agent would infer when this list tool is appropriate.

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

list_project_dealslist_project_dealsA
Read-only

STEP 2 of timesheet workflow: Get deals/budgets for a specific project. COMPLETE WORKFLOW: 1) list_projects → 2) list_project_deals → 3) list_deal_services → 4) list_project_tasks (recommended) → 5) create_time_entry. This follows: Project → Deal/Budget → Service → Task → Time Entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesThe ID of the project (required)
budget_typeNoFilter by budget type: 1 = deal, 2 = budget
limitNoNumber of deals/budgets to return (1-200)

TDQS

A4.2/5.0
Behavior3/5

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

The description does not contradict the readOnlyHint annotation, but it adds minimal behavioral detail beyond that. It doesn't mention rate limits, auth requirements, or side effects. The workflow context provides some sequencing behavior, but the core behavior (read-only list) is already captured by annotations.

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?

The description is two sentences: the first states the purpose, the second provides the complete workflow. It is concise, front-loaded, and contains no unnecessary information.

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?

Given the complexity (simple list tool, no output schema, no nested objects), the description is mostly complete. It lacks explicit mention of the return format, but the workflow context and schema parameters provide enough context for an AI agent to use it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters adequately. The description adds no parameter-specific information beyond what is in the schema, maintaining the baseline of 3.

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?

The description clearly states it is 'STEP 2 of timesheet workflow: Get deals/budgets for a specific project,' using a specific verb ('get') and resource ('deals/budgets') with context ('for a specific project'). It distinguishes from sibling tools by embedding it in a workflow sequence.

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?

The description explicitly lays out the full workflow: list_projects → list_project_deals → list_deal_services → list_project_tasks (recommended) → create_time_entry. This tells exactly when to use this tool (after step 1, before step 3) and implies when not to (if you already have deals or need tasks directly).

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

list_projectslist_projectsA
Read-onlyIdempotent

List projects in your Productive organisation. Filter by status or company.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by project status
company_idNoFilter projects by company ID
limitNoNumber of projects to return (1-200)

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectsYes
returnedYes
totalNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and idempotentHint, so the description does not need to repeat that. It adds no further behavioral context (e.g., error handling, pagination), but does not contradict annotations.

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?

Two sentences, no unnecessary words. Front-loaded with the core purpose, followed by filtering options. Highly efficient.

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

Completeness5/5

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

Given the presence of an output schema and the simplicity of the tool (3 optional parameters), the description covers the essential functionality and filtering. No missing context.

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

Parameters3/5

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

Schema description coverage is 100%, so the description adding 'Filter by status or company' merely summarizes existing schema info. It does not add new meaning beyond what the schema provides.

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?

The description clearly states the verb 'list' and the resource 'projects' within the Productive organisation. It also mentions filtering by status or company, which distinguishes it from other list_* tools.

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

Usage Guidelines3/5

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

The description implies usage for listing projects and filtering, but does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria. It is adequate but lacks explicit guidance.

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

list_serviceslist_servicesA
Read-only

List all services in the organization. NOTE: For timesheet entries, use the proper workflow instead: list_projects → list_project_deals → list_deal_services → create_time_entry. This tool shows all services but does not indicate which project/budget they belong to.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_idNoFilter services by company ID
limitNoNumber of services to return (1-200)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations are readOnlyHint: true, which aligns with the read operation. The description adds behavioral context by stating that the tool does not indicate which project/budget a service belongs to, which is useful beyond the annotation. No contradictions.

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?

The description consists of two highly informative sentences with no wasted words. It is front-loaded with the core action, followed by a critical usage note.

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 a list tool with two optional parameters and no output schema, the description adequately covers purpose and key behavioral constraints. It explains what the tool does and what it does not do, which is sufficient given the readOnlyHint annotation.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (company_id, limit) having descriptive text. The description does not add additional parameter details, but given the high coverage, the baseline of 3 is appropriate.

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?

The description explicitly states 'List all services in the organization,' providing a specific verb and resource. It also distinguishes itself from sibling tools by noting that it does not indicate project/budget association, and it offers an alternative workflow for timesheet 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?

The description includes clear guidance: it lists all services, and explicitly advises against using it for timesheet entries, recommending the proper workflow (list_projects → list_project_deals → list_deal_services → create_time_entry). This provides both when-to-use and when-not-to-use instructions.

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

list_subtaskslist_subtasksA
Read-onlyIdempotent

List all subtasks (child tasks) of a given parent task in Productive.io.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_task_idYesThe ID of the parent task
limitNoNumber of subtasks to return (1-200, default 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
subtasksYes
returnedYes
parentTaskIdYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so description's role is lighter. Description adds the parent-child relationship context without contradicting annotations.

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?

Single sentence, no filler, front-loaded with verb and key information. Every word earns its place.

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?

Simple tool with output schema exists and annotations cover safety. Description is complete enough but slightly overstates 'ALL' when limit parameter exists. Minor issue.

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

Parameters3/5

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

Input schema covers both parameters with descriptions (100% coverage). Description adds no additional meaning beyond schema. Baseline 3.

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?

Description clearly states the verb 'List', resource 'subtasks', and scope 'of a given parent task'. It distinguishes from siblings like list_tasks (all tasks) and create_subtask (creation).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like list_tasks or create_subtask. No prerequisites or context for use provided.

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

list_task_dependencieslist_task_dependenciesA
Read-only

List all dependencies for a task in Productive.io (blocking, waiting_on, related).

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe ID of the task

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, which the description respects. The description adds that it lists all dependency types, but does not disclose any behavioral nuances beyond what annotations already imply. With annotations covering safety profile, this is adequate.

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?

The description is a single front-loaded sentence with no unnecessary words. Every part adds value, achieving maximum efficiency.

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

Completeness3/5

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

Given the tool has no output schema, the description should ideally hint at the return format (e.g., list of dependency objects). It does not, and lacks details on pagination or error handling. However, the tool is simple with one parameter, so some gaps are tolerable.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'task_id'. The description does not add extra meaning beyond the schema's 'The ID of the task', so baseline 3 is appropriate.

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?

The description specifies a clear verb ('List'), resource ('dependencies'), and scope ('for a task'), including types ('blocking, waiting_on, related'). It effectively distinguishes from sibling tools like 'get_task_dependency' (single dependency) and 'add_task_dependency' (create).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'get_task_dependency' or 'add_task_dependency'. No context for selection criteria or exclusion conditions is given.

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

list_task_listslist_task_listsA
Read-only

Get a list of task lists from Productive.io. Task lists organize tasks within boards.

ParametersJSON Schema
NameRequiredDescriptionDefault
board_idNoFilter task lists by board ID
limitNoNumber of task lists to return (max 200)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds minimal extra behavioral context beyond that, like 'list' vs 'search' but no details on pagination or scope.

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?

Two concise sentences, front-loading the action and providing necessary context about task lists.

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

Completeness5/5

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

Given the simplicity of the tool with two optional parameters and no output schema, the description is sufficiently complete. It explains the relationship to boards.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are documented. The description does not add new semantic meaning beyond the schema descriptions.

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?

The description clearly states the tool retrieves task lists from Productive.io, using a specific verb (get) and resource. It also explains what task lists are, distinguishing it from other list tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_tasks or list_folders. No mention of prerequisites, limits, or comparative context.

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

list_taskslist_tasksB
Read-only

Get a list of tasks from Productive.io

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoFilter tasks by project ID
assignee_idNoFilter tasks by assignee ID
statusNoFilter by task status (open or closed)
limitNoNumber of tasks to return (1-200)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds no additional behavioral details (e.g., rate limits, pagination behavior, or that tasks are filtered by optional parameters).

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

Conciseness4/5

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

Single sentence, very concise, but lacks structure like bullet points or front-loading of key info. Efficient but minimal.

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

Completeness3/5

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

Description is adequate for a simple list tool with no output schema, but does not mention pagination via limit or filtering capabilities beyond the parameters.

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

Parameters3/5

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

Schema coverage is 100%, so description does not need to add parameter details. It does not provide extra context beyond the schema.

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

Purpose4/5

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

The description 'Get a list of tasks from Productive.io' clearly states the action (get) and resource (list of tasks), but does not distinguish from sibling tools like get_project_tasks or other list_ tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives such as get_task or get_project_tasks. No exclusions or context provided.

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

list_time_entrieslist_time_entriesA
Read-only

View existing time entries from Productive.io with detailed information including service and budget relationships. Use this to see what time has been logged and to which projects/services. If PRODUCTIVE_USER_ID is configured, you can use "me" to refer to the configured user for person_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoFilter by specific date (YYYY-MM-DD format)
afterNoFilter entries after this date (YYYY-MM-DD format)
beforeNoFilter entries before this date (YYYY-MM-DD format)
person_idNoFilter by person ID. If PRODUCTIVE_USER_ID is configured in environment, "me" refers to that user.
project_idNoFilter by project ID
task_idNoFilter by task ID
service_idNoFilter by service ID
limitNoNumber of time entries to return (1-200)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, so the description's addition of 'detailed information including service and budget relationships' adds useful context. No contradictions. The description also notes the convenience of 'me' for person_id, but could mention pagination or sorting behavior.

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?

The description is concise: two sentences that front-load the core purpose. Every word serves a purpose, with no fluff or repetition.

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?

Given no output schema, the description provides a sense of the output detail (service and budget relationships). It briefly covers filtering with date and person_id hints. However, it omits pagination, sorting, or rate limit info, leaving some gaps for a list tool.

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

Parameters3/5

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

Schema descriptions cover all 8 parameters at 100%, so the tool description adds minimal extra meaning beyond the note about 'me' for person_id (which is already in the schema). The description of output relationships adds context but not parameter-level details.

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?

The description clearly states the tool's purpose: to view existing time entries with detailed info, including service and budget relationships. It uses a specific verb 'View' and resource 'time entries', and distinguishes itself from sibling tools like create_time_entry or delete_time_entry.

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

Usage Guidelines4/5

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

The description explains when to use the tool ('to see what time has been logged and to which projects/services') and includes a note about using 'me' for person_id when PRODUCTIVE_USER_ID is configured. However, it does not explicitly state when not to use it or mention alternatives like create_time_entry for logging new entries.

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

list_todoslist_todosB
Read-only

List all todo/checklist items for a specific task in Productive.io.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe ID of the task

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, and the description adds 'for a specific task,' but no additional traits like pagination or limitations are disclosed. Meets baseline but adds little beyond annotations.

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

Conciseness4/5

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

Single sentence, front-loaded with key information, no wasted words. Could be slightly more explicit about return, but concise overall.

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

Completeness2/5

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

No output schema and description does not hint at return format (e.g., list of todos, fields). Lacks completeness for a list operation with no structured output documentation.

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

Parameters3/5

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

Schema coverage is 100% with description for task_id. The overall description also mentions 'for a specific task,' aligning with the parameter, but adds no deeper semantics.

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?

The description clearly states it lists all todo/checklist items for a specific task, with a specific verb and resource, distinguishing it from siblings like get_todo (single item) and list_tasks (tasks).

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

Usage Guidelines2/5

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

No guidance on when to use versus alternatives like get_todo or list_tasks. No when-not-to-use or context provided.

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

list_workflow_statuseslist_workflow_statusesA
Read-onlyIdempotent

List workflow statuses available in Productive.io. These are used to set task status (Not Started=1, Started=2, Closed=3).

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idNoFilter by workflow ID
category_idNoFilter by category: 1=Not Started, 2=Started, 3=Closed
limitNoNumber of statuses to return (1-200)

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusesYes
returnedYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already mark the tool as readOnly and idempotent. The description adds the semantic mapping for category_id but does not disclose other behavioral aspects like sorting, pagination details (beyond the limit parameter), or what fields are returned. With strong annotation coverage, the description provides only marginal additional behavioral context.

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?

Two concise sentences with no redundant information. The mapping is front-loaded and efficient. Every sentence adds value.

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?

The description, combined with the input schema and output schema (present per context), sufficiently defines the tool for an agent. Minor gap: missing guidance on when to use this vs. other status-related tools, but overall adequate for a simple read-only list operation.

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

Parameters3/5

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

Input schema has 100% description coverage, documenting all three parameters (workflow_id, category_id, limit) with types, constraints, and meanings. The description reinforces the category_id mapping, which is already in the schema. Thus, the description adds minimal value beyond the schema, meeting the baseline for high-coverage schemas.

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?

The description clearly states the tool lists workflow statuses and provides the specific mapping of category_id to status names (Not Started=1, Started=2, Closed=3). This distinguishes it from sibling list tools like list_tasks or list_activities, which focus on different resources.

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

Usage Guidelines4/5

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

The description implies the tool is used to retrieve valid workflow statuses for setting task status, which is clear context. However, it does not explicitly state when not to use it or mention alternative tools for related operations (e.g., update_task_status). It offers no exclusions or contrasts with siblings.

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

move_pagemove_pageB
Idempotent

Move a page so that it becomes a child of another page (a new parent).

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesThe ID of the page to move
target_doc_idYesThe ID of the page that will become the new parent

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate idempotentHint true and destructiveHint false, but the description does not clarify what happens to the page's original location or whether it is removed from its previous parent. The behavioral impact of the move is under-explained.

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?

The description is a single sentence that conveys the core operation without any extraneous text. It is front-loaded with the essential action and result.

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

Completeness3/5

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

For a simple two-parameter tool with no output schema, the description is adequate but lacks details about the original page's state after the move. No behavioral details beyond the schema are provided.

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

Parameters3/5

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

Schema description coverage is 100% with clear parameter descriptions. The tool description adds no additional meaning beyond what is in the schema, so a baseline score of 3 is appropriate.

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?

The description clearly states the action ('Move a page') and the specific outcome ('becomes a child of another page'). It distinguishes from sibling tools like copy_page and update_page by specifying a structural repositioning.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like copy_page (which duplicates) or update_page (which may change other attributes). The description does not specify prerequisites or when moving is appropriate.

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

move_task_to_listmove_task_to_listA
Idempotent

Move a task to a different task list within the same project

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to move
task_list_idYesID of the task list to move the task to

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already provide safety profile (idempotent, non-destructive). Description adds the constraint 'within the same project', but lacks details on positioning, subtask handling, or reversibility.

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?

Single focused sentence, 12 words, front-loaded with verb. No wasted words.

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 a simple move operation with no output schema, the description is adequately complete. Could mention error conditions or position behavior, but not necessary for basic use.

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 covers both parameters with descriptions. Description adds the crucial constraint that both IDs must belong to the same project, adding meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the action (move) and resource (task) to a different list within the same project. It is specific but does not differentiate from siblings like reposition_task or update_task_list.

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

Usage Guidelines3/5

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

Implied usage when moving a task between lists, but no explicit guidance on when not to use or alternatives. Agent must infer from context.

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

my_tasksmy_tasksB
Read-onlyIdempotent

Get tasks assigned to the configured user. Requires PRODUCTIVE_USER_ID to be set.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by task status
limitNoNumber of tasks to return (1-200)

Output Schema

ParametersJSON Schema
NameRequiredDescription
tasksYes
returnedYes
totalNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnly and idempotent hints. The description adds the prerequisite requirement, which is useful behavioral context. No contradictions, but no further behavioral details beyond what annotations provide.

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?

The description is extremely concise: two sentences that front-load the purpose and the key prerequisite. No unnecessary words.

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?

Given the low complexity (2 optional params, no nested objects, output schema exists), the description covers the purpose and prerequisite effectively. It could mention error behavior if PRODUCTIVE_USER_ID is missing, but overall is sufficient.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for both parameters (status and limit). The description does not add additional parameter semantics beyond what is already in the schema, so baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states the tool retrieves tasks assigned to a specific user, using the verb 'Get' and specifying the resource and scope. However, it does not differentiate from sibling tools like list_tasks, which may have overlapping functionality.

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

Usage Guidelines2/5

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

The description mentions the prerequisite PRODUCTIVE_USER_ID but provides no guidance on when to use this tool vs alternatives like list_tasks. There is no explicit when-not-to-use or context for choosing this tool.

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

pin_commentpin_commentA
Idempotent

Pin a comment so it stays at the top of the task discussion.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesThe ID of the comment to pin

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate idempotent and non-destructive, but the description adds value by explaining the 'stays at top' effect, which is helpful beyond the annotation flags.

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?

Single sentence, clear, front-loaded, no wasted words or redundant information.

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

Completeness5/5

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

For a simple tool with one parameter and no output schema, the description fully explains the action and effect, leaving no gaps.

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

Parameters3/5

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

Schema coverage is 100% with a single parameter comment_id, and the description does not add extra meaning beyond the schema's description, so baseline 3 is appropriate.

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?

The description uses a specific verb 'pin' and resource 'comment', and clearly states the effect 'stays at the top of the task discussion', distinguishing it from siblings like unpin_comment.

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

Usage Guidelines3/5

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

The description implies when to use (to highlight a comment) but does not explicitly mention when to avoid or alternatives like unpin_comment.

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

remove_task_dependencyremove_task_dependencyA
Destructive

Remove a task dependency by its dependency ID. Use list_task_dependencies first to find the dependency ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
dependency_idYesThe ID of the dependency to remove (not a task ID)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true, signaling the tool is destructive. The description adds the important behavioral context of first listing dependencies to obtain the ID, which mitigates risks. The description is consistent with annotations and adds value.

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?

The description is two sentences, front-loaded with the purpose, and contains no extraneous information. Every sentence serves a clear function.

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

Completeness5/5

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

Given the tool has one parameter, no output schema, and annotations present, the description is complete. It covers what the tool does, how to obtain the required input, and the destructive nature is implied by annotations. The agent has all necessary information to use the tool correctly.

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

Parameters3/5

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

Schema coverage is 100% and the schema already describes dependency_id as 'The ID of the dependency to remove (not a task ID)'. The description does not add new semantics beyond the schema, so the baseline score of 3 is appropriate.

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?

The description clearly states the action: remove a task dependency. It specifies the identifier (dependency ID) and distinguishes from sibling tools like add_task_dependency and list_task_dependencies by focusing on removal.

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?

The description explicitly advises to use list_task_dependencies first to find the dependency ID, providing a clear prerequisite and workflow. This guides when to use this tool versus alternatives.

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

reposition_taskreposition_taskA
Idempotent

Reposition a task in a task list

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe ID of the task to reposition
move_before_idNoPosition the task before this task ID
move_after_idNoPosition the task after this task ID
move_to_topNoMove the task to the top of its list
move_to_bottomNoMove the task to the bottom of its list

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true (safe to retry), destructiveHint=false, and readOnlyHint=false. The description adds no further behavioral context (e.g., permission requirements, error states), but does not contradict annotations.

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?

Single sentence, front-loaded with critical information, no unnecessary words. Efficient and clear.

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

Completeness3/5

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

While simple, the description omits details about parameter exclusivity (e.g., cannot use both move_before_id and move_to_top) and does not explain success/failure behavior. With no output schema, this is minimally adequate but leaves gaps for an AI agent.

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

Parameters3/5

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

Schema coverage is 100%; all parameters have descriptions in the schema. The description does not add any extra meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

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?

The description 'Reposition a task in a task list' uses a specific verb and resource, clearly indicating reordering within a list. It distinguishes from sibling tools like move_task_to_list (cross-list move) and update_task_details (field changes).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like move_task_to_list, or how to choose between move_before_id, move_after_id, move_to_top, and move_to_bottom. The description lacks use-case context.

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

reposition_task_listreposition_task_listA
Idempotent

Reposition a task list within its board. Optionally move it before another task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_list_idYesThe ID of the task list to move
move_before_idNoOptional — ID of the task list to move this one before

TDQS

A3.7/5.0
Behavior3/5

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

Annotations declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, indicating a non-destructive mutable operation. The description's 'reposition' aligns with idempotency but adds no further behavioral context beyond what annotations provide.

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?

The description is a single sentence of 13 words, front-loading the core action without any redundant information. Every word earns its place.

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

Completeness3/5

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

The tool has only two parameters and no output schema. The description covers the main action but omits details like default behavior when move_before_id is absent or error conditions, making it adequate but not exhaustive.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description restates the optional positioning ('move it before another task list') which is already in the schema, adding no extra semantic value.

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?

The description clearly states the verb 'reposition' and the resource 'task list within its board', with optional positioning relative to another list. It distinguishes from sibling tools like 'move_task_to_list' or 'reposition_task'.

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

Usage Guidelines3/5

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

The description lacks explicit guidance on when to use this tool versus alternatives like 'reposition_task' or 'move_task_to_list'. However, the optional 'move_before_id' parameter implies reordering within the board, which is a clear use case.

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

restore_folderrestore_folderA
Idempotent

Restore a previously archived folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYesThe ID of the folder to restore

TDQS

A3.9/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, which clarify behavioral traits. The description adds minimal extra context by stating 'restore', which implies making the folder active again. However, it does not disclose potential side effects (e.g., impact on permissions, child items) or required permissions. With annotations covering the key traits, the description provides adequate but not rich behavioral context.

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?

The description consists of a single, clear sentence that conveys the tool's purpose without any unnecessary words or structure. It is front-loaded and efficient.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, high schema coverage, comprehensive annotations, and no output schema), the description is sufficiently complete. It provides all necessary information for an agent to understand and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'folder_id', which is well-documented in the schema as 'The ID of the folder to restore'. The description does not add any additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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?

The description clearly states the verb 'Restore' and specifies the resource as 'a previously archived folder'. This directly distinguishes it from sibling tools like 'archive_folder' (which performs the opposite action) and 'restore_task_list' (which operates on a different resource).

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

Usage Guidelines3/5

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

The description does not explicitly provide context on when to use this tool versus alternatives. While the verb 'restore' implies it should be used on archived folders, there is no mention of prerequisites, conditions, or scenarios where other tools would be preferred. This leaves the agent to infer usage from the tool name and context.

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

restore_task_listrestore_task_listA
Idempotent

Restore a previously archived task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_list_idYesThe ID of the task list to restore

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, covering key behavioral traits. The description adds no extra insight beyond stating the action, so it meets the minimum without adding value.

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?

The description is a single sentence that is concise and front-loaded with the action and object. No wasted words.

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 a simple tool with one parameter and no output schema, the description adequately covers the core purpose. However, it lacks explicit mention that the list must be archived or the effect of restoring an already active list, leaving minor gaps.

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

Parameters3/5

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

The sole parameter 'task_list_id' is fully described in the schema (100% coverage). The description adds no additional meaning beyond what the schema provides, warranting the baseline score of 3.

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?

The description clearly states the action ('Restore') and the specific resource ('previously archived task list'). It directly addresses the inverse of the sibling 'archive_task_list', making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies the tool is used when restoring an archived task list but does not provide explicit guidance on when not to use it or how it differs from siblings like 'restore_folder'. The usage context is clear but lacks depth.

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

unpin_commentunpin_commentC
Idempotent

Unpin a previously pinned comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesThe ID of the comment to unpin

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate idempotentHint=true and destructiveHint=false, but the description adds no behavioral context beyond the action. It does not mention whether the comment must exist or be pinned, nor any side effects or response.

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

Conciseness4/5

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

The description is extremely concise (one sentence) and front-loaded. Every word is necessary, though it could be slightly expanded for clarity.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is adequate but lacks minor context (e.g., prerequisite that the comment is pinned, or that the operation is reversible). Annotations fill some gaps.

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

Parameters3/5

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

Schema description coverage is 100% (one parameter with a clear description). The description adds no extra meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Unpin a previously pinned comment' clearly states the action (unpin) and resource (comment). It is specific and unambiguous, though it does not differentiate from sibling tools like 'delete_comment' or 'pin_comment'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., pin_comment, delete_comment, update_comment). The description does not specify prerequisites or context.

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

update_commentupdate_commentB
Idempotent

Edit the body of an existing comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesThe ID of the comment to update
bodyYesNew body for the comment

TDQS

B3.3/5.0
Behavior2/5

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

The description only says 'edit', which implies mutation (consistent with readOnlyHint=false). It adds no extra behavioral details beyond annotations, such as required permissions, rate limits, or whether the operation is reversible. The annotations already cover idempotency and non-destructiveness.

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?

The description is a single, concise sentence that front-loads the verb and resource. It contains no superfluous words and is efficient for an AI agent to process.

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

Completeness3/5

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

Given the tool's simplicity (two parameters, no output schema), the description covers the basic action. However, it lacks any mention of return values or side effects, which could be helpful for an agent to understand the outcome of the operation.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters having clear descriptions. The description reiterates 'body' but adds no additional meaning beyond the schema. For a simple tool with well-documented parameters, a score of 3 is appropriate.

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?

The description 'Edit the body of an existing comment' clearly states the action (edit), the resource (comment), and the specific aspect (body). It distinguishes itself from sibling tools like delete_comment or pin_comment, which modify different properties or perform different operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as delete_comment or add_comment_reaction. It does not mention conditions, prerequisites, or scenarios where this tool is appropriate or inappropriate.

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

update_folderupdate_folderB
Idempotent

Rename an existing folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYesThe ID of the folder to rename
nameYesNew folder name

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds little beyond 'rename,' which implies a non-destructive mutation. Since annotations carry most of the burden, a score of 3 is appropriate.

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

Conciseness4/5

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

The description is a single short sentence with no unnecessary words. It is concise and front-loaded, but it lacks any structural elements like usage notes or examples. Slightly more context could improve it without sacrificing conciseness.

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

Completeness3/5

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

For a simple rename operation with two well-documented parameters, the description is minimally adequate. However, it does not mention return values (since no output schema) or any side effects. Given the tool's simplicity, a score of 3 is reasonable.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters have clear descriptions in the schema. The tool description does not add any additional meaning or nuance beyond what is already provided, so it meets the baseline expectation.

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

Purpose4/5

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

The description states 'Rename an existing folder,' which clearly identifies the action and resource. It is specific enough to distinguish from sibling tools like 'archive_folder' or 'create_folder', though it could be more precise by mentioning 'name' explicitly.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'update_task_details' or 'move_folder' (not listed but implied). There is no mention of limitations or exclusion criteria, leaving the agent to infer usage context.

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

update_pageupdate_pageA
Idempotent

Update the title and/or body of an existing page. At least one field must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesThe ID of the page to update
titleNoNew title for the page (optional)
bodyNoNew HTML body for the page (optional)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false, so the description's statement about updating title/body aligns well. The addition of the 'at least one field' constraint adds context beyond annotations.

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?

Single sentence, no wasted words, and front-loaded with the core action. Extremely concise yet informative.

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 a simple update tool with no output schema, the description covers the action and constraints. It could optionally note that other fields remain unchanged, but is sufficient as is.

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%, but the description adds value by clarifying that at least one optional field (title or body) must be provided, which is not explicit in 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?

Description clearly states 'Update the title and/or body of an existing page' with a specific verb and resource, and distinguishes from siblings like create_page (create new) and delete_page (remove).

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

Usage Guidelines4/5

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

Description provides usage constraint 'At least one field must be provided', but does not explicitly address when to use this tool vs alternatives like copy_page or move_page. The constraint is useful for correct invocation.

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

update_task_assignmentupdate_task_assignmentA
Idempotent

Update the assignee of an existing task. If PRODUCTIVE_USER_ID is configured, you can use "me" to refer to the configured user. To unassign, use "null" as a string.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to update (required)
assignee_idYesID of the person to assign the task to (use "null" string to unassign). If PRODUCTIVE_USER_ID is configured in environment, "me" refers to that user.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations indicate modification, non-destructive, and idempotent. The description adds context on special values ('me', 'null') but does not contradict annotations. It provides useful but not extensive behavioral detail.

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?

Three sentences, front-loaded with main purpose, no waste. Every sentence adds value, including the special handling notes.

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

Completeness5/5

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

For a simple update with two parameters, no output schema, and annotations covering safety, the description is complete. It covers all necessary special cases.

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 baseline is 3. The description adds meaning beyond the schema by explaining the 'me' and 'null' usage for assignee_id, which compensates well.

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?

The description clearly states the tool updates the assignee of an existing task, with specific verb and resource. It distinguishes from siblings by focusing on assignment and providing special cases like 'me' and 'null'.

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

Usage Guidelines4/5

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

The description implies when to use the tool (to change assignee, including unassigning) but does not explicitly mention alternatives or when not to use it. However, the context of sibling tools makes it clear.

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

update_task_detailsupdate_task_detailsA
Idempotent

Update the title (name) and/or description of an existing task. At least one field must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to update (required)
titleNoNew title/name for the task (optional, but cannot be empty if provided)
descriptionNoNew description for the task (optional, use empty string to clear description)

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds minimal behavioral info beyond usage constraint. No contradictions.

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?

Single sentence with no wasted words. Perfectly front-loaded with action and condition.

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

Completeness5/5

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

Given the tool updates only two fields and annotations cover safety, the description is complete. No output schema is needed.

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

Parameters3/5

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

Schema coverage is 100%, so description adds little extra. It clarifies that 'title' is also called 'name', but otherwise repeats schema info.

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?

The description clearly states the verb 'Update', the resource 'existing task', and specific fields 'title (name) and/or description'. It distinguishes from sibling tools like update_task_status and update_task_assignment.

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

Usage Guidelines4/5

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

The description provides a clear prerequisite: 'At least one field must be provided.' While it doesn't explicitly state when not to use or name alternatives, the context makes it unambiguous when to use this tool.

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

update_task_listupdate_task_listA
Idempotent

Rename an existing task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_list_idYesThe ID of the task list to rename
nameYesNew name for the task list

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate it's not read-only and not destructive. Description adds minimal extra context; no side effects or prerequisites disclosed, which is acceptable for a simple rename.

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?

Single sentence, perfectly front-loaded, no unnecessary words.

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

Completeness5/5

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

For a simple rename tool with 2 simple parameters and no output schema, the description is sufficient and complete.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. Description 'rename' implies their roles but adds no additional meaning beyond the schema.

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?

Description 'Rename an existing task list' is a specific verb+resource combination. It clearly distinguishes from siblings like archive_task_list, create_task_list, get_task_list, and reposition_task_list.

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

Usage Guidelines4/5

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

Clearly states when to use (to rename a task list). Does not provide explicit exclusions or alternatives, but given the sibling set, the context is sufficient.

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

update_task_sprintupdate_task_sprintA
Idempotent

Update the sprint(s) assigned to a task. Sprints are tracked using a custom field.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to update
sprintsYesSprint number(s) like "S03" or ["S03", "S04"]. Use empty array [] or null to remove all sprints

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already indicate idempotentHint=true, so the description adds little beyond stating 'update'. It does not elaborate on behavior for invalid sprints, task not found, or side effects.

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?

Two sentences, front-loaded with the main action. No unnecessary words, and the structure is efficient.

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 a mutation tool with no output schema, the description covers the core functionality. It could mention return value or error conditions, but annotations provide idempotentHint and parameters are well-defined.

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

Parameters3/5

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

Parameter schema coverage is 100% with good descriptions. The description adds context that sprints are a custom field, which is helpful but not essential beyond schema.

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?

The description clearly states the action 'Update the sprint(s) assigned to a task' and specifies that sprints are tracked via a custom field. This distinguishes it from other update_task_* tools in the sibling list.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives, nor when not to use it. While the description is clear on what it does, it lacks context about prerequisites or exclusions.

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

update_task_statusupdate_task_statusA
Idempotent

Update the status of a task. Provide either workflow_status_id directly, or status_name (case-insensitive, partial match) to resolve it from list_workflow_statuses.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to update (required)
workflow_status_idNoID of the workflow status to set. If omitted, status_name is used to resolve it.
status_nameNoStatus name (e.g. "In Progress", "Done"). Case-insensitive, partial match. Used when workflow_status_id is not given.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds the resolution behavior for status_name but does not detail permissions or error handling. Given annotation coverage, a 3 is appropriate.

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?

Two sentences, front-loaded with purpose, no redundant words. Every sentence adds value.

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?

The tool is simple (update status), with full schema coverage and idempotent annotation. The description is sufficient for an agent to use it correctly. Could mention that the task must exist, but it's implied.

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%, but the description adds value by explaining the resolution logic for status_name (case-insensitive, partial match) and the conditional usage between workflow_status_id and status_name.

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?

The description clearly states it updates the status of a task and specifies two methods (direct ID or name resolution). This distinguishes it from sibling tools like update_task_details or list_workflow_statuses.

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

Usage Guidelines4/5

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

The description explains when to use each parameter (workflow_status_id vs status_name) and how status_name is resolved (case-insensitive, partial match, referencing list_workflow_statuses). It does not explicitly exclude other scenarios but provides clear context.

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

update_time_entryupdate_time_entryA
Idempotent

Update an existing time entry in Productive.io. Only provide the fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
time_entry_idYesID of the time entry to update (required)
dateNoNew date (YYYY-MM-DD)
timeNoNew duration (e.g. "2h", "90m", "1.5")
billable_timeNoNew billable duration (same format as time)
noteNoNew work description (use empty string to clear)
service_idNoNew service ID
task_idNoNew task ID, or null to unlink from task

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide idempotentHint true, readOnlyHint false, and destructiveHint false. The description adds the 'Update' verb which is consistent but does not disclose any additional behavioral traits such as authorization requirements, rate limits, or side effects. Given the annotations cover the safety profile, the description does not add significant value beyond stating the obvious.

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?

The description is extremely concise with only two sentences, both front-loaded with the purpose and a key usage note. No unnecessary words, every sentence earns its place.

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

Completeness3/5

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

Given there is no output schema and 7 parameters, the description lacks information about return values, error handling, or success indicators. It also does not mention any related sibling tools for reference. While the partial update hint is useful, the description feels incomplete for a mutation tool.

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?

While all parameters have descriptions in the schema (100% coverage), the description adds the important semantic hint that only changed fields need to be provided, emphasizing the partial update behavior. This goes beyond the schema's basic field descriptions.

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?

The description clearly states the verb 'Update' and the resource 'time entry' along with the platform 'Productive.io'. It distinguishes itself from sibling tools like create_time_entry and delete_time_entry by specifying that it modifies an existing entry.

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

Usage Guidelines4/5

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

The description explicitly says 'Only provide the fields you want to change', which indicates a partial update pattern. However, it does not mention when to use this tool versus alternatives like create_time_entry or delete_time_entry, nor does it specify any prerequisites or context.

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

update_todoupdate_todoA
Idempotent

Update a todo/checklist item — rename it or mark it as completed/incomplete.

ParametersJSON Schema
NameRequiredDescriptionDefault
todo_idYesThe ID of the todo item
descriptionNoNew description text for the todo item
closedNoSet to true to mark as done, false to mark as incomplete

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate idempotentHint=true and non-destructive. The description adds context by listing the specific update operations (rename, completion). No contradictions with annotations.

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?

The description is a single, well-structured sentence that front-loads the key action and specifics. No wasted words.

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?

The description is sufficient for a simple update tool with no output schema. It covers the main operations but could mention error handling or expected response for completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes parameters adequately. The description adds value by mapping 'rename' to description and 'mark complete/incomplete' to closed, but does not provide new information beyond what's in the schema.

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?

The description clearly states the tool updates a todo/checklist item with specific actions: rename or mark complete/incomplete. It effectively distinguishes from sibling tools like create_todo and delete_todo.

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

Usage Guidelines4/5

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

The description implies usage scenarios (rename or toggle completion) but does not explicitly state when not to use or suggest alternatives. Given the many sibling update tools, explicit differentiation would improve clarity.

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

whoamiwhoamiA
Read-onlyIdempotent

Get the current user context. Shows which user ID is configured as "me" for all operations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
configuredYes
userIdNo
fullNameNo
emailNo
messageYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds value by specifying that the tool shows the user ID configured as 'me', revealing the exact output. No contradictions.

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?

The description is two short sentences, no filler, and front-loaded with the key action.

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

Completeness5/5

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

Given no parameters and the existence of an output schema, the description is fully complete. It says what the tool does and what it returns, leaving no gaps.

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?

The tool has no parameters, and the schema coverage is 100%. The description does not need to add more, and the baseline for zero parameters is 4.

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?

The description explicitly states the tool gets the current user context and shows the user ID configured as 'me'. It is specific and distinct from sibling tools like 'list_people' or 'get_person'.

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

Usage Guidelines4/5

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

While the description is clear about what the tool does, it does not explicitly state when to use it versus alternatives like 'list_people' or 'get_person'. However, for a simple identity tool, the purpose is self-explanatory.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 83 tool updatesv2.0.0-alpha.7
    • First observedadd_comment_reaction
    • First observedadd_task_comment
    • First observedadd_task_dependency
    • First observedadd_to_backlog
    • First observedarchive_folder
    • First observedarchive_task_list
    • First observedcopy_page
    • First observedcreate_board
    • First observedcreate_expense
    • First observedcreate_folder
    • First observedcreate_page
    • First observedcreate_subtask
    • First observedcreate_task
    • First observedcreate_task_list
    • First observedcreate_tasks_batch
    • First observedcreate_time_entry
    • First observedcreate_todo
    • First observeddelete_comment
    • First observeddelete_page
    • First observeddelete_task
    • First observeddelete_time_entry
    • First observeddelete_todo
    • First observedget_budget_burn
    • First observedget_comment
    • First observedget_deal
    • First observedget_folder
    • First observedget_invoice
    • First observedget_org_overview
    • First observedget_overbooked_people
    • First observedget_page
    • First observedget_person
    • First observedget_project_services
    • First observedget_project_tasks
    • First observedget_recent_updates
    • First observedget_resource_plan
    • First observedget_task
    • First observedget_task_dependency
    • First observedget_task_list
    • First observedget_todo
    • First observedlist_activities
    • First observedlist_attachments
    • First observedlist_boards
    • First observedlist_bookings
    • First observedlist_comments
    • First observedlist_companies
    • First observedlist_deal_services
    • First observedlist_expenses
    • First observedlist_folders
    • First observedlist_invoices
    • First observedlist_memberships
    • First observedlist_pages
    • First observedlist_people
    • First observedlist_project_deals
    • First observedlist_projects
    • First observedlist_services
    • First observedlist_subtasks
    • First observedlist_task_dependencies
    • First observedlist_task_lists
    • First observedlist_tasks
    • First observedlist_time_entries
    • First observedlist_todos
    • First observedlist_workflow_statuses
    • First observedmove_page
    • First observedmove_task_to_list
    • First observedmy_tasks
    • First observedpin_comment
    • First observedremove_task_dependency
    • First observedreposition_task
    • First observedreposition_task_list
    • First observedrestore_folder
    • First observedrestore_task_list
    • First observedunpin_comment
    • First observedupdate_comment
    • First observedupdate_folder
    • First observedupdate_page
    • First observedupdate_task_assignment
    • First observedupdate_task_details
    • First observedupdate_task_list
    • First observedupdate_task_sprint
    • First observedupdate_task_status
    • First observedupdate_time_entry
    • First observedupdate_todo
    • First observedwhoami

TDQS

A3.6/5.0

Scored across 83 tools

Disambiguation4/5

Most tools have distinct purposes, but some overlap exists between list_tasks and get_project_tasks, and add_to_backlog could be confused with create_task_list. Overall, the majority are clearly separated.

Naming Consistency5/5

Tool names consistently use snake_case and follow a verb_noun pattern (e.g., create_task, list_people, update_task_status). Exceptions like my_tasks and whoami are minor and still clear.

Tool Count2/5

83 tools is excessive for a single MCP server, making it unwieldy. While the domain is broad, the number of tools could be reduced by consolidating or splitting into multiple servers.

Completeness4/5

The tool set covers CRUD for most entities (tasks, comments, pages, time entries) and includes reporting tools. Minor gaps exist (e.g., no deal update or invoice creation), but core workflows are well-covered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/rubenlangeweg/productive-mcp'

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