Agents and Developers

MCP Documentation

A public read-only MCP server exposing the GetValetParking.com US valet directory via 7 tools. Agents use these tools to find operators by city, service type, or geographic coordinate across 31,000+ cities and 789 operators.

What this is

The GetValetParking MCP server provides structured, real-time access to the US valet parking operator directory. All 7 tools are read-only and idempotent. The server runs on Cloudflare Workers at https://api.getvaletparking.com/mcp using the Streamable HTTP transport defined in the MCP 2025-06-18 specification.

Every tool response includes a data_freshness field with an indexed_at timestamp so agents can evaluate recency before presenting results. Operator data refreshes from Payload to Typesense daily at 03:00 UTC.

Tool overview

Tool name Title Cost (points)
valet_list_services List Valet Services 1
valet_get_operator Get Operator Profile 2
valet_search_cities Search Cities 1
valet_find_operators_in_city Find Operators In City 1
valet_search_by_service_and_city Search By Service And City 1
valet_find_nearest_operators Find Nearest Operators 3
valet_find_operators_near Find Operators Near 3

Tool reference

List Valet Services

valet_list_services

List the 9 canonical valet service slugs with display name and category. Use this when an agent needs to validate or discover the supported service taxonomy before composing a follow-up search (e.g. valet_search_by_service_and_city). Returns the in-bundle catalog; no upstream call; no isError path.

Idempotent: yes  |  Read-only: yes

No input parameters required.

Output fields

  • services : The 9 canonical valet service types, in catalog order
  • data_freshness : TOOL-10 freshness stamp
  • _meta : TOOL-11 ToS and attribution block

Get Operator Profile

valet_get_operator

Get the full operator profile by slug including address, phone, website, services, venues_served, FAQs, and tipping note. Use this when an agent has a slug from a search tool or directory URL and needs the complete profile to rank or present. Returns isError on slug 404 or upstream outage.

Idempotent: yes  |  Read-only: yes

Input parameters

Name Type Required Description
slug string yes Canonical kebab-case operator slug (e.g. '12-oaks-parking-llc'). Lowercase letters, digits, hyphens only.

Output fields

  • operator : The full merged operator profile (Typesense + Payload long-tail fields)
  • data_freshness : TOOL-10 freshness stamp
  • _meta : TOOL-11 ToS and attribution block

Search Cities

valet_search_cities

Search the cities directory by name prefix with population-ranked results. Use this when an agent needs to resolve a partial city name into a canonical city slug plus state slug plus lat/lng before composing valet_find_operators_in_city or valet_find_operators_near. Empty array if no matches.

Idempotent: yes  |  Read-only: yes

Input parameters

Name Type Required Description
query string yes Partial or full city name (>=2 chars). Matched against name and lowercase name fields with prefix semantics.
limit integer no Max results to return; default 8, capped at 25

Output fields

  • cities : Cities matching the query, ranked by text match then population desc
  • data_freshness : TOOL-10 freshness stamp
  • _meta : TOOL-11 ToS and attribution block

Find Operators In City

valet_find_operators_in_city

List valet operators serving a city slug plus state slug, optionally narrowed by service. Use this when an agent has a city already disambiguated and wants its operator roster ranked premium tier first then name. Empty array if no listed operators.

Idempotent: yes  |  Read-only: yes

Input parameters

Name Type Required Description
state_slug string yes Lowercase kebab-case US state slug (e.g. 'tx', 'new-york')
city_slug string yes Lowercase kebab-case city slug (e.g. 'houston', 'san-francisco')
service string no Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every operator serving the city.
limit integer no Max results to return; default 10, capped at 50

Output fields

  • operators : Operators serving the city, ranked tier:desc then name:asc. Empty array means no matches.
  • data_freshness : TOOL-10 freshness stamp
  • _meta : TOOL-11 ToS and attribution block

Search By Service And City

valet_search_by_service_and_city

Search valet operators by service slug plus city slug across all matching states. Use this when an agent has both a service slug and a city slug and wants a cross-state tier-then-name ranked list. Invalid service slugs surface the 9 canonical alternatives.

Idempotent: yes  |  Read-only: yes

Input parameters

Name Type Required Description
service_slug string yes Required canonical valet service slug. One of 9 values; call valet_list_services for the full set.
city_slug string yes Lowercase kebab-case city slug (e.g. 'austin', 'springfield'). May match multiple cities across states.
limit integer no Max results to return; default 10, capped at 50

Output fields

  • operators : Operators offering service_slug in any city matching city_slug across all states. Empty array means no matches.
  • data_freshness : TOOL-10 freshness stamp
  • _meta : TOOL-11 ToS and attribution block

Find Nearest Operators

valet_find_nearest_operators

List nearest valet operators within a 100-mile cap of a coordinate, optionally narrowed by service. Use this when a user is in a city with no listed operators and you need the closest available fallback ranked nearest-first. Empty array if nothing within 100 miles.

Idempotent: yes  |  Read-only: yes

Input parameters

Name Type Required Description
lat number yes Latitude in decimal degrees (WGS84). Range: -90 to 90.
lng number yes Longitude in decimal degrees (WGS84). Range: -180 to 180.
service string no Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every nearby operator regardless of services offered.
limit integer no Max results to return; default 10, capped at 50

Output fields

  • operators : Operators within 100 miles of the input coordinate, sorted nearest-first. Empty array means nothing within 100 miles.
  • data_freshness : TOOL-10 freshness stamp
  • _meta : TOOL-11 ToS and attribution block

Find Operators Near

valet_find_operators_near

Find valet operators within a given radius of a coordinate, ranked premium tier first then distance. Use this when you have a coordinate and an event-context radius (5mi single venue, 25mi metro, 50mi regional). radius_miles is required; empty array if no matches.

Idempotent: yes  |  Read-only: yes

Input parameters

Name Type Required Description
lat number yes Latitude in decimal degrees (WGS84). Range: -90 to 90.
lng number yes Longitude in decimal degrees (WGS84). Range: -180 to 180.
radius_miles number yes Search radius in miles. REQUIRED, no default. Pick based on context: 5 mi for a single venue, 25 mi for a metro, 50 mi for a regional sweep.
service string no Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every operator within radius regardless of services offered.
limit integer no Max results to return; default 10, capped at 50

Output fields

  • operators : Operators within radius_miles of the input coordinate, ranked tier:desc then distance:asc. Empty array means no matches within radius.
  • data_freshness : TOOL-10 freshness stamp
  • _meta : TOOL-11 ToS and attribution block

Install

The MCP server uses the Streamable HTTP transport. Most clients support it directly via a URL key. Claude Desktop requires the mcp-remote bridge package.

Claude Desktop

Add the following to your Claude Desktop config file. On macOS the config lives at ~/Library/Application Support/Claude/claude_desktop_config.json. On Windows the config lives at %APPDATA%\Claude\claude_desktop_config.json.

{
  "mcpServers": {
    "valet-parking-directory": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.getvaletparking.com/mcp"
      ]
    }
  }
}

Cursor

Add the following to your Cursor MCP config. Global config: ~/.cursor/mcp.json. Project config: .cursor/mcp.json at the project root.

{
  "mcpServers": {
    "valet-parking-directory": {
      "url": "https://api.getvaletparking.com/mcp"
    }
  }
}

Continue

Add the following to your Continue config at .continue/config.yaml.

mcpServers:
  - name: valet-parking-directory
    type: streamable-http
    url: https://api.getvaletparking.com/mcp

Cline

Add the following entry to your Cline MCP server configuration.

{
  "mcpServers": {
    "valet-parking-directory": {
      "url": "https://api.getvaletparking.com/mcp",
      "disabled": false,
      "autoApprove": []
    }
  }
}

ChatGPT

Open ChatGPT Settings, then Apps and Connectors, then Add. Enter Name: valet-parking-directory. Enter URL: https://api.getvaletparking.com/mcp. This requires ChatGPT Pro, Team, Enterprise, or Edu. Steps may vary; refer to current ChatGPT documentation.

Rate limits

Each tool call consumes a point budget. The budget is 100 points per 60-second rolling window, measured per (IP, session) pair. A per-IP-per-day cap of 1,000 calls applies; exceeding it for two consecutive days triggers a 24-hour tarpit response. Per-tool kill switches are available as a manual override. Per-tool costs appear in the Tool overview table above.

Data freshness

Operator data refreshes from Payload to Typesense daily at 03:00 UTC. The data_freshness field on every tool response includes the indexed_at timestamp and a source tag. If Payload-vs-Typesense drift exceeds 5%, tool responses return a transient 503 with a Retry-After header; drift between 1% and 5% adds a data_freshness.warning field with the current drift percentage. Drift status is observable via the mcp:drift_flag KV key.

Service taxonomy

The valet_list_services tool returns the following 9 canonical service slugs. Pass these as the service or service_slug parameter when filtering operators by service type.

Slug Display name
wedding-valet Wedding Valet
corporate-event-valet Corporate Event Valet
private-event-valet Private Event Valet
funeral-valet Funeral Valet
hotel-resort-valet Hotel & Resort Valet
restaurant-valet Restaurant Valet
hospital-medical-valet Hospital & Medical Valet
major-venue-valet Major Venue Valet
general-valet General Valet Service

Terms of use

This server is a public, read-only interface. Permitted use: real-time agent queries grounded in a user intent. Prohibited: bulk extraction, dataset construction, or redistribution of operator data. Read the MCP terms.

Contact

Questions about this server: [email protected].