Skip to main content
Glama

Tesla Robotaxi MCP

An unofficial local Model Context Protocol server for Tesla Robotaxi rider accounts.

It gives an agent eight tools:

  • Search Robotaxi places

  • Get live fare and route previews

  • List saved Robotaxi payment methods

  • Book a quoted ride

  • Read live ride and vehicle status

  • Preview and confirm cancellation

  • Get ride history

WARNING

This project uses Tesla's private, reverse-engineered Robotaxi rider APIs. It is not affiliated with or endorsed by Tesla. The protocol can change without notice. Use it only with your own account and review Tesla's terms.

Requirements

  • Python 3.11+

  • uv

  • A Tesla account with Robotaxi access

The server runs locally over stdio. Credential acquisition stays outside this package: obtain a Tesla Robotaxi refresh token from your own signed-in app session (for example via a local Charles capture of POST auth.tesla.com/oauth2/v3/token), then store only that token.

Related MCP server: Beckn Mobility MCP Server

1. Configure credentials

The server checks, in order:

  1. ROBOTAXI_REFRESH_TOKEN and optional ROBOTAXI_AREA_NAME

  2. ROBOTAXI_CREDENTIALS_FILE

  3. ~/.config/robotaxi/credentials.json

The default credential file has this shape:

{
  "refresh_token": "your-token",
  "area_name": "1:bay-area"
}

Create it locally with file mode 0600. Never commit a capture, token, or credential file.

The optional keys device_public_key and device_attestation (base64 protobuf) support accounts for which Tesla enforces the app's device attestation fields during booking. Read-only tools do not need them.

2. Add the MCP server

Add this to ~/.cursor/mcp.json or a project's .cursor/mcp.json:

{
  "mcpServers": {
    "robotaxi": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nathanielangafor/robotaxi-mcp",
        "robotaxi-mcp"
      ]
    }
  }
}

Restart or reload MCP servers in the client.

Safe agent behavior

  • Resolve ambiguous places before quoting.

  • Check status and list payment methods before requesting a fresh quote.

  • Show the canonical pickup, dropoff, and fare.

  • Only pass confirmation: "BOOK" after the user explicitly asks to book.

  • Call robotaxi_preview_cancellation and show its result before cancellation.

  • Only pass confirmation: "CANCEL" after explicit confirmation.

  • Never retry a booking or cancellation after OUTCOME_UNKNOWN; check status.

  • Do not print OAuth tokens, payment-selection blobs, or raw TripX payloads.

The server reinforces this flow with MCP annotations, literal confirmation arguments, short in-memory proposal/preview caches, and mutation outcome checks.

Protocol coverage

The implementation is based on complete Robotaxi 26.8.0 iOS captures:

  • Tesla OAuth PKCE with client_id=rides

  • TripX WebSocket session_info, search_suggestions, trip_preview_request, ride_update, and session_summary

  • The structural booking request and UUID + empty-field-4 cancellation request

  • Ownership ride history and signed wallet-token endpoints

  • Payment paymentOptions wallet listing

TripX currently exposes only the Bay Area identifier used by these captures. Quote, booking, and cancellation are mutation-prone private operations; verify them after Tesla app releases. A cancellation fee was not present in captured previews, so the MCP reports it as unavailable rather than guessing.

Development

git clone https://github.com/nathanielangafor/robotaxi-mcp
cd robotaxi-mcp
uv sync --extra dev
uv run pytest
uv run robotaxi-mcp

Captured sessions and live credentials are intentionally excluded. See SECURITY.md.

Available Tools

8 tools
robotaxi_book_rideBook a Tesla Robotaxi rideA
Destructive

Book a quoted ride only after the user explicitly requests it.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmationYes
proposal_tokenYesToken returned by robotaxi_get_quote
payment_method_idYesID returned by robotaxi_list_payment_methods

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds a useful consent guardrail ('only after the user explicitly requests it'), but it does not disclose further behavioral details such as charging the payment method, consuming the quote, or irreversibility beyond what annotations already convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence with no filler. The key condition is front-loaded and every word contributes to the tool's safe invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive booking action, the description captures the critical gating condition: explicit user request. The input schema covers parameter provenance and the confirmation constant, and the output schema exists. It could still explicitly warn about charges or quote consumption, but overall it is sufficiently complete.

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?

Two of the three parameters already have schema descriptions identifying their sources (proposal_token from robotaxi_get_quote, payment_method_id from robotaxi_list_payment_methods), and confirmation is self-documenting via const 'BOOK'. The description adds no parameter-level meaning, but the schema coverage is adequate.

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?

The description uses a specific verb and resource: 'Book a quoted ride'. The phrase 'quoted ride' distinguishes this tool from robotaxi_get_quote and other ride-related siblings, and the explicit-request qualifier makes the action's scope clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to invoke the tool: only after the user explicitly requests the booking. It implies the should-not-call condition (before explicit user request), though it does not explicitly name related tools or provide a detailed workflow with alternatives.

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

robotaxi_cancel_rideCancel the active Tesla Robotaxi rideA
Destructive

Cancel after a fresh preview and explicit user confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, and the description adds meaningful behavioral context: a fresh preview and explicit user confirmation are required before the destructive cancellation occurs. This goes beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, front-loaded, and contains no filler. Every word earns its place by communicating a necessary precondition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter destructive tool with a rich output schema and annotations, the description is largely complete. It covers the safety-critical prerequisites and clearly distinguishes this cancellation action from the preview sibling. Minor details about cancellation effects are not stated, but the destructive annotation and output schema cover much of that burden.

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?

The schema already documents the single parameter with a required const of 'CANCEL'. The description adds the notion of 'explicit user confirmation,' which gives some semantic context, but with 0% schema description coverage it does little to independently document the parameter beyond what the schema's const and title already convey.

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?

The title clearly identifies the action ('Cancel the active Tesla Robotaxi ride'), and the description reinforces it with a specific verb and the required preconditions. It differentiates from robotaxi_preview_cancellation by making clear this tool performs the actual cancellation after a preview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit usage condition: only cancel after a fresh preview and explicit user confirmation. This effectively tells the agent when it is appropriate to invoke the tool, though it does not explicitly name alternatives or edge cases.

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

robotaxi_get_quoteGet a Tesla Robotaxi quoteB

Get a live fare and route preview for two Robotaxi locations.

ParametersJSON Schema
NameRequiredDescriptionDefault
pickupYesPickup name or address
dropoffYesDropoff name or address
pickup_result_indexNo
dropoff_result_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior1/5

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

The description says 'Get a live fare,' which presents the operation as a read-only retrieval, yet the annotations declare readOnlyHint=false. This is an annotation contradiction; the description also fails to clarify whether the quote request has side effects or validity limits.

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?

The description is a single front-loaded sentence with no wasted words. It is concise, though 'for two Robotaxi locations' is slightly vague compared to saying 'between pickup and dropoff.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with a place-search sibling, the description omits the workflow (search places, then choose result indexes) and the relationship to book_ride. The output schema may cover returns, but the description is not complete enough for correct invocation in ambiguous-location cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only pickup and dropoff have schema descriptions; pickup_result_index and dropoff_result_index are undocumented. The description adds no meaning for the index parameters, so an agent cannot tell that they select among place-search results or how to use them.

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?

The description names a specific operation—get a live fare and route preview—for two robotaxi locations, which clearly distinguishes it from sibling tools like search_places, book_ride, and ride_status. The verb 'Get' plus 'fare and route preview' makes the tool's outcome unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose implies this is a pre-booking fare/route check, but the description never explicitly says to use it before book_ride or explains when not to use it. There are no stated alternatives or exclusions, so the agent is left to infer usage from the sibling names.

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

robotaxi_list_payment_methodsList Tesla Robotaxi payment methodsA
Read-only

List safe labels and IDs for Robotaxi-compatible saved payment methods.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description adds that only 'safe labels and IDs' are returned, implying no sensitive payment details are exposed. This adds some context beyond the annotations, but does not cover data freshness, availability, or external dependencies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no wasted words. It front-loads the action and clearly specifies the returned information.

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?

For a parameterless, read-only listing tool with an output schema, the description is complete. It specifies the domain (Robotaxi-compatible payment methods) and the nature of the returned data (safe labels and IDs), which is sufficient for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the description does not need to explain parameters. The baseline for a parameterless tool is 4, and the description provides enough context about what is being listed.

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?

The description uses a specific verb ('List') and a specific resource ('safe labels and IDs for Robotaxi-compatible saved payment methods'). It clearly distinguishes this tool from the sibling ride-related and search tools by focusing on payment methods.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. Usage is implied only by the tool name and resource.

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

robotaxi_preview_cancellationPreview Tesla Robotaxi cancellationA

Preview the active ride before cancellation without cancelling it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior2/5

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

The description adds the guarantee 'without cancelling it,' but it does not clarify the tool's broader side-effect profile. Since readOnlyHint is false and openWorldHint is true, the agent needs more transparency about whether a preview may alter state; the description leaves this ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly worded sentence communicates the action, the target, and the critical non-destructive guarantee. No filler or redundant restatement of the tool name or title.

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?

For a zero-parameter tool with an output schema, this description is sufficiently complete. The only real gap is side-effect clarity, which is already partly covered by the annotations and is separate from contextual completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema already provides full coverage. The description does not need to add parameter details, and the baseline of 4 for zero-parameter tools 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?

The description states a specific action (Preview), a specific resource (the active ride before cancellation), and the key differentiator from cancel_ride: it does not cancel. This clearly distinguishes it from sibling tools like robotaxi_cancel_ride and robotaxi_ride_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before cancellation' supplies a clear usage context, and 'without cancelling it' tells the agent this is a safe precursor to cancellation. However, it does not explicitly name the alternative tool (robotaxi_cancel_ride) or state when not to use it.

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

robotaxi_ride_historyGet Tesla Robotaxi ride historyB
Read-only

Return recent Robotaxi rides from Tesla's ownership service.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds a 'recent' scoping constraint but does not disclose ordering, result limits, pagination, or what counts as recent, which would be useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with the verb and resource front-loaded. Every word adds relevant context, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional param and an output schema, the description is mostly sufficient. It does not explain the relationship to robotaxi_ride_status or clarify the meaning of 'recent,' but the annotations and schema cover safety and the parameter shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the only parameter, `limit`, and schema description coverage is 0%, so the description carries the burden per the rubric. The schema itself is self-explanatory for this single optional integer, but the description adds no semantic value beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Return') and the resource ('recent Robotaxi rides'), and identifies the source as Tesla's ownership service. It does not explicitly distinguish itself from siblings like robotaxi_ride_status, but the word 'history' makes the list-oriented purpose reasonably clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance about when to use this tool versus alternatives such as robotaxi_ride_status or robotaxi_book_ride. There is no mention of when not to use it, no prerequisites, and no comparison to sibling tools.

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

robotaxi_ride_statusGet current Tesla Robotaxi ride statusA
Read-only

Return the active ride or most recent terminal TripX session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and openWorldHint, so the description is not burdened with basic safety disclosure. It adds useful scoping ('active' vs 'most recent terminal') but does not explain what happens if no ride exists or whether status can change between calls. This is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler. It front-loads the action and the key semantic distinction between active and most recent terminal sessions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only status tool with an output schema and helpful annotations, the description covers the essential behavior. The main gaps are the unexplained 'TripX session' terminology and a lack of explicit connection to sibling tools like ride_history.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter documentation burden on the description. The schema fully covers this area, and the baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Return') and a precise resource ('active ride or most recent terminal TripX session'), which goes beyond the title. It is reasonably distinguishable from siblings like robotaxi_ride_history, though it does not explicitly name the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'active ride or most recent terminal' implies when the tool is appropriate: for current or last-completed ride status. However, it does not explicitly contrast with robotaxi_ride_history or state when not to use this tool, leaving some selection inference to the agent.

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

robotaxi_search_placesSearch Tesla Robotaxi placesA
Read-only

Resolve a place name or address to Robotaxi locations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesPlace name or address
bias_latitudeNoSearch center latitude
bias_longitudeNoSearch center longitude

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds little behavioral context beyond the core transformation; it does not mention ambiguity handling, result ordering, or external geocoding behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no filler. The action and object are front-loaded, making the tool's purpose immediately scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only search tool with an output schema, annotations, and reasonably descriptive parameters, the one-line description is nearly sufficient. It is slightly thin on how the resolved locations relate to downstream ride operations, but that is inferable from sibling tool names.

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 75%, with query, bias_latitude, and bias_longitude already documented. The description's phrase 'place name or address' largely duplicates the query schema description, and it does not clarify the 'limit' parameter beyond its name and default.

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?

The description uses a specific verb ('Resolve') and clearly identifies the input ('a place name or address') and output ('Robotaxi locations'). It is easy to distinguish from the ride-status, booking, and payment sibling tools, none of which perform location search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool — when you have a place name or address to convert into Robotaxi locations — but it gives no explicit when-to-use or when-not-to-use guidance and does not name alternatives. An agent must infer its role in the ride-booking flow.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.1.0
    • First observedrobotaxi_book_ride
    • First observedrobotaxi_cancel_ride
    • First observedrobotaxi_get_quote
    • First observedrobotaxi_list_payment_methods
    • First observedrobotaxi_preview_cancellation
    • First observedrobotaxi_ride_history
    • First observedrobotaxi_ride_status
    • First observedrobotaxi_search_places

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct part of the ride lifecycle: place search, quoting, booking, status/history, payment listing, and cancellation preview/execution. The two ride-history/status tools are separated by active/recent vs. historical trips, and the cancellation tools are explicitly split into preview and confirm.

Naming Consistency4/5

Most tools follow a clear robotaxi_<verb>_<noun> pattern, e.g. search_places, get_quote, book_ride, cancel_ride. robotaxi_ride_status and robotaxi_ride_history break the verb pattern slightly, but the prefix and overall readability keep the set predictable.

Tool Count5/5

Eight tools is a well-scoped size for a robotaxi server, covering the main user journey without unnecessary surface area. Each tool corresponds to a needed action or query in the domain.

Completeness5/5

The tool set covers the core ride-hailing lifecycle: discover places, get quotes, book, check status/history, list payment methods, and preview/cancel. The explicit preview-before-cancel pairing avoids dead ends and gives agents safe workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with the Uber API for ride management, including requesting rides, obtaining price and time estimates, and tracking active trip status. It supports comprehensive journey features such as viewing ride history, cancelling requests, and rating drivers through a secure OAuth 2.0 integration.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nathanielangafor/robotaxi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server