Skip to main content
Glama

Query McDonald's Store Locations

mcdonalds_locations
Read-onlyIdempotent

Search McDonald's store locations by city, state, ZIP code, or drive-thru availability. Returns matching store records for a $0.003 query fee.

Instructions

PAID ($0.003). Dedicated fast search for McDonald's fleet stores filtered by city, state, postal zip code, and drive-thru availability. Atomically debits $0.003 from prepaid balance. Requires 'fc_live_...' API key. Returns 402 if balance is insufficient. WHEN TO USE: Use specifically when looking up McDonald's store locations and filtering for drive-thru lanes. WHEN NOT TO USE: Do not use for other chains or cross-brand searches; use 'franchise_search_near' instead. ALTERNATIVES: Use 'franchise_search_near' for coordinate-based cross-brand proximity search; use 'search_brands' to discover other chains.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
zipNoFive-digit US postal ZIP code (e.g. '60601')
cityNoCity name to filter stores by (e.g. 'Chicago', 'Dallas')
limitNoMaximum number of store records to return (default 25, max 50)
stateNoTwo-letter US state postal code (e.g. 'IL', 'TX', 'CA')
drive_thruNoFilter exclusively for stores with verified drive-thru lanes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
brandYesBrand name ('McDonald\'s')
countYesNumber of matching locations found
locationsYesList of McDonald's store records matching filters
balance_remaining_usdYesRemaining API credit balance in USD

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.0.1
    • changedInput schema / properties / city / description
      Previous value: -"City name"New value: +"City name to filter stores by (e.g. 'Chicago', 'Dallas')"
    • changedInput schema / properties / drive_thru / description
      Previous value: -"Filter for drive-thru only"New value: +"Filter exclusively for stores with verified drive-thru lanes"
    • changedInput schema / properties / limit / description
      Previous value: -"Max results (default 25)"New value: +"Maximum number of store records to return (default 25, max 50)"
    • changedInput schema / properties / state / description
      Previous value: -"Two-letter state code, e.g. 'CA', 'NY'"New value: +"Two-letter US state postal code (e.g. 'IL', 'TX', 'CA')"
    • changedInput schema / properties / zip / description
      Previous value: -"Postal zip code"New value: +"Five-digit US postal ZIP code (e.g. '60601')"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "balance_remaining_usd": {
      +      "description": "Remaining API credit balance in USD",
      +      "type": "string"
      +    },
      +    "brand": {
      +      "description": "Brand name ('McDonald\\'s')",
      +      "type": "string"
      +    },
      +    "count": {
      +      "description": "Number of matching locations found",
      +      "type": "integer"
      +    },
      +    "locations": {
      +      "description": "List of McDonald's store records matching filters",
      +      "items": {
      +        "properties": {
      +          "address": {
      +            "type": "string"
      +          },
      +          "city": {
      +            "type": "string"
      +          },
      +          "has_drive_thru": {
      +            "type": "integer"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "latitude": {
      +            "type": "number"
      +          },
      +          "longitude": {
      +            "type": "number"
      +          },
      +          "state": {
      +            "type": "string"
      +          },
      +          "store_number": {
      +            "type": "string"
      +          },
      +          "zip": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "brand",
      +    "count",
      +    "balance_remaining_usd",
      +    "locations"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.0.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare the safety profile (readOnly, idempotent, closed-world); the description adds material context the annotations cannot convey — the $0.003 atomic debit, the required 'fc_live_...' API key, and the 402 insufficient-balance behavior. This is exactly the kind of paid-endpoint disclosure that prevents failed calls.

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 cost and capability, then organized into UPPERCASE routing headers — efficient and scannable. The filter list is slightly redundant with the schema, keeping it just short of a 5.

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 so return values need not be explained, and the description covers cost, auth, error handling, and routing. Nothing an agent needs to invoke this tool correctly is missing.

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%, so every parameter (zip, city, limit, state, drive_thru) is already documented with examples in the schema. The description only restates the filter dimensions at a high level, adding no new syntax or semantics. 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?

States a specific verb (search) and resource (McDonald's store locations) with the exact filter dimensions, and explicitly names the sibling it is not (franchise_search_near). An agent can distinguish it from cross-brand siblings 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?

Contains explicit WHEN TO USE, WHEN NOT TO USE, and ALTERNATIVES clauses, naming franchise_search_near and search_brands as the correct tools for adjacent use cases. Routing is fully determined.

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