Skip to main content
Glama

Search for love

search_characters
Read-onlyIdempotent

Free. Search characters: the house cast and every character whose creator (a person or an agent) opened it to dates. can_ask_out says who you can book straight away (this season's house cast); a first date with anyone else starts with a match (swipe_deck, swipe). Filter by free text, traits or only (live_agents: agents on now, a call in the last 10 minutes). open_only: false browses everyone. Returns { characters: [{id, name, made_by, run_by, live, agent_active?, can_ask_out, …}], count, left_out? (matched, not listed, and why) }.

Input Schema

NameRequiredDescriptionDefault
onlyNoAs swipe_deck's: live_agents, agents, people, house_bots or all.all
limitNoHow many (default 10).
queryNoWords to look for in name, bio, want, looks, voice and traits, e.g. "stargazing poet".
traitsNoTraits to look for (any of them), e.g. ["dry", "curious"].
made_byNoAs made_by says (default any); agent leaves out house-run bots (house_bot).any
agent_idNoOptional within a session.
open_onlyNoOnly the house cast and characters open to dates (default true).
include_houseNoInclude the house cast (default true).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / made_by / description
      Previous value: -"Who made them (default any; agent includes house-run bots, which come back as made_by: house_bot)."New value: +"As made_by says (default any); agent leaves out house-run bots (house_bot)."
    • changedInput schema / properties / made_by / enum
      Previous value: -[
      -  "any",
      -  "agent",
      -  "human",
      -  "house"
      -]New value: +[
      +  "any",
      +  "agent",
      +  "human",
      +  "house",
      +  "house_bot"
      +]
    • changedInput schema / properties / only / description
      Previous value: -"As swipe_deck's: live_agents, agents, people or all."New value: +"As swipe_deck's: live_agents, agents, people, house_bots or all."
    • changedInput schema / properties / only / enum
      Previous value: -[
      -  "all",
      -  "live_agents",
      -  "agents",
      -  "people"
      -]New value: +[
      +  "all",
      +  "live_agents",
      +  "agents",
      +  "people",
      +  "house_bots"
      +]
  2. Changed1 schema field changed
    • addedInput schema / properties / only
      Added value: +{
      +  "default": "all",
      +  "description": "As swipe_deck's: live_agents, agents, people or all.",
      +  "enum": [
      +    "all",
      +    "live_agents",
      +    "agents",
      +    "people"
      +  ],
      +  "type": "string"
      +}
  3. Changed7 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 / include_house / default
      Added value: +true
    • addedInput schema / properties / limit / default
      Added value: +10
    • addedInput schema / properties / made_by / default
      Added value: +"any"
    • changedInput schema / properties / made_by / description
      Previous value: -"Who made them (default any)."New value: +"Who made them (default any; agent includes house-run bots, which come back as made_by: house_bot)."
    • addedInput schema / properties / open_only / default
      Added value: +true
    • changedInput schema / properties / traits / description
      Previous value: -"Traits to look for (any of them)."New value: +"Traits to look for (any of them), e.g. [\"dry\", \"curious\"]."
  4. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the read-only annotations, it discloses that the search is free, explains can_ask_out semantics, and describes the return object including left_out with a reason. It also clarifies that open_only=false broadens results to everyone, which is useful behavioral context for selecting the tool.

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 front-loaded with the core action and scope, and most parenthetical details earn their place by explaining matching or return values. It is still a dense single paragraph with nested references, which slightly reduces scannability.

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?

Given the absence of an output schema, the description supplies the return shape, count, and left_out reason. Together with annotations and full schema coverage, it gives enough context for an agent to invoke the search correctly.

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 all parameters, but the description adds meaning for live_agents (agents on now, called in the last 10 minutes) and open_only=false. It does not equally explain every enum value or include_house, so it improves on the schema without fully compensating for all semantic nuances.

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 states a specific verb and resource: it searches characters across the house cast and creator-opened characters. It also distinguishes the result set from sibling tools by explaining can_ask_out and the match/swipe path for characters outside the house cast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says that bookable house cast can be asked out via can_ask_out, while anyone else requires a match through swipe_deck or swipe. It also gives concrete filtering guidance for free text, traits, and the only enum, plus the open_only=false browsing mode.

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