Skip to main content
Glama

Create a share link and embed code

create_share_link
Idempotent

Use when the user wants to send a saved design to someone, post it, or embed it on a site: returns the share page, the iframe embed snippet, the oEmbed endpoint and a poster image URL. Unlisted (default) works for anyone holding the link without making the project public; public makes the page indexable. Reuses the project's active link of the same visibility, so calling twice is safe. The project must have been opened and saved once. Owner only. Do not use to let someone edit; create_invite_link does that.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
titleNoTitle on the share page; defaults to the project title
visibilityNounlisted
allow_downloadNoLet viewers download the file from the page

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesThe share page
kindYes
titleYes
tokenYes
statusYes
embedUrlYesThe iframe source
modelUrlYesThe GLB, for shares of generated meshes
videoUrlYesTurntable MP4, when one has been rendered
createdAtYes
embedHtmlYesCopy-paste iframe snippet with attribution
expiresAtYes
oembedUrlYesoEmbed endpoint for this share
posterUrlYesRendered still of the design, when one exists
projectIdYes
viewCountYes
visibilityYes
embedEnabledYes
allowDownloadYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / properties / expiresAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / expiresAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / modelUrl
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The GLB, for shares of generated meshes"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "token",
      -  "url",
      -  "embedUrl",
      -  "posterUrl",
      -  "videoUrl",
      -  "oembedUrl",
      -  "embedHtml",
      -  "kind",
      -  "title",
      -  "visibility",
      -  "status",
      -  "expiresAt",
      -  "allowDownload",
      -  "embedEnabled",
      -  "viewCount",
      -  "projectId",
      -  "createdAt"
      -]New value: +[
      +  "token",
      +  "url",
      +  "embedUrl",
      +  "posterUrl",
      +  "videoUrl",
      +  "modelUrl",
      +  "oembedUrl",
      +  "embedHtml",
      +  "kind",
      +  "title",
      +  "visibility",
      +  "status",
      +  "expiresAt",
      +  "allowDownload",
      +  "embedEnabled",
      +  "viewCount",
      +  "projectId",
      +  "createdAt"
      +]
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Even though annotations carry idempotentHint, openWorldHint, readOnlyHint=false, and destructiveHint=false, the description adds genuine behavioral context beyond them: it explains the idempotency mechanism ('Reuses the project's active link of the same visibility, so calling twice is safe'), the side effect of public visibility ('makes the page indexable'), the ownership requirement, and the save-once precondition. All behavioral claims align with the annotations; no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph with no filler. The purpose is front-loaded in the first sentence, followed by visibility semantics, idempotency, prerequisites, ownership, and the alternative routing. Every sentence earns its place and the total is compact given the richness of information conveyed.

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

Completeness5/5

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

Given the output schema exists (so return format is covered there), this description covers everything else an agent needs: when to use it, when not to, prerequisites, ownership, visibility behavior, idempotency, and returned artifact types. It even mentions return contents despite the output schema. No meaningful gap remains for a share-link creation tool.

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 coverage is 50%, with title and allow_download already documented in the schema. The description compensates for the undocumented visibility parameter by explaining unlisted vs public semantics and the default. The required id parameter lacks a schema description, but the description's context ('saved design', 'project must have been opened and saved once') makes clear it is the project ID. Minor gap: no explicit statement that only the project owner's id is valid.

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?

States a specific verb (create) plus resource (share link) and a concrete use case: send, post, or embed a saved design. It names exactly what is returned (share page, iframe embed snippet, oEmbed endpoint, poster image URL), and explicitly differentiates itself from create_invite_link by saying 'Do not use to let someone edit.' An agent can instantly tell this tool apart from its siblings.

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

Usage Guidelines5/5

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

Provides explicit when-to-use conditions ('send a saved design to someone, post it, or embed it on a site'), excludes the editing use case, and names the alternative (create_invite_link). It also states prerequisites ('must have been opened and saved once'), authorization ('Owner only'), and explains the unlisted vs public visibility semantics. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation3/5

Most tools target distinct resources, but several overlapping pairs exist: search/list_projects both find projects by title, fetch/get_project both return project details, and upload_logo_image/request_logo_image_upload are two upload paths. The descriptions help clarify boundaries, but an agent could still misselect.

Naming Consistency4/5

Tool names overwhelmingly follow a clear verb_noun snake_case pattern (create_, list_, get_, update_, delete_). Minor deviations like bare 'fetch' and 'search', plus the mixed '3d' in generate_3d_model vs '3D' in descriptions, keep it from being perfectly consistent.

Tool Count2/5

At 31 tools, this exceeds the 25+ threshold where agent tool selection becomes cognitively heavy. While the server covers a broad platform, several tools are near-redundant and could be consolidated, making the count feel inflated.

Completeness4/5

The surface covers project lifecycle, sharing/publishing, AI generation, uploads, materials, and account/plan management quite thoroughly. Minor gaps exist, such as no direct create_coin_project tool and no deletion for generation runs, but these are workable.

Resources