Skip to main content
Glama

Get one Paris place

get_place
Read-onlyIdempotent

Returns one place by slug with its address, coordinates, amenities, opening hours and how reliably it stays cool, plus the nearest other places. Use it after search_places, or when you already have a place URL.

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": {
      "slug": "<slug>"
    },
    "name": "get_place"
  }
}

Input Schema

NameRequiredDescriptionDefault
slugYesThe place's slug — the last path segment of its page URL.
localeNoLanguage for our own prose. The place's name is never translated.

Output Schema

NameRequiredDescriptionDefault
placeYesThe place, with its photo credit and opening hours where we hold them.
nearbyYesOther places within walking distance, nearest first — the next stop.
attributionYesWho to credit and under what licence. The ODbL datasets behind most of this data require attribution wherever the data is used, including inside an answer you generate.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / place / properties / summary_language
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The language `summary` is actually in, as a 2-letter code — not the language that was requested. We hold FR and EN for every summary and no ES, so an agent asking for 'es' is served the French text and this field is what says so. Null when there is no summary. Measured 4 Nov 2026: without this, a Spanish payload carried French prose and nothing in it disclosed the substitution."
      +}
    • changedOutput schema / properties / place / required
      Previous value: -[
      -  "id",
      -  "slug",
      -  "name",
      -  "url",
      -  "category",
      -  "summary",
      -  "summary_ai_generated",
      -  "summary_checked_at",
      -  "address",
      -  "arrondissement",
      -  "lat",
      -  "lng",
      -  "coolness",
      -  "amenities",
      -  "good_for",
      -  "opening_hours",
      -  "image",
      -  "booking",
      -  "updated_at"
      -]New value: +[
      +  "id",
      +  "slug",
      +  "name",
      +  "url",
      +  "category",
      +  "summary",
      +  "summary_language",
      +  "summary_ai_generated",
      +  "summary_checked_at",
      +  "address",
      +  "arrondissement",
      +  "lat",
      +  "lng",
      +  "coolness",
      +  "amenities",
      +  "good_for",
      +  "opening_hours",
      +  "image",
      +  "booking",
      +  "updated_at"
      +]
  2. Changed3 schema fields changed
    • addedOutput schema / properties / place / properties / summary_ai_generated
      Added value: +{
      +  "description": "True when `summary` was generated by a model from cited sources rather than written by us. ALWAYS present, never null: an agent renders its own interface and no caption of ours reaches its reader, so the disclosure has to be a field (EU AI Act Art. 50(4)) — the same reason `image.ai_generated` and `booking.disclosure` are fields and not sentences.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / place / properties / summary_checked_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "When the sources behind an AI-generated `summary` were last read, ISO 8601. Null for an editorial summary, which carries no such claim. Dated for the same reason a price is: the page publishes the date it was checked or does not publish, and a payload an agent caches for a duration we cannot see needs the date more than the page does."
      +}
    • changedOutput schema / properties / place / required
      Previous value: -[
      -  "id",
      -  "slug",
      -  "name",
      -  "url",
      -  "category",
      -  "summary",
      -  "address",
      -  "arrondissement",
      -  "lat",
      -  "lng",
      -  "coolness",
      -  "amenities",
      -  "good_for",
      -  "opening_hours",
      -  "image",
      -  "booking",
      -  "updated_at"
      -]New value: +[
      +  "id",
      +  "slug",
      +  "name",
      +  "url",
      +  "category",
      +  "summary",
      +  "summary_ai_generated",
      +  "summary_checked_at",
      +  "address",
      +  "arrondissement",
      +  "lat",
      +  "lng",
      +  "coolness",
      +  "amenities",
      +  "good_for",
      +  "opening_hours",
      +  "image",
      +  "booking",
      +  "updated_at"
      +]
  3. Changed2 schema fields changed
    • changedOutput schema / properties / place / properties / image / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "credit": {
      -        "type": "string"
      -      },
      -      "url": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "url",
      -      "credit"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ai_generated": {
      +        "description": "True when the picture was generated by a model rather than photographed at the place. ALWAYS present, never null: an agent renders its own interface and no caption of ours reaches its reader, so the disclosure has to be a field (EU AI Act Art. 50(4)) — the same reason `booking.disclosure` is a block and not a sentence.",
      +        "type": "boolean"
      +      },
      +      "credit": {
      +        "description": "Attribution. A licence condition on every host we allow — show it with the image.",
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "url",
      +      "credit",
      +      "ai_generated"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / place / properties / image / description
      Previous value: -"Only images whose licence allows the URL to travel; `credit` must be shown."New value: +"Only images whose licence allows the URL to travel; `credit` must be shown and `ai_generated` must be disclosed."
  4. Changed1 schema field changed
    • changedOutput schema / properties / place / properties / booking / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "disclosure": {
      -        "additionalProperties": false,
      -        "description": "Always present, so a consumer never has to tell 'not required' from 'missing'.",
      -        "properties": {
      -          "must_be_shown_with_link": {
      -            "type": "boolean"
      -          },
      -          "required": {
      -            "description": "True for affiliate links. When true, `text` must be shown wherever `url` is.",
      -            "type": "boolean"
      -          },
      -          "text": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The exact wording to show. Null when not required."
      -          }
      -        },
      -        "required": [
      -          "required",
      -          "text",
      -          "must_be_shown_with_link"
      -        ],
      -        "type": "object"
      -      },
      -      "kind": {
      -        "description": "What is on sale: ticket, tour, buy, hotel, …",
      -        "type": "string"
      -      },
      -      "label": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The seller's own call to action, if we have one."
      -      },
      -      "link_rel": {
      -        "description": "The rel attribute to use if the link is rendered as HTML.",
      -        "type": "string"
      -      },
      -      "mode": {
      -        "description": "affiliate = we earn a commission if the reader books through `url`, and `disclosure` must be shown with the link. direct = a plain link to the seller, we earn nothing, no disclosure needed.",
      -        "enum": [
      -          "affiliate",
      -          "direct"
      -        ],
      -        "type": "string"
      -      },
      -      "price": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "as_of": {
      -                "description": "When this price was last verified with the seller (ISO 8601). A price older than 24 hours is omitted entirely rather than shown stale.",
      -                "type": "string"
      -              },
      -              "currency": {
      -                "description": "ISO 4217 code.",
      -                "type": "string"
      -              },
      -              "from": {
      -                "description": "Lowest price we have seen, in `currency`.",
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "from",
      -              "currency",
      -              "as_of"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Null when we have no price or cannot vouch for its age."
      -      },
      -      "provider": {
      -        "description": "Who sells it.",
      -        "type": "string"
      -      },
      -      "url": {
      -        "description": "Where to book. For mode=affiliate this is a redirect on our domain that forwards to the seller; link to it as given rather than resolving it.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "mode",
      -      "url",
      -      "kind",
      -      "provider",
      -      "label",
      -      "price",
      -      "disclosure",
      -      "link_rel"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "disclosure": {
      +        "additionalProperties": false,
      +        "description": "Always present, so a consumer never has to tell 'not required' from 'missing'.",
      +        "properties": {
      +          "must_be_shown_with_link": {
      +            "type": "boolean"
      +          },
      +          "required": {
      +            "description": "True for affiliate links. When true, `text` must be shown wherever `url` is.",
      +            "type": "boolean"
      +          },
      +          "text": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The exact wording to show. Null when not required."
      +          }
      +        },
      +        "required": [
      +          "required",
      +          "text",
      +          "must_be_shown_with_link"
      +        ],
      +        "type": "object"
      +      },
      +      "kind": {
      +        "description": "What is on sale: ticket, tour, buy, hotel, …",
      +        "type": "string"
      +      },
      +      "label": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The seller's own call to action, if we have one."
      +      },
      +      "link_rel": {
      +        "description": "The rel attribute to use if the link is rendered as HTML.",
      +        "type": "string"
      +      },
      +      "mode": {
      +        "description": "affiliate = we earn a commission if the reader books through `url`, and `disclosure` must be shown with the link. direct = a plain link to the seller, we earn nothing, no disclosure needed. own = the seller is a service this publisher also operates, which is a commercial interest of a different kind, and `disclosure` must be shown with the link.",
      +        "enum": [
      +          "affiliate",
      +          "direct",
      +          "own"
      +        ],
      +        "type": "string"
      +      },
      +      "price": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "as_of": {
      +                "description": "When this price was last verified with the seller (ISO 8601). A price older than 24 hours is omitted entirely rather than shown stale.",
      +                "type": "string"
      +              },
      +              "currency": {
      +                "description": "ISO 4217 code.",
      +                "type": "string"
      +              },
      +              "from": {
      +                "description": "Lowest price we have seen, in `currency`.",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "from",
      +              "currency",
      +              "as_of"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Null when we have no price or cannot vouch for its age."
      +      },
      +      "provider": {
      +        "description": "Who sells it.",
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "Where to book. For mode=affiliate this is a redirect on our domain that forwards to the seller; link to it as given rather than resolving it.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "mode",
      +      "url",
      +      "kind",
      +      "provider",
      +      "label",
      +      "price",
      +      "disclosure",
      +      "link_rel"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured fields. The description adds behavior the annotations do not: the response bundles the nearest other places alongside the record, which affects how the agent should interpret and reuse the payload. It does not cover failure behavior for an unknown or malformed slug, which keeps it below a 5.

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 sentences with no filler: the first front-loads what is returned, the second gives the routing rule. Every clause carries information an agent needs to pick and invoke the tool.

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?

With an output schema present, the description need not enumerate return fields, and annotations plus 100% schema coverage cover safety and parameters. What remains is purpose, payload shape at a glance, and routing to the sibling — all present. Only the absence of any note on unknown-slug behavior for a lookup tool leaves a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters are documented there, including that slug is the last path segment of the page URL and that locale governs only the service's prose while the name is never translated. "by slug" restates the schema rather than extending it, and locale is not mentioned in the description at all. Baseline 3 applies.

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?

"Returns one place by slug" gives a specific verb and resource, and the enumeration of payload contents (address, coordinates, amenities, hours, cool-reliability, nearby places) makes the scope unambiguous. It also names search_places as the upstream sibling, so an agent can distinguish it from the search tools without opening a schema.

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 explicitly routes the agent: use after search_places, or when a place URL is already in hand. That is a clear positive-use condition tied to a named alternative. It stops short of stating when not to use it (e.g. for lists or bulk retrieval, where search_places is the right call), so it is not a full when/when-not specification.

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