Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_clientportal_get_project

Read-onlyIdempotent

Retrieve a Client Portal AI project by ID to view its status, publication state, preview and production URLs, and latest build run.

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. Get a project by id. Returns one app: its status, publication state, preview and production URLs, and its latest run. Endpoint: GET /ai-builder-api/projects/{projectId} (Version header: v3; source: v3/clientportal-ai-v3.json) OAuth scopes: clientportal-ai.readonly

Input Schema

NameRequiredDescriptionDefault
projectIdYesThe project's id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.1.0

TDQS

C2.6/5.0
Behavior1/5

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

The leading line declares the API 'side-effecting: opens/edits sandboxes and starts builds' and advises checkpointing before builds, yet the annotations for this tool declare readOnlyHint=true, idempotentHint=true and destructiveHint=false. That is a direct contradiction an agent could act on (e.g. avoid calling it or add unnecessary checkpoint steps). The 409/sandbox-ownership note is likewise irrelevant to a project read, though the return-value summary and OAuth scope line do add real value.

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 most prominent text is two sentences of sandbox/build boilerplate irrelevant to this read tool, pushing the actual operation ('Get a project by id') into second position. The endpoint/version/scope footer is useful, but the description is not front-loaded on what this tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read with no output schema, the description does supply endpoint path, version header, OAuth scope and a summary of the returned app fields, which is adequate. It is undercut by the copy-pasted side-effecting preamble that gives a false picture of the operation's behavior.

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 coverage is 100% and already documents projectId with a 'prj_...' pattern, so the description's 'by id' framing adds nothing beyond it. Baseline 3 applies since the schema carries the parameter semantics entirely.

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 core sentence 'Get a project by id' plus the enumeration of what is returned (status, publication state, preview/production URLs, latest run) states a specific verb and resource. It is clear enough to distinguish from list_projects and update_project, though it never names those siblings explicitly and the unrelated sandbox preamble dilutes the opening.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives workflow advice for sandbox editing and build runs ('Edit a sandbox only once sandbox.status is ready; checkpoint after edits'), but none of that applies to a GET-by-id call and none of it says when to pick this tool over ghl_clientportal_cli_get_project_context, ghl_clientportal_get_app_customization, or ghl_clientportal_list_projects. Guidance is present but aimed at the wrong operation.

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