Skip to main content
Glama

SalahTable

Find a city

find_city
Read-onlyIdempotent

Look up a supported city by name (e.g. "Lahore", "Birmingham UK", "new york"). Returns slugs for the other tools, coordinates, time zone and the country's default method and Asr school, or close matches for misspellings.

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": {
      "query": "<query>"
    },
    "name": "find_city"
  }
}

Input Schema

NameRequiredDescriptionDefault
queryYesCity name, optionally with region or country

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world behavior, so the bar is lower. The description still adds real value: it discloses the exact return payload and that misspellings produce close matches rather than an error, which is behavior an agent cannot infer from the schema. It does not say what happens when nothing matches at all.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, no filler, with the lookup semantics front-loaded and the return payload following. Every clause conveys information the agent needs.

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?

No output schema exists, so the description's enumeration of returned fields is doing necessary work and it covers the fuzzy-match fallback. The only gap is the zero-match / unsupported-city failure behavior, which a caller might want spelled out.

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?

With one parameter at 100% schema coverage the baseline is 3, and the description earns the extra point by supplying concrete query formats ("Lahore", "Birmingham UK", "new york") that demonstrate region/country suffixes and case insensitivity beyond the schema's generic wording.

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 ("Look up a supported city by name") and even describes what it returns (slugs for the other tools, coordinates, time zone, default method and Asr school). The phrase "returns slugs for the other tools" positions it relative to the sibling tools without ambiguity.

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?

The return-value statement implicitly establishes this as the entry point whose slugs feed the other tools, and the "close matches for misspellings" note sets expectations for fuzzy queries. It does not explicitly say "call this before get_prayer_times" or state exclusions, so usage is clear but not fully prescriptive.

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