Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_clientportal_list_project_custom_domains

Read-onlyIdempotent

Lists a project's custom domains, their setup status, and required DNS records so you can verify attachment and activation.

Instructions

CLIENT PORTAL AI BUILDER API (/ai-builder-api) — side-effecting: opens/edits sandboxes and starts builds. Edit a sandbox only once sandbox.status is ready; checkpoint after edits and before starting the run that builds them; 409 means a cloud build owns the sandbox or it is not running. List the custom domains attached to a project. Lists the app's custom domains with their setup status and the DNS records to add. A domain is attached with changes kind domain; once it is active it serves the live site. Endpoint: GET /ai-builder-api/projects/{projectId}/custom-domains (Version header: v3; source: v3/clientportal-ai-v3.json) OAuth scopes: clientportal-ai.readonly

Input Schema

NameRequiredDescriptionDefault
projectIdYesThe project.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.1.0

TDQS

B3.4/5.0
Behavior3/5

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

Useful additions beyond annotations: the OAuth scope (clientportal-ai.readonly), the endpoint/version, and the fact that the response includes setup status and DNS records. However, the boilerplate preamble declaring the API 'side-effecting: opens/edits sandboxes and starts builds' plus the 409/checkpoint advice is irrelevant to this read-only call and risks confusing an agent about its effects.

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 core is two tight sentences plus endpoint/scope metadata, but the leading paragraph about sandboxes, checkpoints and 409s is boilerplate that does not apply to this tool and pushes the actual purpose to the second sentence.

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?

There is no output schema, so the description carries the return-value burden and does so reasonably: setup status, DNS records to add, the `changes` kind `domain` attachment path, and the meaning of `active`. Combined with annotations and full schema coverage, an agent has enough to call and interpret the result.

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?

Only one parameter (projectId) at 100% schema description coverage, so the schema already carries the burden. The description's mention of 'the app's custom domains' and 'attached to a project' hints at the project scope but adds no syntax or format detail beyond the pattern 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 second sentence states a specific verb and resource: 'List the custom domains attached to a project.' The follow-up clarifies the returned fields (setup status, DNS records) and the domain lifecycle. No sibling differentiator is given, but no sibling in the list appears to expose project custom domains, so ambiguity is low.

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?

Usage is only implied: the agent can infer it should call this to inspect domain setup status or fetch the DNS records that need to be added. There is no explicit when-to-use/when-not, and no named alternative (e.g., the project-change tools used to attach a domain) is offered for the mutation path.

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