Skip to main content
Glama

Start a Teasa story

start_story

Start a saved Teasa conversation for a story selected by the user. Explicitly supply the selected translation language; this controls the opening and every model reply even when the original story has another source language. No browser authorization or signup required: without OAuth or guestSession, creates a free guest and returns guestSession. Retain it privately; pass it on ALL subsequent tools, retries and pages. Guest access lasts 24 hours. Reuse requestId with guestSession for retries; if cards.nextPage is present, repeat start_story with the same requestId, language and that page. Returns the opening, branchId and branchVersion. No inference is charged for the opening.

Input Schema

NameRequiredDescriptionDefault
pageYes
outputYesimage
languageYesRequired reading and reply language: en=English, ja=Japanese, ko=Korean, zh=Chinese, es=Spanish. Use the user-selected translation or their requested conversation language, not the story source language. Pass the same language from search_stories to start_story, including retries and pages.
requestIdYes
guestSessionNoRestricted guest credential returned by start_story. Retain privately and pass on every later call, retry and page. Never put it in a URL.
publicationIdYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "branchId": {
      +          "type": "string"
      +        },
      +        "branchVersion": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "cards": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "nextPage": {
      +              "maximum": 9007199254740991,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "page": {
      +              "maximum": 9007199254740991,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "totalPages": {
      +              "maximum": 9007199254740991,
      +              "minimum": 0,
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "page",
      +            "totalPages"
      +          ],
      +          "type": "object"
      +        },
      +        "continueUrl": {
      +          "type": "string"
      +        },
      +        "guestExpiresAt": {
      +          "type": "string"
      +        },
      +        "guestSession": {
      +          "type": "string"
      +        },
      +        "language": {
      +          "type": "string"
      +        },
      +        "presentation": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "cast": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "aliases": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "assetId": {
      +                    "type": "string"
      +                  },
      +                  "id": {
      +                    "type": "string"
      +                  },
      +                  "imageUrl": {
      +                    "type": "string"
      +                  },
      +                  "name": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "id",
      +                  "name"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "language": {
      +              "type": "string"
      +            },
      +            "segments": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "kind": {
      +                    "enum": [
      +                      "narration",
      +                      "dialogue",
      +                      "action",
      +                      "player_presentation"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "speakerId": {
      +                    "type": "string"
      +                  },
      +                  "speakerIds": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "speakerLabel": {
      +                    "type": "string"
      +                  },
      +                  "text": {
      +                    "type": "string"
      +                  },
      +                  "translationPending": {
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "speakerId",
      +                  "kind",
      +                  "text"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "text": {
      +              "type": "string"
      +            },
      +            "title": {
      +              "type": "string"
      +            },
      +            "version": {
      +              "const": 1,
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "version",
      +            "title",
      +            "language",
      +            "text",
      +            "segments",
      +            "cast"
      +          ],
      +          "type": "object"
      +        },
      +        "rendering": {
      +          "type": "string"
      +        },
      +        "status": {
      +          "const": "ready",
      +          "type": "string"
      +        },
      +        "threadId": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "status",
      +        "language",
      +        "threadId",
      +        "branchId",
      +        "branchVersion",
      +        "continueUrl"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "guestExpiresAt": {
      +          "type": "string"
      +        },
      +        "guestSession": {
      +          "type": "string"
      +        },
      +        "message": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message",
      +        "guestSession",
      +        "guestExpiresAt"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only state it is a non-read-only, non-destructive, non-idempotent closed-world call; the description adds the materially important behavior: guest creation without OAuth, a 24-hour guest lifetime, credential-handling rules (private, never in a URL), retry/idempotency-key semantics via requestId, pagination behavior, and that the opening is not billed. This is exactly the context annotations cannot convey.

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?

Dense single paragraph, front-loaded with purpose, then language rules, auth/session handling, retries and pagination. Every sentence carries information, though it reads as a run-on sequence rather than clearly grouped steps.

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 tool with guest-auth, idempotency and pagination complexity, the description covers nearly everything an agent needs, and an output schema exists so the return shape need not be re-explained. The main completeness gap is the undocumented `output` parameter, which changes what the caller receives.

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 33%, so the description must compensate. It does well for language, guestSession, requestId and page (via cards.nextPage), but the `output` enum (image/text/app) is never explained despite controlling the response format, and publicationId's provenance is only implied. Partial compensation warrants a 3.

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 opens with a specific verb and resource ('Start a saved Teasa conversation for a story selected by the user'), which clearly separates it from send_message, get_turn, end_guest_session and search_stories. It implies a prior story selection but never names the sibling that produces publicationId, so sibling differentiation is only partial.

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?

Concrete operating guidance is given: supply the user-selected translation language (not the source language), no signup needed, retain and reuse guestSession, retry with the same requestId, and repeat start_story with the same requestId/language when cards.nextPage exists. Missing an explicit statement of prerequisites or when-not-to-use/alternatives, so it stops short of a 5.

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