Skip to main content
Glama

Create Interaction

webinarstack.webinars.interactions_create

Create a new poll or CTA offer on a tenant-owned webinar. Call interactions_find_matching BEFORE creating to avoid duplicate interactions at the same timeline position that would confuse live attendees seeing two competing polls or CTAs. Accepts a flat input with type discriminator (cta|poll) + base fields + type-specific optional fields. The service layer enforces type-discriminated validation — a cta payload carrying poll-only fields (e.g. options) returns VALIDATION_ERROR; a cross-tenant webinarId returns NOT_FOUND.

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": {
      "webinarId": "<webinarId>",
      "type": "<type>",
      "appearsAtSeconds": "<appearsAtSeconds>",
      "endsAtSeconds": "<endsAtSeconds>",
      "headline": "<headline>"
    },
    "name": "webinarstack.webinars.interactions_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
typeYes
optionsNo
headlineYes
iconNameNo
imageUrlNo
timelineNo
buttonUrlNo
webinarIdYes
choiceModeNosingle
buttonColorNo
buttonLabelNo
descriptionNo
optionSpecsNo
internalNameNo
countdownModeNo
endsAtSecondsYes
buttonTextColorNo
appearsAtSecondsYes
countdownSecondsNo
aggregateMinVotesNo
resultsDisplayModeNosession
customAggregatePercentagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare mutation ('readOnlyHint: false'), non-idempotence, closed-world, and non-destructive, so the description adds real signal: it discloses type-discriminated validation and the specific error outcomes (VALIDATION_ERROR for a cta payload carrying options, NOT_FOUND for a cross-tenant webinarId). It does not describe what the successful response contains, but the error and tenancy behavior is beyond what annotations provide.

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 action, then the dedupe prerequisite, then payload shape, then error semantics, in roughly four dense sentences with no filler. The nested nature of the type-discrimination explanation is slightly compressed but still readable.

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?

For a 22-parameter mutation with no output schema and no parameter descriptions, the definition covers the workflow and error behavior well but omits per-field guidance and what is returned on success, which matters more here because there is no output schema to fall back on. It is adequate to invoke correctly for a simple poll or CTA but leaves an agent guessing for the richer fields.

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 description coverage is 0% across 22 parameters, so the description carries the burden; it does explain the central structural rule (flat input with type discriminator plus base fields plus type-specific optional fields) and gives a concrete example that options is poll-only. However, the majority of parameters, including appearsAtSeconds/endsAtSeconds timing, timeline, countdownMode, resultsDisplayMode, aggregateMinVotes, optionSpecs, and internalName, receive no clarification, so much field-level meaning is left to the JSON Schema constraints alone.

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 and resource ('Create a new poll or CTA offer on a tenant-owned webinar'), and names the two content subtypes it handles, which immediately separates it from interactions_update, interactions_delete, and interactions_list. An agent knows exactly what this tool produces without inspecting the 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 prerequisite workflow: call interactions_find_matching BEFORE creating, with the concrete failure mode (duplicate interactions at the same timeline position confusing live attendees). It stops short of stating exclusions, such as when to prefer interactions_update instead of creating a new one, but the context for use is clear.

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