Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_clientportal_create_mobile_experience_preview_token

Creates a short-lived preview token so a mobile app preview shows the specified app; append it as #previewToken to the sandbox dev URL to replace the stock preview.

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. Create a preview link token for a phone app. A short-lived token that makes the app's preview show this app. Open sandbox.devUrl from GET .../cli/projects/{projectId}/context with #previewToken=<token> appended; without it the preview shows the stock app. Endpoint: POST /ai-builder-api/projects/{projectId}/app-config/mobile-preview-token (Version header: v3; source: v3/clientportal-ai-v3.json) OAuth scopes: clientportal-ai.readonly

Input Schema

NameRequiredDescriptionDefault
bodyNoRequest body (schema carried verbatim from the official OpenAPI spec).
projectIdYesThe app's id.

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?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, and the description adds real context: the token is short-lived, it makes the preview show this app rather than the stock app, and it notes OAuth scope. But the leading 'side-effecting: opens/edits sandboxes and starts builds' banner describes the whole `/ai-builder-api` family, not this token-minting call, and sits awkwardly next to 'OAuth scopes: clientportal-ai.readonly' — an agent could reasonably misread this as modifying the sandbox.

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 front-loaded paragraph is an API-family banner about sandbox state and 409 handling that is irrelevant to this specific tool, pushing the actual purpose to the second line. The genuinely useful content (token purpose, devUrl usage, endpoint, scope) is compact, but a meaningful share of the text does not earn its place for this call.

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?

There is no output schema, and the description only implicitly indicates the return value (a `token` used as `#previewToken=<token>`), without naming the response field or confirming behavior on expiry. Endpoint, version header, scope and the follow-up step are all present, so it is adequate but not fully complete for a token-issuing call.

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%: `projectId` is documented as 'The app's id' with a `prj_` pattern, and `expiresInSeconds` has a range plus a description. The prose only reinforces the short-lived nature of the token and adds no additional syntax, default, or format detail beyond the schema, so the baseline 3 applies.

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?

The second sentence states a specific verb and resource: 'Create a preview link token for a phone app,' followed by what the token does ('makes the app's preview show this app'). This clearly separates it from adjacent mobile siblings such as ghl_clientportal_request_mobile_apk_build or ghl_clientportal_publish_app_customization.

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 tells you how to consume the token (append `#previewToken=<token>` to `sandbox.devUrl` from the context endpoint) and what happens without it, which is genuinely useful operational guidance. However, it never says when to reach for this tool versus the other mobile/preview-related siblings, and the sandbox-editing rules it does state (wait for `sandbox.status` = `ready`, checkpoint, 409 meaning) apply to other AI Builder tools, not to minting a token.

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