Skip to main content
Glama

Find names

list_names
Read-only

Find names in a database by text match on their display name, when you know roughly what something is called but not where it sits. Read-only. Typical use: resolve an ambiguous label ("Sales" may be a measure in one set and a department in another) to the right nameId before querying or editing it.

Neighbours: describe_set walks a set you already know; describe_query resolves an exact name or a name expression and returns full attributes; list_deleted_names finds deleted names (this tool only sees current ones).

Pass startsWith for a prefix match or contains for a substring match (startsWith wins if both are given). Matching ignores case. With neither, names are returned unfiltered up to the cap. Example: {database: "Sales", startsWith: "Jan"}.

Returns an array of {name, nameId, sets} - sets are the names of the sets it belongs to. At most cardinalityCap names come back (default 500); with a prefix match the cap applies before the prefix filter, so narrow the text if the result looks short.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "database": "<database>"
    },
    "name": "list_names"
  }
}

Input Schema

NameRequiredDescriptionDefault
businessNoOptional. The business this call is for, by name, e.g. "azquo" - it then runs there whatever business the session is in. Worth giving on writes when you work in more than one business: a new MCP session starts in the login's own business. list_businesses shows the names.
containsNoMatch display names containing this text, ignoring case, e.g. "forecast" (ignored if startsWith set)
databaseYesDatabase name to search
startsWithNoMatch display names starting with this text, ignoring case, e.g. "Jan"
cardinalityCapNoMax names to return (default: 500; 0 or less for no limit)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / business
      Added value: +{
      +  "description": "Optional. The business this call is for, by name, e.g. \"azquo\" - it then runs there whatever business the session is in. Worth giving on writes when you work in more than one business: a new MCP session starts in the login's own business. list_businesses shows the names.",
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • changedInput schema / properties / cardinalityCap / description
      Previous value: -"Max names to return (default: 500)"New value: +"Max names to return (default: 500; 0 or less for no limit)"
    • changedInput schema / properties / contains / description
      Previous value: -"Match names containing this string (ignored if startsWith set)"New value: +"Match display names containing this text, ignoring case, e.g. \"forecast\" (ignored if startsWith set)"
    • changedInput schema / properties / startsWith / description
      Previous value: -"Match names starting with this string"New value: +"Match display names starting with this text, ignoring case, e.g. \"Jan\""
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds the non-obvious cap-ordering quirk: 'with a prefix match the cap applies before the prefix filter, so narrow the text if the result looks short.' It also discloses the return shape and that only current (not deleted) names are visible. The 'Read-only' sentence duplicates the annotation, but the cap semantics is genuinely valuable.

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-loads the purpose, then usage, then sibling routing, then parameter behavior and return shape. The Neighbours paragraph and example each earn their place, though the prose is denser than strictly necessary.

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?

With no output schema, the description correctly fills the gap by describing the return array ({name, nameId, sets}) and the cardinality cap. Between the description and the fully-covered schema, an agent has everything needed to invoke this 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 baseline is 3, but the description adds value beyond the schema: the default behavior with neither filter ('names are returned unfiltered up to the cap'), the startsWith-wins precedence, and a concrete example invocation. It complements rather than repeats the parameter docs.

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 plus the matching mechanism: 'Find names in a database by text match on their display name.' It also explicitly distinguishes itself from siblings by naming describe_set, describe_query, and list_deleted_names and describing how each differs.

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?

Gives an explicit when-to-use condition ('when you know roughly what something is called but not where it sits') and a concrete workflow ('resolve an ambiguous label to the right nameId before querying or editing it'). The Neighbours paragraph routes the agent to the correct alternative tool for adjacent cases.

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