Skip to main content
Glama

look_at

Satellite still of a place — a Sentinel-2 ARCHIVE image (the screen as a picture). Pose = lat/lng OR entity_type+id (anchor); same pose family as look_from. Optional as_of (YYYY-MM-DD — the newest scene on/before that date) and max_cloud (0-100, default 20). AGENT KEYS ONLY (a browser session is refused BEFORE any charge). Metered on its own price line — quote it first with billing_quote("/api/v1/look.at") — and refunded in full if no image is delivered. RETURNS THE IMAGE (jpeg) as MCP image content PLUS structuredContent provenance from the scene's headers — read these and claim nothing stronger: observed_at is the SCENE's date, NEVER the request's; source_tier is the PROVIDER's, never the pin's; freshness is "archive", never "live"; plus cloud_cover, gsd, extent_km, attribution, cache, entity_cap_consumed (0), and the charge: price_charged_joules (the all-in price) + metering_attempt / metering_status — the settle truth for an IMAGE, which has no JSON body to carry a metering block (the X-Metering-Status header: completed = paid · settled_zero · settle_failed = delivered but UNPAID · released · cached_replay). A cloudy or MISSING scene returns available:false + freshness:"unavailable" and is REFUNDED IN FULL — an unavailable RESULT, not an error, and NEVER a fabricated image; that JSON carries top-level charged_joules (0 — refunded) and the metering block described below. ⚠ CHARGING: the meter RESERVES before the query runs and SETTLES after delivery for what was actually delivered (an empty result settles to 0; a partial traversal settles for the hops delivered; a 4xx releases the reservation). An abandoned or timed-out call still settles once the backend delivers. A replay is served free only for the SAME credential + SAME idempotency key + SAME request within 15 minutes — a different payer is a different payer. Every call through this relay carries a fresh key, so a retry here is always a new charge. Price with billing_quote first; verify any charge with the billing_attempts tool (own wallet: reserved vs settled, per attempt). WHAT YOU PAID: the JSON response carries a top-level charged_joules — the all-in PRICE of this call — and a metering block written AFTER the settle has run: {attempt_id, settlement, settled_joules, check}. metering.settlement is whether you PAID: settled · settled_zero (empty result, nothing moved) · settle_failed (delivered but UNPAID — the wallet is then locked until it clears; the next metered call 402s naming the attempt, the amount and what clears it) · released (4xx/5xx, nothing moved) · unknown. settled_joules is what actually left the wallet (0 unless settled). A cached replay carries no block.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
latNo
lngNo
as_ofNo
max_cloudNo
entity_typeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "title": "look_atDictOutput",
      +  "type": "object"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior5/5

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

No annotations, so description carries the full burden and does so richly: agent-keys-only restriction, billing/refund semantics, metering states (settled_zero, settle_failed, released), replay/idempotency rules, and the crucial 'don't claim stronger than provenance' guidance. This is exactly the behavioral context an agent needs.

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

Conciseness3/5

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

Front-loads the core purpose well, but then balloons into a very long metering/provenance essay with heavy formatting (caps, ⚠, multiple em-dash clauses). Much of it is valuable but the density and length hurt scannability.

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?

For a metered image tool with an output schema and no annotations, it covers return shape, provenance fields, error/refund behavior, and metering. Slightly over-complete on billing narrative relative to what a single call requires.

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 0%, so description must compensate: it explains as_of as 'newest scene on/before that date', max_cloud as 0-100 default 20, and the mutual-exclusion pose (lat/lng OR entity_type+id). The id/entity_type pair is somewhat implicit but recoverable from context.

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+resource ('Satellite still of a place — a Sentinel-2 ARCHIVE image') and distinguishes it from the sibling by naming `look_from` and describing the 'pose' it shares. The agent can tell what it returns (jpeg) and what it's not.

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?

Gives explicit conditions: pose can be lat/lng OR entity_type+id, and tells the agent to quote first with billing_quote. It doesn't spell out when to use this vs look_from or look_through beyond the pose note, so not a full 5.

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