Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_project_list_task_comments

Read-onlyIdempotent

Retrieve paginated comments for a project task, including replies and excluding deleted entries, to review task discussions.

Instructions

PROJECT MANAGEMENT API — hierarchy is spaces -> folders -> lists -> tasks (+ comments, space statuses, recurring tasks). Task batch-get is RBAC-filtered (inaccessible ids are omitted, not errors) and omits embedded subtasks. position is an opaque server-assigned lexorank string; there is no public reorder endpoint. Recurring tasks use owners/contactIds and rruleOptions.intervalType (task create uses assignees/contactId). Task search supports updatedAt filtering/sorting for incremental sync. The docs do not describe what a delete cascades to — treat every delete as destructive. Get Task Comments Pages comments on a task. Deleted comments are omitted. Replies are returned as sibling rows in comments with parentCommentId set — there is no nested replies array. skip must be a multiple of limit. total counts top-level comments only. Endpoint: GET /projects/tasks/{taskId}/comments (Version header: v3; source: v3/projects-v3.json) OAuth scopes: projects/tasks.comments.readonly Pagination params: skip, limit — pass them to page through full result sets.

Input Schema

NameRequiredDescriptionDefault
skipNoSkip
limitNoPage size
taskIdYesTask id
locationIdNoLocation id. Required for APP channel (`?locationId=`). Ignored for OAuth/PIT (token location is used). Do not send in path, body, or headers.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the bar is lower, yet the description still adds real behavior: deleted comments are omitted, replies appear as sibling rows carrying parentCommentId rather than a nested array, and total counts top-level comments only. The preamble's warnings about destructive deletes and RBAC omission on batch-get are irrelevant to this read-only endpoint and add noise rather than transparency.

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

Conciseness2/5

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

A substantial share of the text — spaces/folders/lists hierarchy, batch-get RBAC filtering, lexorank reordering, recurring task field naming, updatedAt sync, delete cascade warnings — describes the API at large and is never referenced by this call. The relevant sentences are well written but are buried behind front-loaded irrelevant content, inverting the intended structure.

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 annotations covering safety and a fully documented schema, the description supplies the missing pieces: endpoint, OAuth scope, response shape (flattened replies, top-level-only total) and pagination mechanics. Only the locationId channel nuance is left entirely to the schema, which is acceptable given its thorough description there.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds a semantic constraint the schema cannot express: skip must be a multiple of limit. It also frames skip/limit as the paging mechanism, which clarifies intent beyond the bare 'Skip' and 'Page size' schema strings.

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 operative block states a specific verb and resource — "Get Task Comments / Pages comments on a task" — which cleanly separates it from siblings like ghl_project_create_task_comment and ghl_project_delete_task_comment. However, the lengthy API-wide preamble about batch-get RBAC, lexorank positions, recurring tasks and task search obscures the tool's actual purpose rather than reinforcing it.

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 tells the caller to pass skip/limit "to page through full result sets" and states the hard constraint that skip must be a multiple of limit, which is actionable usage guidance. It stops short of naming when a caller should prefer another tool (e.g., get_task for task metadata) or when not to use this one.

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

Deploy Server

Other Tools