Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_project_get_space_statuses

Read-onlyIdempotent

Retrieve effective status groups for a project space to render boards and map task status values, including detecting completion when statusGroup is done.

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 Space Statuses Returns effective status groups for the space (groups[].statuses[] with key, label, color, position). Use when rendering a board or mapping task status values. A task is complete when properties.statusGroup is done. Endpoint: GET /projects/spaces/{spaceId}/statuses (Version header: v3; source: v3/projects-v3.json) OAuth scopes: projects/workspace.readonly

Input Schema

NameRequiredDescriptionDefault
spaceIdYesSpace 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

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered; the description adds genuinely new context: the endpoint, the v3 version header, the OAuth scope (projects/workspace.readonly), and the semantics of statusGroup. Some of the family preamble (delete cascades, lexorank, RBAC batch-get) does not apply to this specific call, which dilutes the value slightly.

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

Conciseness3/5

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

The tool-specific paragraph is well constructed and front-loaded with the verb and return shape, but it is preceded by a lengthy shared preamble about task batch-get RBAC, lexorank reordering, recurring task fields, and delete cascades that is irrelevant to fetching space statuses.

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 compensates by enumerating the response structure and the 'done' statusGroup rule, which is exactly what an agent needs to interpret results. Endpoint, version, and scope are all present; only the incidental preamble keeps it from being fully tight.

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% — both spaceId and locationId are documented in the schema, including the APP-channel vs OAuth/PIT distinction. The description adds nothing about parameters beyond the space scoping already implied, so the 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?

States a specific verb and resource ('Get Space Statuses' / 'Returns effective status groups for the space') and even names the return shape (groups[].statuses[] with key, label, color, position). This clearly separates it from sibling reads like ghl_project_get_list_statuses and the write sibling ghl_project_upsert_space_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?

'Use when rendering a board or mapping task `status` values' gives a concrete triggering context, and 'A task is complete when properties.statusGroup is done' makes the intended downstream use explicit. It stops short of naming the alternative sibling (list statuses) and when that one would be preferred.

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