Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NINENINE_ALLOW_MUTATIONSNoSet to 'true' to enable mutation tools (request/cancel ride). Defaults to 'false'.false
NINENINE_MCP_ALLOWED_ORIGINNoOverrides the allowed Origin for the optional HTTP loopback MCP server. Defaults to http://127.0.0.1:<port>.

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
ninenine_connection_statusC

Local doctor: token present, mutations off by default, unofficial passenger surface.

ninenine_capabilitiesB

What this unofficial MCP can read and which writes stay gated. Not 99Food or 99Pay.

ninenine_privacy_auditA

Shows redaction defaults (street/phone/GPS) and that request-ride is off unless both gates are set.

ninenine_multi_estimateB

Read-only POST pMultiEstimatePrice (JSON 200 errno without token). Does not request a car.

ninenine_ride_categoriesB

Shipped 99Pop + 99Moto plus any extra product list in pGetConfig. Not 99Food/99Pay.

ninenine_estimateA

Read-only fare quotes for origin/destination on the unofficial 99 passenger surface. Always includes 99Pop and 99Moto. Does not request a car.

ninenine_list_addressesB

Read saved/home addresses from pGetConfig when present. Dedicated address URLs 404 and are not shipped. GPS/street redacted by default.

ninenine_ride_historyA

Past passenger rides. Read-only. GPS polylines redacted.

ninenine_track_rideA

Active ride status/ETA/category only. Does not return GPS polylines or driver phone.

ninenine_driver_trackB

Dedicated driver URLs 404 HTML. Reads pOrderStatus; lat/lng redacted.

ninenine_active_rideB

Same as track without requiring a ride id. Status/ETA/category only.

ninenine_request_rideA

Fail-closed. Needs NINENINE_ALLOW_MUTATIONS and explicit_user_intent. Guest tokens cannot charge. Default examples never enable this.

ninenine_cancel_rideA

Fail-closed. Needs NINENINE_ALLOW_MUTATIONS and explicit_user_intent. Guest tokens cannot charge.

ninenine_logoutA

Deletes ~/.ninenine-mcp/tokens.json. Requires explicit_user_intent.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 14 tools

Disambiguation2/5

Several tools have unclear boundaries: ninenine_estimate and ninenine_multi_estimate both provide fare estimates, while ninenine_track_ride, ninenine_active_ride, and ninenine_driver_track all relate to ride status tracking. Descriptions clarify some differences, but an agent could easily select the wrong tool.

Naming Consistency3/5

All tools share the ninenine_ prefix and snake_case style, but the pattern after the prefix is inconsistent: some are noun phrases like ninenine_ride_categories and ninenine_ride_history, while others are verb phrases like ninenine_track_ride and ninenine_request_ride. The naming is readable but not uniform.

Tool Count4/5

14 tools is within a reasonable range for a ride-hailing MCP server. A few tools overlap or feel redundant, like ninenine_active_ride duplicating ninenine_track_ride without an id, but overall the count is not excessive.

Completeness4/5

The server covers the core ride-hailing lifecycle: estimate, request, track, cancel, plus history, addresses, categories, and safety/audit tools. Minor gaps exist around payment methods and driver details, but these may be intentionally gated.

Maintenance

ActivityMaintained
ResponsivenessNo issues