Skip to main content
Glama

Create a campaign

create_campaign

Make a new table you own. You are its GM unless you name somebody else. Seats for players are made unclaimed, and nobody is emailed: each seat comes back with its own join link to send however you like. Returns: The campaign, its join path, and each seat's own link.

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": {
      "name": "<name>"
    },
    "name": "create_campaign"
  }
}

Input Schema

NameRequiredDescriptionDefault
gmNoWho runs it. Defaults to you.
kindNoThe sort of game. Asked once, here.
nameYesThe campaign's name.
slugNoThe link it lives at (lowercase, hyphens). Made from the name when left out.
playersNoThe players' seats.
descriptionNoA line under the name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent behavior, so the bar is lower, and the description still adds real context: you are GM by default, seats start unclaimed, and no email is sent. The one gap is that it says nothing about slug uniqueness or what happens on a name/slug collision, which matters for a non-idempotent create.

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?

Three short sentences, front-loaded with the action, then the GM default, then the seat/invite behavior, with a return-value line at the end. Wording is efficient overall, though 'Make a new table you own' is slightly informal for a campaign-creation tool.

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 six-parameter create tool with a nested object and no output schema, the definition covers the default GM, seat creation semantics, notification policy, and return shape, which is most of what an agent needs. It stops short on slug collision/validation behavior and on how the campaign's initial content is seeded by 'kind'.

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 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema for the 'players' array: supplying players creates unclaimed seats and gets back a per-seat join link rather than sending invitations. It does not extend meaning for 'slug' or 'description', and the 'gm defaults to you' point repeats the schema.

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?

The description gives a specific verb and resource ('Make a new table you own'), and the ownership/GM framing makes the created entity unambiguous against siblings like list_campaigns or get_campaign. It doesn't explicitly name a sibling, and 'table' is used instead of 'campaign', which costs a bit of precision.

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?

Use is implied by the creation framing and by the seat/join-link behavior, but there is no explicit when-to-use guidance or comparison to alternatives such as add_seat/add_participant for extending an existing campaign. An agent can infer the context but must do so itself.

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.