Skip to main content
Glama

Start a Chorus book, and get the one link to forward.

start_book

Starts a book of voice, video and written messages and returns its handle and the single link the organiser sends to everyone taking part. The book is for one person or a couple, or it goes by a title when it is for nobody in particular: a family’s recipes, a class’s year, a team’s goodbye. Gathering is free, and the people recording need no app and no account. It needs organiser_email, the address Chorus lets the organiser know about responses at, unless they are signed in through the connector. The book is made at once and the link comes back. Chorus emails the link to that address and emails it each time somebody responds, and the book moves into their account when they sign in with it or open keep_link.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "start_book"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeNoOptional. The six digit code emailed to the organiser, which puts the book straight into their account. Without it the book is made at once.
stepsNoWhat each person is given, in order, one screen each, when the book needs more than questions. Each step is { kind, text }: words (a question answered by voice, video or writing, text required), song (they search for it or paste a Spotify, YouTube or Apple Music link; it prints as the page's heading with a code that plays it), photo, voice (a voice note that prints as a code on their page), date, choice (with choices, two to eight), link (prints as a code), name (who it is from; first when left out). text is the screen's question, with {name} for the person; without it, a song, photo, voice or name screen carries Chorus's own wording. optional: false makes a photo, voice, date, choice or link one they cannot skip. Each person's answers make one page. Steps outrank questions. Example for a song book: [{kind:'song'},{kind:'words',text:'Why does it remind you of {name}?'},{kind:'photo'},{kind:'voice'},{kind:'name'}].
titleNoThe book’s title, in the person’s words, for example The Kelly family recipes. One line, up to 40 characters.
occasionNoA big birthday, A wedding, A new baby, As they grow, In memory, or Something else. Plain words are matched to one of those.
closes_onNoOptional. The day collecting stops, as 2026-11-14. Without it the book stays open until it is closed, and a date can be set at any time after. A printed copy wanted for a day needs collecting to stop three weeks before it.
expectingNoWho is expected to record, by name or role, without email addresses. The book’s status names the ones still out.
lead_withNoWhich of those is the big button on a contributor’s phone.
questionsNoThe questions everybody answers, up to 12, each one line of up to 200 characters that a person can answer out loud in a minute or two. In a book with subject_name, {name} in a question becomes that name. When this is left out, a book with subject_name gets the set for the occasion and a book with only a title gets three open questions.
answer_withNoAny of voice, video and written. Voice and written when not said.
subject_nameNoWho the book is for, when it is for one person or a couple, as the organiser says it, for example Mum. A book needs subject_name, title or both, and a book for one person needs only subject_name.
organiser_emailNoWhere Chorus lets the organiser know about responses. Needed unless they are signed in through the connector. The link is emailed there too.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / code / description
      Previous value: -"The six digit code emailed to the organiser. Without it, Chorus emails one."New value: +"Optional. The six digit code emailed to the organiser, which puts the book straight into their account. Without it the book is made at once."
    • changedInput schema / properties / organiser_email / description
      Previous value: -"The organiser’s email address, for a book made in their Chorus account, which they open with a six digit code. Without it the book starts with no sign-in."New value: +"Where Chorus lets the organiser know about responses. Needed unless they are signed in through the connector. The link is emailed there too."
  2. Changed1 schema field changed
    • changedInput schema / properties / closes_on / description
      Previous value: -"The day collecting stops, as 2026-11-14. A printed copy wanted for a day needs collecting to stop three weeks before it."New value: +"Optional. The day collecting stops, as 2026-11-14. Without it the book stays open until it is closed, and a date can be set at any time after. A printed copy wanted for a day needs collecting to stop three weeks before it."
  3. Changed8 schema fields changed
    • changedInput schema / properties / closes_on / description
      Previous value: -"The day collecting stops, as 2026-11-14. Allow three weeks before the day if a printed copy is wanted."New value: +"The day collecting stops, as 2026-11-14. A printed copy wanted for a day needs collecting to stop three weeks before it."
    • changedInput schema / properties / code / description
      Previous value: -"The six digit code emailed to the organiser. Leave it out on the first call to have one sent."New value: +"The six digit code emailed to the organiser. Without it, Chorus emails one."
    • changedInput schema / properties / expecting / description
      Previous value: -"Who is expected to record, by name or role, so book_status can say who is still out. Never email addresses."New value: +"Who is expected to record, by name or role, without email addresses. The book’s status names the ones still out."
    • changedInput schema / properties / organiser_email / description
      Previous value: -"Leave this out to start the book with no sign-in. Give it only when the organiser wants the book in their Chorus account now; they then get in with a six digit code."New value: +"The organiser’s email address, for a book made in their Chorus account, which they open with a six digit code. Without it the book starts with no sign-in."
    • changedInput schema / properties / questions / description
      Previous value: -"The questions everybody is asked, up to 12, written from what the person told you, each one line of up to 200 characters that a person can answer out loud in a minute or two. In a book with subject_name, {name} in a question becomes that name. When this is left out, a book with subject_name gets the set for the occasion and a book with only a title gets three open questions."New value: +"The questions everybody answers, up to 12, each one line of up to 200 characters that a person can answer out loud in a minute or two. In a book with subject_name, {name} in a question becomes that name. When this is left out, a book with subject_name gets the set for the occasion and a book with only a title gets three open questions."
    • changedInput schema / properties / steps / description
      Previous value: -"What each person is asked, in order, one screen each, when the book needs more than questions. Each step is { kind, text }: words (a question answered by voice, video or writing, text required), song (they search for it or paste a Spotify, YouTube or Apple Music link; it prints as the page's heading with a code that plays it), photo, voice (a voice note that prints as a code on their page), date, choice (with choices, two to eight), link (prints as a code), name (who it is from; asked first when left out). text is what the screen asks, with {name} for the person; leave it out for a song, photo, voice or name and Chorus asks it. optional: false makes a photo, voice, date, choice or link one they cannot skip. Each person's answers make one page. Steps outrank questions. Example for a song book: [{kind:'song'},{kind:'words',text:'Why does it remind you of {name}?'},{kind:'photo'},{kind:'voice'},{kind:'name'}]."New value: +"What each person is given, in order, one screen each, when the book needs more than questions. Each step is { kind, text }: words (a question answered by voice, video or writing, text required), song (they search for it or paste a Spotify, YouTube or Apple Music link; it prints as the page's heading with a code that plays it), photo, voice (a voice note that prints as a code on their page), date, choice (with choices, two to eight), link (prints as a code), name (who it is from; first when left out). text is the screen's question, with {name} for the person; without it, a song, photo, voice or name screen carries Chorus's own wording. optional: false makes a photo, voice, date, choice or link one they cannot skip. Each person's answers make one page. Steps outrank questions. Example for a song book: [{kind:'song'},{kind:'words',text:'Why does it remind you of {name}?'},{kind:'photo'},{kind:'voice'},{kind:'name'}]."
    • changedInput schema / properties / subject_name / description
      Previous value: -"Who the book is for, when it is for one person or a couple, as the organiser says it, for example Mum. Give subject_name, title or both. A book for one person needs only subject_name."New value: +"Who the book is for, when it is for one person or a couple, as the organiser says it, for example Mum. A book needs subject_name, title or both, and a book for one person needs only subject_name."
    • changedInput schema / properties / title / description
      Previous value: -"What the book is called, in the person’s words, for example The Kelly family recipes. One line, up to 40 characters."New value: +"The book’s title, in the person’s words, for example The Kelly family recipes. One line, up to 40 characters."
  4. Changed1 schema field changed
    • addedInput schema / properties / steps
      Added value: +{
      +  "description": "What each person is asked, in order, one screen each, when the book needs more than questions. Each step is { kind, text }: words (a question answered by voice, video or writing, text required), song (they search for it or paste a Spotify, YouTube or Apple Music link; it prints as the page's heading with a code that plays it), photo, voice (a voice note that prints as a code on their page), date, choice (with choices, two to eight), link (prints as a code), name (who it is from; asked first when left out). text is what the screen asks, with {name} for the person; leave it out for a song, photo, voice or name and Chorus asks it. optional: false makes a photo, voice, date, choice or link one they cannot skip. Each person's answers make one page. Steps outrank questions. Example for a song book: [{kind:'song'},{kind:'words',text:'Why does it remind you of {name}?'},{kind:'photo'},{kind:'voice'},{kind:'name'}].",
      +  "items": {
      +    "properties": {
      +      "choices": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "kind": {
      +        "enum": [
      +          "words",
      +          "song",
      +          "photo",
      +          "voice",
      +          "date",
      +          "choice",
      +          "link",
      +          "name"
      +        ],
      +        "type": "string"
      +      },
      +      "optional": {
      +        "type": "boolean"
      +      },
      +      "text": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  5. Changed1 schema field changed
    • removedInput schema / properties / steps
      Removed value: -{
      -  "description": "What each person is asked, in order, one screen each, when the book needs more than questions. Each step is { kind, text }: words (a question answered by voice, video or writing, text required), song (they search for it or paste a Spotify, YouTube or Apple Music link; it prints as the page's heading with a code that plays it), photo, voice (a voice note that prints as a code on their page), date, choice (with choices, two to eight), link (prints as a code), name (who it is from; asked first when left out). text is what the screen asks, with {name} for the person; leave it out for a song, photo, voice or name and Chorus asks it. optional: false makes a photo, voice, date, choice or link one they cannot skip. Each person's answers make one page. Steps outrank questions. Example for a song book: [{kind:'song'},{kind:'words',text:'Why does it remind you of {name}?'},{kind:'photo'},{kind:'voice'},{kind:'name'}].",
      -  "items": {
      -    "properties": {
      -      "choices": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "kind": {
      -        "enum": [
      -          "words",
      -          "song",
      -          "photo",
      -          "voice",
      -          "date",
      -          "choice",
      -          "link",
      -          "name"
      -        ],
      -        "type": "string"
      -      },
      -      "optional": {
      -        "type": "boolean"
      -      },
      -      "text": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
  6. Changed1 schema field changed
    • addedInput schema / properties / steps
      Added value: +{
      +  "description": "What each person is asked, in order, one screen each, when the book needs more than questions. Each step is { kind, text }: words (a question answered by voice, video or writing, text required), song (they search for it or paste a Spotify, YouTube or Apple Music link; it prints as the page's heading with a code that plays it), photo, voice (a voice note that prints as a code on their page), date, choice (with choices, two to eight), link (prints as a code), name (who it is from; asked first when left out). text is what the screen asks, with {name} for the person; leave it out for a song, photo, voice or name and Chorus asks it. optional: false makes a photo, voice, date, choice or link one they cannot skip. Each person's answers make one page. Steps outrank questions. Example for a song book: [{kind:'song'},{kind:'words',text:'Why does it remind you of {name}?'},{kind:'photo'},{kind:'voice'},{kind:'name'}].",
      +  "items": {
      +    "properties": {
      +      "choices": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "kind": {
      +        "enum": [
      +          "words",
      +          "song",
      +          "photo",
      +          "voice",
      +          "date",
      +          "choice",
      +          "link",
      +          "name"
      +        ],
      +        "type": "string"
      +      },
      +      "optional": {
      +        "type": "boolean"
      +      },
      +      "text": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  7. Changed2 schema fields changed
    • changedInput schema / properties / organiser_email / description
      Previous value: -"The organiser’s email. The book belongs to this address and they get in with a six digit code."New value: +"Leave this out to start the book with no sign-in. Give it only when the organiser wants the book in their Chorus account now; they then get in with a six digit code."
    • removedInput schema / required
      Removed value: -[
      -  "organiser_email"
      -]
  8. Changed6 schema fields changed
    • changedInput schema / properties / code / description
      Previous value: -"The eight digit code emailed to the organiser. Leave it out on the first call to have one sent."New value: +"The six digit code emailed to the organiser. Leave it out on the first call to have one sent."
    • changedInput schema / properties / organiser_email / description
      Previous value: -"The organiser’s email. The book belongs to this address and they get in with an eight digit code."New value: +"The organiser’s email. The book belongs to this address and they get in with a six digit code."
    • changedInput schema / properties / questions / description
      Previous value: -"Questions to ask, if the organiser wants their own. The set for the occasion is used when this is left out."New value: +"The questions everybody is asked, up to 12, written from what the person told you, each one line of up to 200 characters that a person can answer out loud in a minute or two. In a book with subject_name, {name} in a question becomes that name. When this is left out, a book with subject_name gets the set for the occasion and a book with only a title gets three open questions."
    • changedInput schema / properties / subject_name / description
      Previous value: -"Who the book is for, as the organiser says it, for example Mum."New value: +"Who the book is for, when it is for one person or a couple, as the organiser says it, for example Mum. Give subject_name, title or both. A book for one person needs only subject_name."
    • addedInput schema / properties / title
      Added value: +{
      +  "description": "What the book is called, in the person’s words, for example The Kelly family recipes. One line, up to 40 characters.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "subject_name",
      -  "organiser_email"
      -]New value: +[
      +  "organiser_email"
      +]
  9. Changed2 schema fields changed
    • changedInput schema / properties / code / description
      Previous value: -"The six digit code emailed to the organiser. Leave it out on the first call to have one sent."New value: +"The eight digit code emailed to the organiser. Leave it out on the first call to have one sent."
    • changedInput schema / properties / organiser_email / description
      Previous value: -"The organiser’s email. The book belongs to this address and they get in with a six digit code."New value: +"The organiser’s email. The book belongs to this address and they get in with an eight digit code."
  10. Changed1 schema field changed
    • addedInput schema / properties / code
      Added value: +{
      +  "description": "The six digit code emailed to the organiser. Leave it out on the first call to have one sent.",
      +  "type": "string"
      +}
  11. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only say not read-only, not idempotent, not destructive. The description goes well beyond: gathering is free, contributors need no app or account, the book is created immediately, the link is emailed to the organiser and again on every response, and the book transfers into their account on sign-in or by opening keep_link. That is exactly the operational context an agent needs 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?

Front-loaded with the action and the return values, then prerequisites and follow-on behavior. There is mild redundancy between 'returns its handle and the single link' and 'the link comes back,' and the trailing email paragraph is dense, but nothing is wasted.

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?

Covers creation flow, prerequisites, and return values for a parameter-heavy tool with no output schema. It does not say what the returned handle is used for (e.g., feeding book_status or change_the_book later), which is a meaningful gap for an agent chaining calls, but the core is 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 description coverage is 100%, so the schema already documents all 11 parameters in detail, including code, steps, subject_name and questions. The description only restates the organiser_email semantics and the subject_name/title constraint, adding little beyond the structured fields; baseline 3 applies.

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?

Uses a specific verb and resource ('Starts a book of voice, video and written messages') and states the two return values (handle and the single forwardable link). Among siblings like change_the_book, find_my_book, preview_pages, this is unambiguously the creation tool.

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 clear context for when this is the right call: for one person, a couple, or nobody in particular via a title, and notes the organiser_email requirement 'unless they are signed in through the connector.' It never names an explicit alternative for modifying an existing book (change_the_book), so it falls short of full when-not guidance.

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