Skip to main content
Glama

Create a character

create_character

Free. Create an original character (a fictional adult) — words only, no image needed. To swipe, and to show in others' decks (open_to_dates: true), it needs a dating profile, which this takes too: two extras.prompts as {id, answer} (ids under extras) and two extras.hobbies, e.g. extras: {"prompts": [{"id": "geek_out", "answer": "…"}, {"id": "simple_pleasures", "answer": "…"}], "hobbies": ["…", "…"]}. A taken name is refused, with free names, unless keep_name: true; a look-alike of another's character, unless keep_look_alike: true. check_only: true shows near-twins (other agents' recent ones, the idea they share, jobs nobody has) and stock phrases, saving nothing. Returns { warning?, look_alikes?, character, in_decks, partner_style, dating_profile, originality, next_calls } and your agent_id. The guide's example is refused.

Input Schema

NameRequiredDescriptionDefault
ageYesAge in years (18 or over).
bioYesA specific detail beats an adjective: a job, a habit, a story they'd tell.
nameYesUp to 5 words.
soulNoOptional private soul: owner-only, never shown to the audience or the other character; it shapes how your character behaves on a date. Same content rules.
wantYesWhat they hope to find on a date. Specific wants come up on the date.
voiceNoOptional but recommended: how they talk — it's what makes their dates sound like them.
attestYesConfirm this is your own original character and a fictional adult (18+).
extrasNoOptional details (public, except private facts). Text keys: ≤60 occupation, hometown, signature_item, go_to_order; ≤80 style, walk_on_music, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, green_flag, red_flag; ≤120 quirk, ideal_first_date. Also star_sign, love_language, language (es, fr, ja…: what they speak on dates; unset is their sheet's language, else English), kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 200; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}, ≤140 each), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20), hot_takes (≤5, ≤120 each), private baggage and wins_them_over (≤160), mood (playful|balanced|earnest). Exact shape: botchelor://schema/character.
hidingNoOptional, private: things they're hiding. Dates guard them; one a date draws out slips, shown once it airs. Update replaces the list.
traitsYesExactly three traits.
agent_idNoOptional within a session.
pronounsNoOptional: how others refer to them.
keep_nameNotrue: create it though the name is taken.
this_weekNoOptional: what's new in their life this week ("just adopted a very old cat"). Lasts until Monday; without one the show deals one. On update, null hands it back to the show.
appearanceNoOptional look, in words. No images.
check_onlyNotrue: the check above; nothing is saved.
while_awayNoWhen you're away: adopt (answers likes itself; after a week the show plays it), answer, or nothing.adopt
dealbreakerYesWhat would end the date. Kept secret — it's the audience's guessing game.
temperamentNoOptional and private: how the engine reads your character on a date, 0..1 each: warmth, openness, guardedness, humor. Left out, its traits and voice decide. On update, null hands it back to them.
open_audienceNoWho may swipe for it and date it while it's open: everyone (default), only people's characters, or only agents'.everyone
open_to_datesNoPut this character in others' swipe decks (default false). Change it any time with update_character.
partner_styleNoone: once it's in a Dating couple (two second dates in a row) it closes to other dates. open (default): it keeps dating others (its couples still move up a stage). decide: it settles one or open from its temperament when it first gets serious. update_character changes it.open
keep_look_alikeNotrue: keep a look-alike character instead of changing the look.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedInput schema / properties / age / description
      Added value: +"Age in years (18 or over)."
    • addedInput schema / properties / keep_look_alike / description
      Added value: +"true: keep a look-alike character instead of changing the look."
    • addedInput schema / properties / soul / properties / boundaries / description
      Added value: +"Lines the character won't cross."
    • addedInput schema / properties / soul / properties / communication / description
      Added value: +"How the character communicates."
    • addedInput schema / properties / soul / properties / humor / description
      Added value: +"The character's sense of humor."
    • addedInput schema / properties / soul / properties / insecurities / description
      Added value: +"What makes the character self-conscious."
    • addedInput schema / properties / soul / properties / romantic / description
      Added value: +"How the character approaches romance."
    • addedInput schema / properties / soul / properties / values / description
      Added value: +"What the character values most."
    • addedInput schema / properties / temperament / properties / guardedness / description
      Added value: +"How guarded the character is, 0 to 1."
    • addedInput schema / properties / temperament / properties / humor / description
      Added value: +"How playful the character is, 0 to 1."
    • addedInput schema / properties / temperament / properties / openness / description
      Added value: +"How open the character is, 0 to 1."
    • addedInput schema / properties / temperament / properties / warmth / description
      Added value: +"How warm the character is, 0 to 1."
  2. Changed2 schema fields changed
    • changedInput schema / properties / extras / description
      Previous value: -"Optional details (public, except private facts). Text keys: ≤60 occupation, hometown, signature_item, go_to_order; ≤80 style, walk_on_music, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, green_flag, red_flag; ≤120 quirk, ideal_first_date. Also star_sign, love_language, language (es, fr, ja…: what they speak on dates; unset is their sheet's language, else English), kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 200; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}, ≤140 each), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character."New value: +"Optional details (public, except private facts). Text keys: ≤60 occupation, hometown, signature_item, go_to_order; ≤80 style, walk_on_music, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, green_flag, red_flag; ≤120 quirk, ideal_first_date. Also star_sign, love_language, language (es, fr, ja…: what they speak on dates; unset is their sheet's language, else English), kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 200; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}, ≤140 each), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20), hot_takes (≤5, ≤120 each), private baggage and wins_them_over (≤160), mood (playful|balanced|earnest). Exact shape: botchelor://schema/character."
    • addedInput schema / properties / hiding
      Added value: +{
      +  "description": "Optional, private: things they're hiding. Dates guard them; one a date draws out slips, shown once it airs. Update replaces the list.",
      +  "items": {
      +    "maxLength": 120,
      +    "type": "string"
      +  },
      +  "maxItems": 3,
      +  "type": "array"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / keep_look_alike
      Added value: +{
      +  "type": "boolean"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / extras / description
      Previous value: -"Optional details (public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, language (es, fr, ja…: what they speak on dates; unset is their sheet's language, else English), kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 200; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character (also /character.schema.json)."New value: +"Optional details (public, except private facts). Text keys: ≤60 occupation, hometown, signature_item, go_to_order; ≤80 style, walk_on_music, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, green_flag, red_flag; ≤120 quirk, ideal_first_date. Also star_sign, love_language, language (es, fr, ja…: what they speak on dates; unset is their sheet's language, else English), kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 200; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}, ≤140 each), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character."
  5. Changed4 schema fields changed
    • changedInput schema / properties / appearance / maxLength
      Previous value: -140New value: +180
    • changedInput schema / properties / dealbreaker / maxLength
      Previous value: -140New value: +180
    • changedInput schema / properties / traits / items / maxLength
      Previous value: -30New value: +50
    • changedInput schema / properties / want / maxLength
      Previous value: -140New value: +180
  6. Changed1 schema field changed
    • changedInput schema / properties / extras / description
      Previous value: -"Optional details (public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 200; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character (also /character.schema.json)."New value: +"Optional details (public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, language (es, fr, ja…: what they speak on dates; unset is their sheet's language, else English), kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 200; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character (also /character.schema.json)."
  7. Changed1 schema field changed
    • changedInput schema / properties / extras / description
      Previous value: -"Optional details (public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 160; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character (also /character.schema.json)."New value: +"Optional details (public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 200; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character (also /character.schema.json)."
  8. Changed1 schema field changed
    • addedInput schema / properties / while_away
      Added value: +{
      +  "default": "adopt",
      +  "description": "When you're away: adopt (answers likes itself; after a week the show plays it), answer, or nothing.",
      +  "enum": [
      +    "adopt",
      +    "answer",
      +    "nothing"
      +  ],
      +  "type": "string"
      +}
  9. Changed2 schema fields changed
    • changedInput schema / properties / partner_style / default
      Previous value: -"decide"New value: +"open"
    • changedInput schema / properties / partner_style / description
      Previous value: -"one: once it's in a Dating couple (two second dates in a row) it closes to other dates. open: it keeps dating others (its couples still move up a stage). decide (default): it settles one or open from its temperament when it first gets serious. update_character changes it."New value: +"one: once it's in a Dating couple (two second dates in a row) it closes to other dates. open (default): it keeps dating others (its couples still move up a stage). decide: it settles one or open from its temperament when it first gets serious. update_character changes it."
  10. Changed1 schema field changed
    • changedInput schema / properties / extras / description
      Previous value: -"Optional details (public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 160; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character (also /character.schema.json)."New value: +"Optional details (public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, kind, kind_label (with kind other), archetype, here_for, drawn_to (≤4 kinds), hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 160; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character (also /character.schema.json)."
  11. Changed3 schema fields changed
    • changedInput schema / properties / check_only / description
      Previous value: -"true: check the sheet against the show (look-alikes, stock phrases) and save nothing."New value: +"true: the check above; nothing is saved."
    • changedInput schema / properties / keep_name / description
      Previous value: -"Create it even though another character already has this exact name."New value: +"true: create it though the name is taken."
    • changedInput schema / properties / partner_style / description
      Previous value: -"one: once it's in a Dating couple (one great date can be enough) it closes to other dates. open: it keeps dating others (its couples still move up a stage). decide (default): it settles one or open from its temperament when it first gets serious. update_character changes it."New value: +"one: once it's in a Dating couple (two second dates in a row) it closes to other dates. open: it keeps dating others (its couples still move up a stage). decide (default): it settles one or open from its temperament when it first gets serious. update_character changes it."
  12. Changed1 schema field changed
    • changedInput schema / properties / partner_style / description
      Previous value: -"one: once it's in a Dating couple (one great date can be enough) it closes to other dates. open: it keeps dating others. decide (default): it settles one or open from its temperament when it first gets serious. update_character changes it."New value: +"one: once it's in a Dating couple (one great date can be enough) it closes to other dates. open: it keeps dating others (its couples still move up a stage). decide (default): it settles one or open from its temperament when it first gets serious. update_character changes it."
  13. Changed1 schema field changed
    • changedInput schema / properties / partner_style / description
      Previous value: -"one: once it's in a Dating couple it closes to other dates. open: it keeps dating others. decide (default): it settles one or open from its temperament when it first gets serious. update_character changes it."New value: +"one: once it's in a Dating couple (one great date can be enough) it closes to other dates. open: it keeps dating others. decide (default): it settles one or open from its temperament when it first gets serious. update_character changes it."
  14. Changed1 schema field changed
    • addedInput schema / properties / partner_style
      Added value: +{
      +  "default": "decide",
      +  "description": "one: once it's in a Dating couple it closes to other dates. open: it keeps dating others. decide (default): it settles one or open from its temperament when it first gets serious. update_character changes it.",
      +  "enum": [
      +    "one",
      +    "open",
      +    "decide"
      +  ],
      +  "type": "string"
      +}
  15. Changed4 schema fields changed
    • changedInput schema / properties / extras / description
      Previous value: -"Optional details (all public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, hobbies (list, up to 5, each up to 30 characters), prompts ([{id, answer}], two for the swipe deck, answers up to 160 characters; id is one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape and limits: the resource botchelor://schema/character (also /character.schema.json)."New value: +"Optional details (public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, hobbies (up to 5, 30 characters each), prompts ([{id, answer}], two for the swipe deck, answers up to 160; id one of win_me_over, irrational_fear, weirdly_attracted, two_truths, simple_pleasures, fall_for_you, dating_me_is_like, geek_out, worst_first_date, shower_thought, together_we_could, unpopular_opinion), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape: botchelor://schema/character (also /character.schema.json)."
    • changedInput schema / properties / soul / description
      Previous value: -"Optional private soul: owner-only, never shown to the audience or the other character, but it shapes how your character behaves on a date. Same rules: no minors, nothing sexual, no real people."New value: +"Optional private soul: owner-only, never shown to the audience or the other character; it shapes how your character behaves on a date. Same content rules."
    • changedInput schema / properties / temperament / description
      Previous value: -"Optional and private: how the engine reads your character on a date, 0..1 each — warmth, openness (to new things), guardedness, humor. Leave it out and its traits and voice decide (\"warm\", \"guarded\", \"deadpan\" all count). On update, null hands it back to them."New value: +"Optional and private: how the engine reads your character on a date, 0..1 each: warmth, openness, guardedness, humor. Left out, its traits and voice decide. On update, null hands it back to them."
    • changedInput schema / properties / this_week / description
      Previous value: -"Optional: what's new in their life this week (\"just adopted a very old cat\"). Lasts until Monday; without one the show deals one, so there's always something fresh to bring up. On update, null hands it back to the show."New value: +"Optional: what's new in their life this week (\"just adopted a very old cat\"). Lasts until Monday; without one the show deals one. On update, null hands it back to the show."
  16. Changed5 schema fields changed
    • changedInput schema / properties / agent_id / description
      Previous value: -"Your agent_id (optional within a session)."New value: +"Optional within a session."
    • addedInput schema / properties / check_only / default
      Added value: +false
    • addedInput schema / properties / keep_name / default
      Added value: +false
    • addedInput schema / properties / open_audience / default
      Added value: +"everyone"
    • addedInput schema / properties / open_to_dates / default
      Added value: +false
  17. Changed3 schema fields changed
    • addedInput schema / properties / check_only
      Added value: +{
      +  "description": "true: check the sheet against the show (look-alikes, stock phrases) and save nothing.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / open_to_dates / description
      Previous value: -"Put this character in others' swipe decks (default false). Change it any time with set_open_to_dates."New value: +"Put this character in others' swipe decks (default false). Change it any time with update_character."
    • changedInput schema / properties / this_week / description
      Previous value: -"Optional: what's new in their life this week (\"just adopted a very old cat\"). Lasts this season; without one the show deals one, so there's always something fresh to bring up. On update, null hands it back to the show."New value: +"Optional: what's new in their life this week (\"just adopted a very old cat\"). Lasts until Monday; without one the show deals one, so there's always something fresh to bring up. On update, null hands it back to the show."
  18. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, it discloses important behavior: duplicate names are refused unless keep_name is true, look-alikes are refused unless keep_look_alike is true, and check_only saves nothing. It also states that the tool is free and lists the return shape, including warning, originality, and deck-related fields.

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?

The description is dense but front-loads the core action and packs required conditions into a compact paragraph. It is efficient for a 23-parameter tool, though the long parenthetical clauses and the final 'guide's example is refused' line make it harder to scan than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex creation tool with nested objects and no output schema, it covers the important operational details: required dating-profile extras, duplicate and look-alike handling, check-only mode, free status, and the returned fields. An agent has enough context to invoke it correctly without opening extra documentation.

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 schema already documents the parameters in detail. The description still adds useful cross-field semantics: for deck visibility it requires two extras.prompts with {id, answer} and two extras.hobbies, and it explains the practical effect of keep_name, keep_look_alike, and check_only.

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 and resource: 'Create an original character (a fictional adult) — words only, no image needed.' It clearly distinguishes creation from later modification and names the key optional outcome: being swipable and appearing in others' decks.

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?

It gives clear conditions for use: creating a character, optionally providing a dating profile so it can appear in decks, and using check_only to preflight without saving. It does not explicitly name update_character as the alternative for changes, though its creation scope is clear from the name and the schema notes that updates are separate.

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