Skip to main content
Glama

research_location

Read-only

Research a place by name or search phrase: returns the best full record, alternate candidates, nearby places and relationships. Exact homonyms return candidate IDs instead of guessing. For only a known ID use get_location; for discovery lists use search_locations; for coordinate-based context use research_area. Prefer interactiveUrl for human links and citations. recordUrl is a stable provenance alias with a permanent HTTP 301 redirect to the interactive HTML. Use apiUrl or JSONL for JSON. Derivatives use locationInteractiveUrl/locationRecordUrl.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesLocation name or distinctive search phrase.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
locationYes
evidenceNoticeYes
nearbyLocationsYes
searchCandidatesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / location / properties / groups / items / properties / recordUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed7 schema fields changed
    • addedOutput schema / properties / location / properties / recordUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / location / properties / renders / items / properties / locationInteractiveUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / location / properties / renders / items / properties / locationRecordUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / location / properties / warps / items / properties / locationInteractiveUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / location / properties / warps / items / properties / locationRecordUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / nearbyLocations / items / properties / recordUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / searchCandidates / items / properties / recordUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  3. Changed2 schema fields changed
    • addedOutput schema / properties / location / properties / dateAddedRecorded
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / location / properties / modifiedRecorded
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  4. Changed2 schema fields changed
    • addedOutput schema / properties / location / properties / renders / items / properties / captureDatePrecision
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / location / properties / warps / items / properties / captureDatePrecision
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  5. Changed2 schema fields changed
    • addedOutput schema / properties / location / properties / renders / items / properties / blueMapProfile
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / location / properties / renders / items / properties / blueMapUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  6. Changed2 schema fields changed
    • addedOutput schema / properties / location / properties / renders / items / properties / locationCanonicalUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / location / properties / warps / items / properties / locationCanonicalUrl
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  7. 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, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: homonym ambiguity yields candidate IDs instead of a guess, recordUrl carries a permanent 301 redirect, and server-controlled context is implied by openWorldHint=false. It stops short of covering rate limits, result caps, or failure modes, so 4 rather than 5.

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-loaded with purpose and returns, then routing, then URL semantics. Every sentence carries information, though the trailing url/interactiveUrl/JSONL/derivatives cluster is dense jargon that could be tightened.

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?

An output schema exists, yet the description still summarizes the return shape (record, candidates, nearby, relationships), and it closes the loop on routing, ambiguity handling, and URL variants. Nothing an agent needs to select or call this tool correctly is missing.

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 a single parameter at 100% schema coverage, the baseline is 3, but the description adds meaning the schema does not: the name accepts a 'distinctive search phrase' and exact homonyms are treated as ambiguous and return candidates. That clarifies matching semantics beyond the schema's plain description.

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 ('Research a place by name or search phrase') and immediately defines the return shape: best full record, alternate candidates, nearby places, relationships. It explicitly distinguishes itself from siblings get_location, search_locations, and research_area, so an agent can route without opening any schema.

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 explicit when-to-use-this vs when-to-use-alternatives: known ID goes to get_location, discovery lists go to search_locations, coordinate context goes to research_area. It also states the fallback behavior for ambiguous exact homonyms (candidate IDs rather than guessing), which is a usage rule not available anywhere else.

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.