Skip to main content
Glama

google-maps.place_photos

Get photos for a Google Maps place.

Provide place_id from search results. The identifier also accepts the business identifier form (0x...:0x...). Optional cursor, region, and language are supported. Pass cursor from a previous cursor_next to fetch the next page.

Returns place metadata and a photos array. Each photo has photo_url and description when available. cursor_next appears only when a pagination cursor is available. Additional upstream fields may appear.

Cost = 3 tokens.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor from cursor_next on a previous response.
regionNoTwo-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data.
languageNoLanguage code for results (for example en).
place_idYesGoogle Maps place identifier (for example ChIJk_grnPDq9EcRE7gOH9gAPZA). Also accepts the business identifier form (for example 0x47f4eb87e91f866d:0x9629fabb993eb66).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
placeNoPlace metadata for the photo listing.
photosNoPlace photos.
cursor_nextNoCursor for the next page when more results are available.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changed
    • changedOutput schema / $defs / GoogleMapsPlacePhotosResponsePlace / properties / rating / anyOf
      Previous value: -[
      -  {},
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / $defs / GoogleMapsPlacePhotosResponsePlaceLocation / properties / latitude / anyOf
      Previous value: -[
      -  {},
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / $defs / GoogleMapsPlacePhotosResponsePlaceLocation / properties / longitude / anyOf
      Previous value: -[
      -  {},
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It details the return structure (place metadata and photos array), photo fields (photo_url, description), pagination behavior (cursor_next appears when available), and warns that additional upstream fields may appear. It also states the token cost, providing complete transparency for a read operation.

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?

The description is compact (four sentences plus cost line) and front-loaded with the core purpose. Each sentence contributes meaningful information: input source, optional parameters, pagination, output shape, and cost. There is no redundancy or 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?

For a tool with 4 parameters and an existing output schema, the description covers all necessary context: required input origin, optional parameters, pagination behavior, expected output structure, and cost. The presence of an output schema means detailed field-level return descriptions are unnecessary, and the description is therefore complete for its complexity.

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?

The input schema already covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds value by explicitly instructing to obtain place_id from search results and explaining how to use the cursor from a previous cursor_next for pagination, which goes beyond the schema's generic descriptions.

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?

The description opens with 'Get photos for a Google Maps place,' which clearly identifies the action (retrieving photos) and the resource (a Google Maps place). This distinguishes it from sibling tools like place_details, place_reviews, and search, making its purpose unambiguous.

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?

It provides clear usage context by instructing users to provide place_id from search results, and explains pagination via cursor_next. However, it does not explicitly mention alternatives or when not to use this tool, though the singular purpose (photos) makes that less critical.

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.