Skip to main content

Google Maps Extension

This tutorial covers how to add the Google Maps MCP Server as a Goose extension to enable geocoding, place searching, distance calculations, elevation data retrieval, and directions.

TLDR

Environment Variable

GOOGLE_MAPS_API_KEY: <YOUR_TOKEN>

Configuration

info

Note that you'll need Node.js installed on your system to run this command, as it uses npx.

  1. Launch the installer
  2. Press Yes to confirm the installation
  3. Obtain a GOOGLE_MAPS_API_KEY and paste it in
  4. Click Save Configuration
  5. Scroll to the top and click Exit from the upper left corner

Example Usage

Goose acts as an autonomous agent that tracks a delivery driver’s location, updates the customer in real-time, and adjusts ETAs dynamically based on Google Maps traffic data.

Goose can:

Monitor Driver Location

  • Goose gets the driver’s GPS coordinates every few seconds.
  • If the driver’s location is significantly behind schedule, Goose recalculates the ETA.

Traffic-Aware ETA Adjustments

  • Goose queries Google Maps for live traffic conditions.
  • If delays are detected, Goose updates the customer’s tracker with a new estimated time.

Dynamic Customer Notifications

  • If the driver is stuck in traffic, Goose sends an alert to the customer: “Your driver is running late due to traffic. Updated ETA: 7:25 PM.”
  • If the driver is ahead of schedule, Goose notifies the restaurant to prepare the food earlier.

Goose Prompt

Track the live GPS location of driver ID #12345. Query Google Maps for real-time traffic data and adjust the estimated delivery time if delays exceed 5 minutes. If ETA changes, update the customer’s live tracker and send an SMS notification. If the delay is greater than 20 minutes, check if another driver within a 1-mile radius can take over the delivery.

Goose Output

CLI

Okay, I will track Driver #12345, query Google Maps for traffic data, adjust the ETA, and notify the customer.

Track Driver's GPS Location

  • Driver ID: #12345
  • Starting Point: 1955 Broadway, Suite 600, Oakland, CA 94612

Driver #12345's movement:

2025-02-23 08:20:00: Latitude: 37.8074, Longitude: -122.2697 (Starting point)
2025-02-23 08:21:00: Latitude: 37.8080, Longitude: -122.2690
2025-02-23 08:22:00: Latitude: 37.8090, Longitude: -122.2680
2025-02-23 08:23:00: Latitude: 37.8100, Longitude: -122.2670

Geocode Destination Address

  • Customer Address: 2111 Mission Street, San Francisco, CA

I will convert this address into geographic coordinates:

─── maps_geocode | googlemaps ──────────────────────────

address: 2111 Mission Street, San Francisco, CA

Latitude: 37.7631446
Longitude: -122.4192073

Get Initial Directions and ETA

I will get the initial route and ETA from the driver's starting point to the customer's address.

─── maps_directions | googlemaps ──────────────────────────

destination: 2111 Mission St, San Francisco, CA mode: driving origin: ...

Distance: 12.1 miles
Initial ETA: 21 minutes
Estimated arrival at: 08:41 AM

Monitor Traffic and Adjust ETA

I will monitor traffic updates and recalculate the ETA periodically.

Remaining Distance: 8 miles
Updated ETA: 15 minutes
Estimated arrival at: 08:45 AM

There is no significant delay.

At 08:35 AM: There's a traffic incident.

─── maps_directions | googlemaps ──────────────────────────

destination: 2111 Mission St, San Francisco, CA mode: driving origin: Latitude: 37.8100, Longitude: -122.2670

I apologize, I am unable to use the lat/long for the request. I will call google maps api with names instead.

─── maps_directions | googlemaps ──────────────────────────

destination: 2111 Mission St, San Francisco, CA mode: driving origin: ...

Remaining Distance: 7 miles
Updated ETA: 26 minutes
Estimated arrival at: 08:46 AM

The ETA has increased by 5 minutes from the original ETA of 08:41 AM. The directions now include a message: "Expect delays due to congestion."

Update Customer and Send SMS

[... other extensions used (e.g. Webhooks, MySQL, ClickSend)...]

  • Update Live Tracker: The customer's live tracking interface is updated to reflect the new ETA of 08:46 AM.
  • Send SMS Notification: "Your delivery is now expected to arrive at approximately 08:46 AM due to traffic. We apologize for the inconvenience."