Skip to main content
Glama

Embers: Tabletop RPG Toolkit

Create an imagine world

imagine_create_world

Create a new world owned by the calling user. Required: name. Other fields (summary, description, link) pass through to imagine, which validates and assigns defaults where appropriate. Worlds do not carry a ruleset of their own; ruleset lives on the adventure(s) under the world instead.

Input Schema

NameRequiredDescriptionDefault
linkNoURL-safe slug for the world (lowercase letters, digits, hyphens). Imagine auto-suggests at create time when omitted.
menuNoSite menu entries — label + optional link/pageId/order.
nameYesWorld name. Required.
imageNo
activeNo
publicNoWhether the world is public. Only Premium, VIP, and admin accounts can change whether a world is public; the server refuses the change from anyone else. A new world is public unless set otherwise.
faviconNo
summaryNoShort summary; capped at 255 characters. Cross-app convention (per dev-sites/AGENTS.md); the Mongoose World schema still accepts up to 500 as a legacy inconsistency being migrated, but new authoring should keep summaries under 255.
calendarNoOptional calendar definition (months[] + eras[]).
keywordsNo
showInviteNoWhether the world's public page shows an invite button. Only the world's owner or an admin with Admin Mode on can change it; a contributor's value is ignored.
descriptionNoFull world description. Markdown supported.
customDomainNoOptional custom domain pointing at the world's public site.
imageCarouselNo
isExampleWorldNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / showInvite / description
      Added value: +"Whether the world's public page shows an invite button. Only the world's owner or an admin with Admin Mode on can change it; a contributor's value is ignored."
  2. Changed18 schema fields changed
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +{}
    • addedInput schema / properties / active
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / calendar
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Optional calendar definition (months[] + eras[]).",
      +  "properties": {
      +    "eras": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "order": {
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "months": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "order": {
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / customDomain
      Added value: +{
      +  "description": "Optional custom domain pointing at the world's public site.",
      +  "type": "string"
      +}
    • addedInput schema / properties / description
      Added value: +{
      +  "description": "Full world description. Markdown supported.",
      +  "type": "string"
      +}
    • addedInput schema / properties / favicon
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / image
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / imageCarousel
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / isExampleWorld
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / keywords
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / link
      Added value: +{
      +  "description": "URL-safe slug for the world (lowercase letters, digits, hyphens). Imagine auto-suggests at create time when omitted.",
      +  "type": "string"
      +}
    • addedInput schema / properties / menu
      Added value: +{
      +  "description": "Site menu entries — label + optional link/pageId/order.",
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {
      +      "label": {
      +        "description": "Required by Mongoose.",
      +        "type": "string"
      +      },
      +      "link": {
      +        "type": "string"
      +      },
      +      "order": {
      +        "type": "number"
      +      },
      +      "pageId": {
      +        "description": "Mongo `_id` reference (24-character hex string).",
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / name
      Added value: +{
      +  "description": "World name. Required.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / public
      Added value: +{
      +  "description": "Whether the world is public. Only Premium, VIP, and admin accounts can change whether a world is public; the server refuses the change from anyone else. A new world is public unless set otherwise.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / showInvite
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / summary
      Added value: +{
      +  "description": "Short summary; capped at 255 characters. Cross-app convention (per dev-sites/AGENTS.md); the Mongoose World schema still accepts up to 500 as a legacy inconsistency being migrated, but new authoring should keep summaries under 255.",
      +  "maxLength": 255,
      +  "type": "string"
      +}
    • addedInput schema / required
      Added value: +[
      +  "name"
      +]
  3. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false), so the bar is lower. The description adds genuine context beyond them: the created object is owned by the caller, the extra fields are passed through to imagine for validation and default assignment, and worlds deliberately carry no ruleset.

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?

Four short sentences that are front-loaded with the core action and requirement. Nothing is redundant, though the ruleset remark is architecturally useful rather than strictly invocation-critical.

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?

An output schema exists, so return values need not be explained, and the schema carries rich per-field docs. However, for a 15-parameter mutation the description omits practical behavior an agent would want — duplicate/link-collision handling, and confirmation that no confirmation step is needed given idempotentHint=false.

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 60%, a mid-range baseline. The description only calls out name (required), summary, description, and link, and says the rest 'pass through' — it adds little syntax or constraint detail beyond what the schema's per-field descriptions (public, showInvite, summary cap) already provide.

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?

States a specific verb+resource ('Create a new world owned by the calling user') and clarifies the world's place in the hierarchy versus adventures. It stops short of naming a sibling tool (e.g. imagine_create_adventure) as an explicit alternative, so it is clear but not fully disambiguated.

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?

Usage is only implied: 'Required: name' plus the note that a world hosts adventures underneath it hints at when to reach for this tool, but there is no explicit when-to-use or when-not-to-use guidance relative to imagine_create_adventure, imagine_create_world_page, or imagine_update_world.

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.

Resources