Docs
Docs

Tools reference

Every tool, input, status, error and limit of the Glorya MCP server.

Your AI app picks these tools for you; you never call them by name. This page is the skill's own reference file, references/tools.md, so people and agents read the same contract.

The complete Glorya MCP contract: how to connect, every tool with its inputs and results, job statuses, errors and limits. Any MCP client can run Glorya end to end from this page.

Connection

  • Endpoint: https://platform.glorya.ai/mcp, streamable HTTP.
  • Sign-in: OAuth 2.1 with the user's Glorya account. Discovery starts at https://platform.glorya.ai/.well-known/oauth-protected-resource/mcp, which names the authorization server https://platform.glorya.ai/api/auth. It supports dynamic client registration, client ID metadata documents and PKCE. Send the access token as Authorization: Bearer <token>.
  • On sign-in the user picks a default brand. Every tool uses it unless you pass workspace.
  • Every tool needs an active Glorya plan on the brand's organization. Work that makes something uses Glorya credits, the same as in the platform.

Read tools

list_workspaces

Finds the account's brands by name, default brand first. Call it only when the user names a brand other than the default.

Annotations: read-only.

InputTypeRequiredDefaultNotes
querystring, 1 to 100 charactersoptionalnonePart of the brand name the user said. Case and accents don't matter.
limitinteger, 1 to 50optional20How many brands to return.

Returns workspaces (each with id, name, role member or viewer, ready, detail, is_default) and a note that says when more brands match.

get_brand

The brand as Glorya knows it: name, description, website, language, colors, fonts, logo, and its products. Create tools don't need it; call it when the user asks about their brand or products.

Annotations: read-only.

InputTypeRequiredDefaultNotes
workspacestring, 1 to 200 charactersoptionalnoneA brand id from list_workspaces. Empty means the default brand.

Returns workspace_id, brand (name, description, website_url, language, colors, fonts, logo_url) and products (each with id, name, description, key_features, price_range, primary_cta, image_urls).

list_video_formats

The video styles Glorya can make, with preview clips. Call it when the user asks which styles exist, or to find the id of a style the user named.

Annotations: read-only.

No inputs.

Returns formats (each with id, name, preview_video_url, poster_url).

get_job

A job's current state: status, progress, finished images and videos, open questions with their exact choices, page links, and a link to open it in Glorya. With wait_seconds, it waits for the job to change before it answers.

Annotations: read-only.

InputTypeRequiredDefaultNotes
job_idstring, 1 to 200 charactersrequirednoneThe job_id a create tool or refine returned.
wait_secondsinteger, 0 to 45optional0Use 30. It returns early as soon as the job changes.

Returns job_id, kind (image_ad, video_ad, landing_page or website), status, workspace_id, open_url, next_step, title, progress (Glorya's latest message), error, assets (up to 8, each with id, type, url, preview_url, poster_url, width, height, label, created_at), questions (each with request_id, kind, question, choices, details, preview_images) and site (kind, status, preview_url, live_url, publish_status, or null for ads).

list_assets

Recent images and videos made in the brand, newest first, with a link to the job that made each one.

Annotations: read-only.

InputTypeRequiredDefaultNotes
workspacestring, 1 to 200 charactersoptionalnoneA brand id from list_workspaces. Empty means the default brand.
typestringoptional"all"One of image, video, all.
limitinteger, 1 to 20optional10How many assets to return.

Returns workspace_id and assets (the get_job asset fields plus open_url).

Create tools

Each starts a job, uses credits and returns job_id, kind, status (running), workspace_id, open_url and next_step. Follow the job with get_job. Start the job right away from the user's words; Glorya picks the format, size, language and style unless the user named them.

create_image_ad

Starts an on-brand image ad.

Annotations: writes, not destructive.

InputTypeRequiredDefaultNotes
briefstring, 1 to 4,000 charactersrequirednoneThe user's own words. With no details, pass what they asked for, such as "Create an image ad".
workspacestring, 1 to 200 charactersoptionalnoneSet only when the user named another brand.
referencesarray of https URLs, up to 8optional[]Only links the user gave. See the reference limits below.
languagestring, two lowercase lettersoptionalnoneISO 639-1, such as en or de. Only when the user said it; the brand's language is used otherwise.
reviewbooleanoptionalfalseGlorya finishes on its own. Set true only when the user asks to review or approve steps ("let me review", "show me the concept first"); Glorya then stops for approval at the same steps as in the platform. Never ask the user about it.

create_video_ad

Starts an on-brand video ad. Rendering takes minutes.

Annotations: writes, not destructive.

InputTypeRequiredDefaultNotes
briefstring, 1 to 4,000 charactersrequirednoneThe user's own words.
workspacestring, 1 to 200 charactersoptionalnoneSet only when the user named another brand.
referencesarray of https URLs, up to 8optional[]Only links the user gave.
languagestring, two lowercase lettersoptionalnoneOnly when the user said it.
reviewbooleanoptionalfalseGlorya finishes on its own. Set true only when the user asks to review or approve steps; Glorya then stops at the format, script, start frames and final cut. Never ask the user about it.
formatstringoptionalnoneOnly when the user named a style. One of launch_video, dont_blink, stop_motion, mascot_explainer, sketch_explainer, ugc, anime, film_noir, pixar, vox_explainer, talking_heads_montage, claymation, vintage_cartoon, stick_figure, mannequin, fluffy_toy, pixel_art, podcast, high_quality_studio, street_interview, tv_spot, ai_animal.

create_landing_page

Starts building an on-brand landing page. It stays unpublished until publish_site. Needs at least 100 credits.

Annotations: writes, not destructive.

InputTypeRequiredDefaultNotes
briefstring, 1 to 4,000 charactersrequirednoneThe user's own words.
workspacestring, 1 to 200 charactersoptionalnoneSet only when the user named another brand.
referencesarray of https URLs, up to 8optional[]Only links the user gave.
languagestring, two lowercase lettersoptionalnoneOnly when the user said it.

create_website

Starts building an on-brand website with several pages. It stays unpublished until publish_site. Needs at least 100 credits.

Annotations: writes, not destructive.

InputTypeRequiredDefaultNotes
briefstring, 1 to 4,000 charactersrequirednoneThe user's own words.
workspacestring, 1 to 200 charactersoptionalnoneSet only when the user named another brand.
referencesarray of https URLs, up to 8optional[]Only links the user gave.
languagestring, two lowercase lettersoptionalnoneOnly when the user said it.

Act tools

respond

Sends the user's answer to a question Glorya asked (get_job status needs_input).

Annotations: writes, not destructive.

InputTypeRequiredDefaultNotes
job_idstring, 1 to 200 charactersrequirednoneThe job with the open question.
answerstring, 1 to 4,000 charactersrequirednoneFor decision and approve questions, one exact label from choices. For input, revise and clarify, the user's own words.
request_idstring, 1 to 200 charactersoptionalnoneThe question's request_id. Needed when more than one question is open.

Returns job_id, request_id, answer, status (submitted) and next_step.

refine

Asks Glorya to change a job's result: new copy, another variation, a different color, a page edit. Uses credits; page edits need at least 100.

Annotations: writes, not destructive.

InputTypeRequiredDefaultNotes
job_idstring, 1 to 200 charactersrequirednoneThe job to change.
instructionstring, 1 to 4,000 charactersrequirednoneWhat to change, in the user's words.
reviewbooleanoptionalfalseImage and video ads only. Glorya finishes on its own. Set true only when the user asks to review or approve steps. Never ask the user about it.

Returns the same fields as a create tool. Follow the same job_id with get_job.

publish_site

Puts a finished landing page or website live on the internet. Call it only when the user explicitly asks to publish.

Annotations: destructive, open world.

InputTypeRequiredDefaultNotes
job_idstring, 1 to 200 charactersrequirednoneA completed landing page or website job.
slugstring, up to 63 charactersoptionalnoneSubdomain: lowercase letters, digits and dashes, not starting or ending with a dash. Empty keeps the current or default one.

Returns job_id, status (publishing), open_url and next_step. Then call get_job until site.live_url is set.

cancel_job

Stops a running image or video ad and closes its open question. Finished files stay in Glorya. Landing page and website builds can't be cancelled.

Annotations: destructive.

InputTypeRequiredDefaultNotes
job_idstring, 1 to 200 charactersrequirednoneThe job to stop.

Returns job_id, status (cancelling, or nothing_running) and next_step.

Job status

StatusWhat to do
runningCall get_job again with wait_seconds 30. Tell the user now and then that it is still working.
needs_inputShow each item in questions as written, with its exact choices and preview_images. Send the user's answer with respond, then keep following the job.
completedShare the results: each asset url, or site.preview_url and site.live_url for pages, plus open_url. If progress asks the user something, relay it and send the answer with refine.
failedTell the user what error or progress says. Offer refine with a changed instruction, or a new job.
cancelledThe job stopped. Finished files stay in Glorya.

Question kinds: decision and approve take one exact label from choices; input, revise and clarify also take the user's own words.

Errors

A failed call returns isError: true with a message for the user and a JSON object with error (the code) and details such as links. Relay the message and its link. Don't retry in a loop.

CodeMeaningWhat to do
plan_requiredThe brand's organization has no active plan.Share checkout_url ($99/month Starter). Try again after the user starts it.
no_creditsNot enough credits.Share billing_url so the user can top up.
setting_upThe brand is still setting up.Try again in a few minutes. Share open_url.
available_shortlyImage and video ads from AI apps aren't ready for this brand yet.Suggest Glorya in the browser (open_url). Landing pages and websites work.
agent_unavailableThe brand's agent is unavailable or updating.Try again in a minute, or open Glorya.
workspace_requiredNo default brand and several brands.Ask which brand, or find it with list_workspaces and query. Pass its id as workspace.
workspace_not_foundThe workspace id isn't one of the user's brands.Call list_workspaces with query set to the brand the user named.
view_onlyThe account can only view this brand.Tell the user; they can't create for it.
limit_reachedToo many jobs running or started.Wait for a job to finish, or stop an image or video ad with cancel_job.
rate_limitedget_job was called too often.Wait retry_after_seconds, then poll with wait_seconds 30.
invalid_referenceA reference link can't be used.Ask for a public https link within the limits below.
job_not_foundNo job with that id for this account.Check the job_id.
no_open_questionThe question was answered, expired, or request_id is needed.Call get_job for the current questions.
invalid_answerThe answer isn't one of the exact choices.Send one label from choices.
not_publishableNot a site, still building, waiting for an answer, or already publishing.Wait for completed, then publish.
not_cancellableLanding page and website builds can't be cancelled.Use refine to change the result instead.
upstream_errorGlorya couldn't do the action.Tell the user the message.
internal_errorAn unexpected error.Try again in a moment.

Limits

  • Jobs running at once: 3 per brand, 10 per organization. Changes with refine count.
  • New jobs: 30 per hour per person.
  • get_job: 120 calls a minute per person. Use wait_seconds instead of a tight loop.
  • brief, instruction and answer: up to 4,000 characters.
  • references: public https links only, checked by their bytes. Up to 6 JPG, PNG or WebP images (20 MB and 4,096 px a side each) and 2 MP4 or MOV videos (200 MB and 2 minutes each), 250 MB per call, all downloaded within 40 seconds.
  • list_assets: up to 20 per call. get_job: up to 8 assets per job.
  • Landing pages and websites need at least 100 credits to start, continue or change.

Prompts

The server also offers four prompts without arguments: image-ad, video-ad, landing-page and website (in Claude Code, /glorya:image-ad and so on). Each starts that job right away.

On this page