Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SNAPP_DEBUGNoSet to log raw Snapp API traffic to stderr.
SNAPP_BACKENDNoBackend to use: `mock` for a simulated Snapp or `snapp` for the real Snapp passenger API.mock
SNAPP_MCP_HOMENoDirectory where saved places and current location are stored in `state.json`.~/.snapp-mcp
SNAPP_MOCK_SPEEDNoMock clock speed: simulated seconds per real second.10

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_current_locationA

Returns where the user currently is (the last location set with set_current_location).

set_current_locationA

Records where the user is right now, used as the default pickup point.

search_addressA

Looks up an address or landmark in Iran on OpenStreetMap and returns matching places with coordinates, nearest to the user's current location first. Use it when a place name is ambiguous, then pass the chosen lat,lng to other tools or save it with save_place.

list_placesB

Lists the user's saved places (home, work, ...).

save_placeC

Saves or updates a named place so it can be used as a pickup or destination.

remove_placeC

Deletes a saved place by name.

get_ride_quotesA

Gets price and ETA quotes for a ride, one per service type. Does NOT book anything. Show the user the options, then call request_ride with the quote they choose. Quotes expire after 5 minutes.

request_rideA

Books a ride using a quote_id from get_ride_quotes. This sends a real driver and charges the user, so only call it after the user has explicitly confirmed the service and price.

get_ride_statusA

Shows a ride's status, driver, car, plate, driver location and ETAs. Defaults to the active ride.

cancel_rideA

Cancels a ride that hasn't started. Free while searching and for 2 minutes after a driver accepts; after that a cancellation fee applies. Only call when the user asks to cancel.

wait_for_ride_updateA

Waits until the ride changes (driver found, driver arrived, trip started, finished, cancelled) and returns the new state, or returns the current state when the wait times out. Call it in a loop to follow a ride and tell the user each change as it happens.

suggest_placesA

Finds the addresses the user rides to and from most often (from their recent rides), so they can be saved with save_place (e.g. as home or work). Ask the user which is which before saving.

preview_destination_changeA

Shows what the active ride would cost with a different destination. Changes nothing. Show the user the new price, then call change_destination only if they agree.

change_destinationA

Changes the active ride's destination. Only call after preview_destination_change and the user agreeing to the new price; pass that price as confirmed_price_toman.

get_schedule_quoteA

Prices a ride booked ahead for a given time (Snapp allows today and tomorrow, in 5-minute slots). Scheduled prices are a range, and Snapp may add a scheduling fee. Books nothing; call schedule_ride after the user agrees.

schedule_rideA

Books the ride from get_schedule_quote. Only call after the user agreed to the time and price: pass the range's upper price as confirmed_max_price_toman, or, when Snapp gave no estimate, accept_price_set_later: true.

list_scheduled_ridesB

Lists rides booked for later.

cancel_scheduled_rideC

Cancels a ride booked for later. Only call when the user asks.

list_ridesB

Lists recent rides, newest first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 19 tools

Disambiguation5/5

Each tool maps to a distinct step in a clear workflow: quote → request, preview → change, schedule quote → schedule. Descriptions explicitly disambiguate the risky pairs (get_ride_quotes 'does NOT book anything', preview_destination_change 'changes nothing') and separate immediate vs. scheduled ride operations. Place tools (list_places, search_address, save_place, remove_place, suggest_places) are also cleanly partitioned.

Naming Consistency4/5

Nearly all 19 names follow snake_case verb_noun (get_ride_status, cancel_scheduled_ride, change_destination). Minor deviations: singular/plural drift within the place family (save_place/remove_place vs list_places/suggest_places) and a four-word outlier wait_for_ride_update. Still highly predictable overall.

Tool Count4/5

At 19 tools the surface leans heavy, but every tool maps to a real operation in a ride-hailing flow, and the safety-critical preview/confirm pairs justify their extra entries. No tool appears redundant or filler.

Completeness4/5

Strong coverage: full place CRUD plus suggestion/search, location get/set, immediate and scheduled ride lifecycle (quote, book, status, cancel, polling), destination change, and ride history. Minor gaps remain — no way to edit or reschedule an existing scheduled ride, and no receipt/fare-detail or driver-contact operation.

Maintenance

ActivityMaintained
ResponsivenessNo issues