Skip to main content
Glama

Create entity

create_entity

Create an ACTOR (character), PRODUCT (something the user sells or promotes), VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION (place or set), or PROP (background object that is not for sale) entity. Anything the user sells is a PRODUCT, never a PROP. A BRAND accepts brandConfig with fonts, colors, and writingStyle. Returns the new entity record with entityId and references. After create, attach references with add_entity_reference (upload the file first). Slideshow themes may attach an image or a PDF / PowerPoint. Use the returned entityId as actorEntityId on generate_avatar / script_to_video / slideshow_to_video, as productEntityIds or actorEntityIds on storyboard_to_video (request and each scene that should show it), as visualStyleEntityId on each storyboard scene, or as slideshowThemeEntityId on slideshow_to_video.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "entityType": "<entityType>",
      "name": "<name>"
    },
    "name": "create_entity"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesDisplay name for the entity.
entityTypeYesACTOR = consistent character; PRODUCT = a product the user sells or promotes; VISUAL_STYLE = look/style for generated images; SLIDESHOW_THEME = shared slide design system for a slideshow deck; BRAND = logo, style guide image, and writing style; LOCATION = consistent place or set; PROP = background object that is not a product. Anything the user sells is a PRODUCT, never a PROP.
brandConfigNoConfiguration for a BRAND entity.
descriptionNoDescribe the subject, product, setting, or visual identity this saved entity represents.

Output Schema

NameRequiredDescriptionDefault
nameYesDisplay name.
entityIdYesEntity id (vg_enti_...).
createdAtYesUnix created-at timestamp.
isBuiltInNoTrue for VideoGen catalog entities that cannot be modified.
updatedAtYesUnix updated-at timestamp.
entityTypeYesACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP.
referencesYesAttached reference images.
actorConfigNoVoice/avatar summary for ACTOR entities; null for other types.
brandConfigNoBrand guidance for BRAND entities; null for other types.
descriptionYesDescription (empty when unset).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / actorConfig / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "hasAvatarPresenter": {
      -        "description": "True when the actor has an image reference usable for avatar generation.",
      -        "type": "boolean"
      -      },
      -      "hasVoice": {
      -        "description": "True when the actor has a configured voice.",
      -        "type": "boolean"
      -      },
      -      "voiceDisplayName": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Configured voice display name when set."
      -      }
      -    },
      -    "required": [
      -      "hasVoice",
      -      "hasAvatarPresenter"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "hasAvatarPresenter": {
      +        "description": "True when the actor has an image reference usable for avatar generation.",
      +        "type": "boolean"
      +      },
      +      "hasVoice": {
      +        "description": "True when the actor has a configured voice.",
      +        "type": "boolean"
      +      },
      +      "voiceDisplayName": {
      +        "description": "Configured voice display name when set.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "hasVoice",
      +      "hasAvatarPresenter"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / description / description
      Previous value: -"Optional longer description."New value: +"Describe the subject, product, setting, or visual identity this saved entity represents."
  3. Changed9 schema fields changed
    • addedInput schema / properties / brandConfig
      Added value: +{
      +  "description": "Configuration for a BRAND entity.",
      +  "properties": {
      +    "colors": {
      +      "description": "Color guidance, including hex codes when available.",
      +      "type": "string"
      +    },
      +    "fonts": {
      +      "description": "Font guidance for a BRAND entity.",
      +      "type": "string"
      +    },
      +    "writingStyle": {
      +      "description": "Voice and tone for spoken and on-screen copy.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "fonts",
      +    "colors",
      +    "writingStyle"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / entityType / description
      Previous value: -"ACTOR = consistent character; PRODUCT = product/object; VISUAL_STYLE = look/style for generated images; SLIDESHOW_THEME = shared slide design system for a slideshow deck."New value: +"ACTOR = consistent character; PRODUCT = a product the user sells or promotes; VISUAL_STYLE = look/style for generated images; SLIDESHOW_THEME = shared slide design system for a slideshow deck; BRAND = logo, style guide image, and writing style; LOCATION = consistent place or set; PROP = background object that is not a product. Anything the user sells is a PRODUCT, never a PROP."
    • changedInput schema / properties / entityType / enum
      Previous value: -[
      -  "ACTOR",
      -  "PRODUCT",
      -  "VISUAL_STYLE",
      -  "SLIDESHOW_THEME"
      -]New value: +[
      +  "ACTOR",
      +  "PRODUCT",
      +  "VISUAL_STYLE",
      +  "SLIDESHOW_THEME",
      +  "BRAND",
      +  "LOCATION",
      +  "PROP"
      +]
    • changedOutput schema / description
      Previous value: -"A reusable actor, product, visual style, or slideshow theme entity."New value: +"A reusable actor, product, visual style, slideshow theme, brand, location, or prop entity."
    • addedOutput schema / properties / brandConfig
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "colors": {
      +          "description": "Color guidance.",
      +          "type": "string"
      +        },
      +        "fonts": {
      +          "description": "Font guidance.",
      +          "type": "string"
      +        },
      +        "writingStyle": {
      +          "description": "Voice and tone for copy.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "fonts",
      +        "colors",
      +        "writingStyle"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Brand guidance for BRAND entities; null for other types."
      +}
    • changedOutput schema / properties / entityType / description
      Previous value: -"ACTOR, PRODUCT, VISUAL_STYLE, or SLIDESHOW_THEME."New value: +"ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, or PROP."
    • changedOutput schema / properties / entityType / enum
      Previous value: -[
      -  "ACTOR",
      -  "PRODUCT",
      -  "VISUAL_STYLE",
      -  "SLIDESHOW_THEME"
      -]New value: +[
      +  "ACTOR",
      +  "PRODUCT",
      +  "VISUAL_STYLE",
      +  "SLIDESHOW_THEME",
      +  "BRAND",
      +  "LOCATION",
      +  "PROP"
      +]
    • addedOutput schema / properties / references / items / properties / role
      Added value: +{
      +  "description": "REFERENCE for generation and thumbnails; BRAND_LOGO / BRAND_STYLE_GUIDE for a brand's logo and style guide.",
      +  "enum": [
      +    "REFERENCE",
      +    "BRAND_LOGO",
      +    "BRAND_STYLE_GUIDE"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / references / items / required
      Previous value: -[
      -  "fileId",
      -  "description",
      -  "isDefault"
      -]New value: +[
      +  "fileId",
      +  "description",
      +  "role",
      +  "isDefault"
      +]
  4. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish this as a non-destructive, non-idempotent, closed-world write. The description adds real value on top: it discloses that the call returns the new entity record with entityId and references, and that files must be uploaded before referencing them. It does not mention duplicate creation on retry (relevant given idempotentHint=false) or error/validation behavior.

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

Conciseness4/5

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

Front-loads the entity type list and the key PRODUCT-vs-PROP rule, then moves to return value and downstream wiring. Every sentence carries information, though the final sentence listing entityId targets across four sibling tools is dense and long enough to slightly slow scanning.

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?

Covers the hard part of this tool well: the type taxonomy and where the returned entityId must be plugged in downstream. Because an output schema exists, return-value detail is not required, and the unused-by-schema 'description' parameter is documented in the schema itself.

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%, so the schema already defines every parameter, including the entityType enum text that the description largely repeats. The one genuine addition is that brandConfig with fonts, colors, and writingStyle applies to BRAND entities, but the schema's 'Configuration for a BRAND entity' already implies this.

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 the exact set of creatable resource types (ACTOR, PRODUCT, VISUAL_STYLE, SLIDESHOW_THEME, BRAND, LOCATION, PROP), and disambiguates two of them in the same breath. An agent can tell this apart from update_entity or create_file_upload without opening a schema.

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

Usage Guidelines4/5

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

Gives an explicit classification rule ('Anything the user sells is a PRODUCT, never a PROP'), says when brandConfig is relevant, and routes the agent to add_entity_reference for attaching files after creation. It lacks an explicit contrast with update_entity (create new vs. modify existing), which is the main remaining ambiguity.

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.