Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_project_get_space_users

Read-onlyIdempotent

List users with access to a project space, combining direct and inherited grants and paging results with skip and limit.

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 Users With Space Access Lists users with access as one unified users page (source: direct | inherited). skip / limit / total apply to the combined list (direct first). No name/email/photo and no query filter. Revoke a direct grant with DELETE /projects/spaces/{spaceId}/users/{userId}. PATCH userIds only adds grants. Endpoint: GET /projects/spaces/{spaceId}/users (Version header: v3; source: v3/projects-v3.json) OAuth scopes: projects/workspace.readonly Pagination params: skip, limit — pass them to page through full result sets.

Input Schema

NameRequiredDescriptionDefault
skipNoSkip
limitNoPage size
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

A3.6/5.0
Behavior4/5

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

Beyond the annotations, it discloses important behavior: the combined `users` page includes `source: direct | inherited`, `skip`/`limit`/`total` apply to the combined list with direct users first, and the response lacks name/email/photo fields. It also states OAuth scope and that PATCH only adds grants, though it does not cover rate limits or endpoint-specific error behavior.

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 description opens with a long PROJECT MANAGEMENT API preamble about task hierarchy, RBAC filtering, lexorank positions, recurring tasks, and task search, most of which is unrelated to getting space users. The actually relevant tool-specific information appears later, so the definition is poorly front-loaded and includes several sentences that do not earn their place for this tool.

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 listing tool with no output schema, the relevant section is fairly complete: it gives endpoint, OAuth scope, pagination behavior, included source types, response-field limitations, and related revoke/add operations. The broad irrelevant preamble detracts from focus, but the essential calling context is present.

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 the baseline is 3, but the description adds meaningful pagination semantics by explaining that `skip` and `limit` page through the combined direct-plus-inherited list. It adds less detail for `spaceId` and `locationId`, but those are already documented in 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 tool-specific section clearly states it lists users with access to a space as a unified `users` page, and the endpoint path confirms it is scoped to `/projects/spaces/{spaceId}/users`. It does not explicitly distinguish itself from sibling tools like `ghl_project_get_folder_users` or `ghl_project_get_list_users`, but the space-level resource is clear.

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 by saying it lists space-access users and notes there is no `query` filter, but it gives no explicit instruction on when to choose this over folder-level or list-level user tools. The notes about revoking grants and adding grants via PATCH are useful adjacent context, but they do not directly guide selection among the read/user-listing siblings.

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