Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_project_list_list_tasks

Read-onlyIdempotent

Retrieve tasks from a specific project list and paginate through results with limit and searchAfter for browsing or syncing.

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 Tasks Pages tasks whose primary (home) list is this list. Use limit and query searchAfter from the previous response searchAfter (opaque base64url string). Prefer Search Tasks with parentTaskId / subtaskViewMode for subtask-focused views. Endpoint: GET /projects/lists/{listId}/tasks (Version header: v3; source: v3/projects-v3.json) OAuth scopes: projects/tasks.readonly Pagination params: limit — pass them to page through full result sets.

Input Schema

NameRequiredDescriptionDefault
limitNoPage size
listIdYesList id
locationIdNoLocation id. Required for APP channel (`?locationId=`). Ignored for OAuth/PIT (token location is used). Do not send in path, body, or headers.
searchAfterNoOpaque searchAfter for task list/search (base64url-encoded JSON array). Pass the response `searchAfter` back verbatim. `null` when no further page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.1.0

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/openWorld, so the safety profile is known. The description adds genuinely useful behavior — RBAC filtering omits inaccessible ids rather than erroring, embedded subtasks are omitted, searchAfter is opaque and null on the last page — but the first paragraph's content on deletes, lexorank and recurring tasks belongs to sibling tools, not this read-only listing.

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?

The opening paragraph is API-wide boilerplate about hierarchy, RBAC on batch-get, lexorank positions, recurring tasks and delete cascades — almost none of which applies to a read-only task listing. The actual purpose is buried in the second paragraph, so the tool's own function is not front-loaded.

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 paginated list with a fully documented schema, it supplies endpoint, version header, OAuth scope and paging behavior. Return shape isn't described, but with no output schema and an explicit note about the response `searchAfter` field, an agent has enough to call 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%, including limit bounds, listId, locationId channel rules and searchAfter semantics, so the schema already carries the parameter burden. The description only restates the paging usage, adding little beyond what the schema documents.

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?

"Get Tasks — Pages tasks whose primary (home) list is this list" gives a precise verb, resource and scoping rule, and explicitly contrasts with Search Tasks for subtask views, so the agent can distinguish it from ghl_project_search_tasks and ghl_project_get_task_lists.

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 names the alternative (Search Tasks with parentTaskId / subtaskViewMode) and the condition that selects it, plus the paging loop (use limit, feed back searchAfter verbatim). That is concrete routing guidance, though no explicit 'when not to use' beyond the subtask case.

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