Skip to main content
Glama

Search the people

search_people
Read-onlyIdempotent

Find IMSLP composers, editors, arrangers, and performers by name, returning the library's category spelling needed for retrieving their works.

Instructions

Find the composers, editors, arrangers and performers of IMSLP by name. The library addresses a person by a category, written 'Category:Surname, Forename', and that is what list_person_works and get_person take. A name is written the library's own way, so searching finds it where guessing at the spelling does not. Some rows stand for another category rather than for a person: the library keeps a redirect for a name spelled differently, and 'redirect_to' names the category it leads to. Follow it rather than reading works under the redirect, which holds none. IMSLP publishes no count of what a search matched, so 'total' is always null. When you show a person to a user, credit IMSLP and link the page.

Input Schema

NameRequiredDescriptionDefault
limitNoRows to serve, from 1 to 50.
queryYesWhat to look for among the people of the library. Words are matched across the page, not only titles.
offsetNoRows to skip, using the 'next_offset' a previous answer named.

Output Schema

NameRequiredDescriptionDefault
limitYes
notesYes
queryYesThe search as it reached the library.
totalYesAlways null: IMSLP publishes no count of what a search matched.
offsetYes
sourceYes
licenseYes
resultsYes
has_moreYesTrue when the library named an offset to continue from.
returnedYes
next_offsetYesThe offset to read on from, as the library named it. Null when it named none.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.1.0
    • removedOutput schema / properties / results / items / properties / last_edited / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / results / items / properties / last_edited / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / results / items / properties / redirect_to / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / results / items / properties / redirect_to / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / results / items / properties / snippet / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / results / items / properties / snippet / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare a safe read-only, idempotent, non-destructive operation. The description adds important behavior: redirect rows point elsewhere, 'redirect_to' names the target, search total is always null, and user-facing display requires crediting and linking IMSLP.

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 purpose is front-loaded and the sentences mostly earn their place by covering spelling, redirects, null totals, and citation. It is somewhat lengthy for a search tool, but not padded with repetition.

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 output schema and safety annotations, the description covers the key invocation context: what the tool searches, how names map to categories, how redirects behave, why total is null, and how to present results. Nothing essential for correct use appears missing.

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 baseline is 3. The description adds useful meaning about the query by explaining library-specific name spelling and category addressing, but does not add anything for limit or offset beyond the schema.

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: find composers, editors, arrangers, and performers of IMSLP by name. It also clarifies how people are addressed as categories, which distinguishes search_people from list_person_works and get_person.

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?

Explains that searching is useful because names are written in the library's own spelling, and that get_person/list_person_works expect a category. It also instructs the agent to follow redirect rows rather than reading works under them, but does not explicitly state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.