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

TableJSON 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
showInviteNo
descriptionNoFull world description. Markdown supported.
customDomainNoOptional custom domain pointing at the world's public site.
imageCarouselNo
isExampleWorldNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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"
      +]
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

The description adds useful behavior beyond annotations: creation is scoped to the calling user, optional fields pass through to imagine for validation/defaulting, and worlds have no independent ruleset. The annotations already convey mutation (readOnlyHint=false), non-idempotency, and non-destructiveness, so the description builds rather than repeats.

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 sentences with no filler, front-loaded with the core action and required field. The ruleset note adds value without bloating the description, although the list of pass-through fields is partial and slightly ambiguous.

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?

For a create operation with an output schema and annotations covering safety/idempotency, the description supplies essential context: ownership, required field, validation/defaulting behavior, and world-ruleset relationship. The remaining gaps are field-level details, most of which live in the input schema, but the 15-parameter surface keeps it from fully complete.

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 covers only 53% of parameters, and the description names just three optional fields (summary, description, link) beyond required name. The general 'pass through... validates and assigns defaults' clause is helpful but does not compensate for undocumented fields like image, favicon, keywords, and showInvite, leaving some parameter semantics to inference.

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 description opens with a specific verb ('Create'), a precise resource ('new world'), and ownership ('by the calling user'), clearly identifying the operation. It also calls out 'Required: name' and distinguishes worlds from adventures by noting the ruleset does not live on worlds.

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?

Purpose context is clear: use this tool to create a world for the calling user. It gives an implicit exclusion by stating that worlds do not carry their own ruleset and that rulesets live on adventures, which helps route ruleset-related work to adventure tools, though it does not name a specific alternative.

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