Skip to main content
Glama
IPGeolocation

IPGeolocation MCP Server

Read Cached Result Page

get_cached_result
Read-only

Fetch one page of a previously returned IP geolocation result by cursor, with no credits or upstream API calls; join JSON fragments to rebuild the original structured result.

Instructions

Returns one page of a previously returned result using page.cursor or page.next_cursor. Costs 0 credits and never calls any upstream API, including on failure. The json_fragment strings concatenate in offset order into the complete original structuredContent JSON, including nested arrays and bulk item errors. The last page has no next_cursor. Cursors are scoped to the same API key and server process. Successful reads extend idle expiry by the configured cache TTL (five minutes by default); eviction or restart can remove a result. An unavailable cursor returns a local error and never starts another paid lookup.

Input Schema

NameRequiredDescriptionDefault
cursorYesOpaque cursor returned in page.cursor or page.next_cursor. Retrieval requires the same server process and API key and does not repeat the original lookup.

Output Schema

NameRequiredDescriptionDefault
pageNo
errorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.1

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: costs 0 credits, never calls any upstream API (even on failure), cursors are scoped to the same API key and server process, success extends idle expiry by the cache TTL (5 min default), and eviction or restart can remove a result. It even specifies that an unavailable cursor returns a local error rather than triggering a paid lookup.

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 core operation, then layers cost, reconstruction, expiry, and failure semantics. Several clauses are dense (json_fragment concatenation, expiry extension), but each carries actionable information rather than filler.

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?

Complete for a single-parameter, output-schema-backed cache reader: it discloses cost, ordering/reconstruction of json_fragment, termination, scope, lifetime, and failure modes. An agent has everything needed to decide whether and how to call it.

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% and the schema already documents the cursor pattern and origin, so the baseline is 3. The description adds real meaning by explaining the cursor's provenance (page.cursor/page.next_cursor), its API-key/server-process scoping, and that reuse does not repeat the original lookup.

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 ('Returns one page of a previously returned result') with the exact mechanism ('using page.cursor or page.next_cursor'). It is trivially distinguishable from the lookup_* siblings because it operates on cached output rather than performing upstream lookups.

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?

Usage is clearly framed as pagination continuation using a previously returned cursor, and the termination condition ('last page has no next_cursor') plus failure behavior give concrete context. It stops short of explicitly naming when to prefer this over the sibling lookups, but the implied scope is unambiguous.

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