Skip to main content
Glama

@striderlabs/mcp-lyft

MCP server connector for Lyft ride-sharing — request rides, get fare estimates, and track trips via browser automation.

Installation

npm install -g @striderlabs/mcp-lyft

Or run directly with npx:

npx @striderlabs/mcp-lyft

Related MCP server: mcp-zen

MCP Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "lyft": {
      "command": "npx",
      "args": ["@striderlabs/mcp-lyft"]
    }
  }
}

Tools

status

Check current session and route status.

Returns: Login state, user info, and saved pickup/destination.


login

Authenticate with your Lyft account.

Parameter

Type

Required

Description

identifier

string

Yes

Email or phone number

password

string

Yes

Lyft account password

headless

boolean

No

Run browser headlessly (default: true)

Note: If Lyft requires a verification code (OTP), you must complete sign-in manually in a browser first.


logout

Clear saved session, cookies, and route data.


set_pickup

Set the pickup location for your ride.

Parameter

Type

Required

Description

location

string

Yes

Address or place name (e.g. "Times Square, NYC")


set_destination

Set the destination for your ride.

Parameter

Type

Required

Description

location

string

Yes

Address or place name (e.g. "JFK Airport")


get_fare_estimate

Get fare estimates for the current pickup/destination route.

Requires: Both pickup and destination to be set via set_pickup and set_destination.

Returns: List of ride types with estimated fares and ETAs.


get_ride_options

Get available Lyft ride types for the current route.

Requires: Login + both pickup and destination set.

Returns: Available options (Lyft, Lyft XL, Lux, Lux Black, etc.) with prices and wait times.


request_ride

Request a Lyft ride. Returns a preview by default — set confirm=true to actually book.

Parameter

Type

Required

Description

ride_type

string

No

Ride type (default: "Lyft")

confirm

boolean

No

Set true to book (default: false — preview)

Requires: Login + both pickup and destination set.


get_ride_status

Get the status of your current or most recent Lyft ride.

Requires: Login.

Returns: Driver info, ETA, vehicle details, and trip status.


cancel_ride

Cancel a pending or active ride.

Parameter

Type

Required

Description

reason

string

No

Optional cancellation reason

Note: Cancellation fees may apply depending on timing.


get_ride_history

Get recent ride history.

Parameter

Type

Required

Description

limit

number

No

Number of rides to return (default: 10)

Returns: List of past rides with date, route, fare, and status.


Typical Workflow

1. login          → Authenticate with Lyft
2. set_pickup     → "123 Main St, San Francisco, CA"
3. set_destination → "SFO Airport"
4. get_fare_estimate → See prices for all ride types
5. request_ride   → Preview the ride (confirm=false)
6. request_ride   → confirm=true to actually book
7. get_ride_status → Track your driver
8. cancel_ride    → Cancel if needed

Session Storage

Session data is stored locally at ~/.striderlabs/lyft/:

File

Contents

cookies.json

Browser session cookies

auth.json

Login metadata (identifier, time)

route.json

Saved pickup/destination

Technical Details

  • Uses Playwright (Chromium) for browser automation

  • Stealth techniques applied to avoid bot detection

  • Cookies persist across MCP calls for seamless sessions

  • Default geolocation: New York City

  • User-agent: Chrome 120 on macOS

Important Notes

  • OTP/Verification: Lyft frequently requires SMS or email verification codes. If prompted, complete sign-in manually in a browser — cookies will be reused.

  • CAPTCHA: If a CAPTCHA appears, complete it manually in a browser to establish a session.

  • Cancellation Fees: Lyft may charge a fee if you cancel after a driver has been assigned.

  • Mobile vs Web: Some Lyft features may only be available in the mobile app and not accessible via browser automation.

License

MIT © Strider Labs

Available Tools

11 tools
cancel_rideA

Cancel a pending or active Lyft ride.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional reason for cancellation

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention important consequences such as cancellation fees, driver notification, or whether the action is reversible. For a mutating operation, this is a significant gap.

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 that front-loads the verb and resource. It contains no unnecessary words or repetition, making it highly efficient.

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

Completeness3/5

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

Given the tool's low complexity (one optional param, no output schema), the description is adequate for basic understanding. However, it omits details about the result of the cancellation (e.g., whether it returns a confirmation) and any side effects, leaving some gaps.

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 fully covers the single optional 'reason' parameter with its own description, and the tool description does not add extra semantics. The schema provides adequate meaning, so the baseline of 3 is appropriate.

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 the specific verb 'Cancel' with the resource 'pending or active Lyft ride', making the tool's purpose immediately clear. It also differentiates from sibling tools like request_ride or get_ride_status, as no other sibling handles cancellation.

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 'pending or active' provides clear context for when the tool applies, implicitly excluding completed or non-existent rides. However, it does not explicitly state when not to use it or mention alternatives, though sibling names make the distinction obvious.

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

get_fare_estimateA

Get fare estimates for the current pickup and destination. Both locations must be set first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It mentions the dependency on prior location setup, which is a useful behavioral trait. However, it does not describe what happens if locations are not set, nor any details about the output format or side effects, leaving some ambiguity.

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, consisting of two short sentences that convey purpose and prerequisite without unnecessary words. It is front-loaded with the action verb and resource.

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 stateful tool, the description covers the essential purpose and prerequisite. It does not elaborate on return values, but since there is no output schema and the tool appears simple, this is adequate. It might benefit from noting what happens when locations are unset, but overall it is reasonably complete.

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 the baseline is 4. The description adds context by referencing 'current pickup and destination,' which clarifies that the tool uses existing state rather than requiring input parameters.

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 tool fetches fare estimates based on the current pickup and destination, which is a specific verb-resource pairing. It does not explicitly differentiate from sibling tools like get_ride_options, but the scope is clear enough for basic selection.

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 the tool is used after setting pickup and destination, and states the prerequisite 'Both locations must be set first.' However, it does not provide any comparison or exclusion regarding alternative tools such as get_ride_options, so guidance on when to use this versus alternatives is lacking.

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

get_ride_historyB

Get recent Lyft ride history.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recent rides to return (default: 10)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It fails to mention whether authentication is required, whether the operation is read-only, or the structure of the returned data. The only behavioral hint is 'recent,' but its meaning is undefined.

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 no redundancy or extraneous information. It is front-loaded with the key verb and resource.

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?

Given no output schema, the description should explain what the returned data contains or its format, but it only states 'ride history.' This is minimal and does not provide enough context for an agent to fully understand the tool's output or any constraints beyond the limit parameter.

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 describes the only parameter (limit) with a clear description and default value, achieving 100% schema coverage. The tool description adds no additional parameter semantics, so a baseline score of 3 is appropriate.

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 clearly states the tool retrieves recent Lyft ride history, specifying the verb 'get' and the resource 'ride history'. This distinguishes it from sibling tools like get_ride_status (current ride status) and get_fare_estimate (pricing).

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 usage for viewing past rides, but does not explicitly state when to use this tool over alternatives like get_ride_status or get_ride_options. No exclusions or prerequisite conditions are mentioned, so guidance is only implicit.

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

get_ride_optionsA

Get available Lyft ride types (Lyft, Lyft XL, Lux, Lux Black, etc.) for the current route.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only says 'Get available Lyft ride types' and 'for the current route', but does not state whether a login is required, what happens if no route is set, or whether it changes any state. This is a minimal read-only implication without explicit safety details.

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?

A single, grammatically complete sentence that is front-loaded with the action and resource. Every word contributes to meaning; no filler or redundancy.

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

Completeness3/5

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

The tool has no parameters, no output schema, and no annotations, so the description must provide enough context. It explains the core purpose and route dependency, but omits how to set the route and what happens if no route exists. For a simple getter this is adequate but not complete.

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 zero parameters, so the schema already fully covers them. The description adds value by listing example ride types, which helps the agent understand the output domain. Baseline for 0 params is 4, and nothing here detracts.

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 clearly states the verb 'Get' and the resource 'available Lyft ride types' with concrete examples (Lyft, Lyft XL, Lux). It distinguishes itself from sibling tools like get_fare_estimate by focusing on ride types rather than pricing.

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?

It implies usage context with 'for the current route', suggesting the route must be set beforehand, but it does not explicitly say when to use this vs. alternatives like get_fare_estimate, nor does it mention prerequisites or exclusions.

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

get_ride_statusB

Get the status of your current or most recent Lyft ride.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It merely states 'get the status,' which implies a read operation but does not explain what the status contains, whether authentication is required, if it is real-time, or any potential error conditions. The lack of detail is a significant gap for a tool with no structured annotation support.

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 that is front-loaded and directly states the tool's purpose. It contains no redundancy or fluff, making it exceptionally efficient for a tool with no parameters.

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

Completeness3/5

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

Given the tool's simplicity (0 params, no output schema), the description provides the minimal necessary purpose. However, it lacks contextual details such as what the status report includes, whether it requires an active ride, or how it relates to the sibling 'status' tool. The absence of output schema makes the missing return-value description more noticeable, though it is still a borderline adequate description for a basic status check.

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 input schema has zero parameters, and schema coverage is 100% (vacuously). The baseline for zero parameters is 4, and the description adds no further parameter information because there are none to describe. The score remains at the baseline.

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 uses a specific verb 'Get' and identifies the resource as 'status of your current or most recent Lyft ride,' which clearly states the tool's function. However, it does not differentiate from the sibling tool 'status,' which could plausibly cover the same functionality, so no explicit distinction is provided.

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 offers no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or preferred use cases beyond the basic scope of 'current or most recent ride,' leaving the agent without contextual decision-making information.

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

loginA

Authenticate with Lyft using email/phone and password. Saves session cookies for future requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
headlessNoRun browser in headless mode (default: true)
passwordYesLyft account password
identifierYesEmail address or phone number associated with your Lyft account

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the key side effect of saving session cookies, which is valuable. However, it does not mention failure behavior, whether it replaces existing sessions, or other operational details like the browser automation context (only hinted by the headless parameter).

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 two concise sentences, front-loaded with the primary action and including a relevant side effect. There is no extraneous information or repetition of schema details.

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?

Given the tool's low complexity, full schema coverage, and lack of an output schema, the description covers the essential purpose and the critical side effect of saving session cookies. While it omits return value or error handling details, those are less critical for a simple login tool, making the description 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?

The input schema already provides 100% coverage with descriptions for all three parameters. The description adds no additional semantic meaning beyond repeating that identifier is email/phone, so the baseline score of 3 is appropriate.

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 clearly states the tool authenticates with Lyft using email/phone and password, using a specific verb and resource. This distinguishes it from sibling tools like status and logout, which have different purposes.

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 authentication is a prerequisite for other actions (by saving session cookies for future requests), but it does not explicitly state when to use it versus alternatives (e.g., checking status first) or provide exclusion criteria. Usage is implied rather than directly guided.

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

logoutA

Clear saved session, cookies, and route data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that session, cookies, and route data are cleared, which is a key behavioral trait. However, it does not mention potential side effects like invalidating tokens on other devices or the need to re-authenticate.

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 that is front-loaded with the action verb 'Clear'. It contains no filler and every word contributes to the meaning.

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?

Given the tool's simplicity (no parameters, no output schema, no annotations), the description adequately explains the core action. It could mention the post-condition (user is logged out) but that is clearly implied by 'clearing saved session and cookies'.

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 input schema has no parameters, so the schema is fully covered (100%). The baseline for zero parameters is 4, and the description adds no parameter information since none exist.

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 exactly what the tool does: clearing saved session, cookies, and route data. The verb 'clear' is specific and the resources are enumerated, clearly distinguishing it from siblings like 'login' and 'status'.

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?

No explicit when-to-use guidance or alternatives are provided, but the name 'logout' and the action of clearing session data imply its usage for ending a user session. This is implied usage rather than explicit guidance.

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

request_rideA

Request a Lyft ride. Returns a confirmation preview by default — set confirm=true to actually book the ride.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet to true to actually confirm and book the ride (default: false — returns preview only)
ride_typeNoRide type to request (e.g. 'Lyft', 'Lyft XL', 'Lux', 'Lux Black'). Defaults to standard Lyft.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description must carry the burden of disclosing side effects. It does reveal a key behavioral trait: the tool is non-committal by default and only books when confirm=true. However, it omits other important behaviors such as prerequisites (logged in, pickup/destination set) or potential outcomes (e.g., ride availability, charges).

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, well-structured sentence that front-loads the core purpose and immediately clarifies the critical confirm behavior. No unnecessary words.

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

Completeness3/5

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

Given the tool's moderate complexity and the rich sibling context (login, set_pickup, set_destination), the description omits important contextual details like requiring a logged-in session or having a pickup/destination set. It also does not describe what the confirmation preview includes. While the schema covers parameters, the description leaves gaps in operational completeness.

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 covers both parameters fully (confirm and ride_type) with clear descriptions. The description adds minimal extra meaning beyond restating the confirm behavior in prose, so it does not significantly enhance the schema coverage. Baseline 3 is appropriate since schema_description_coverage is 100%.

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 verb ('Request') and resource ('Lyft ride'), and clearly distinguishes itself from siblings by mentioning the preview vs. confirmed booking behavior. This makes it unambiguous what the tool does and how it differs from related tools like get_fare_estimate or cancel_ride.

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 explicitly explains the two usage modes: returns a confirmation preview by default, and requires confirm=true to actually book. This provides clear context for how to safely use the tool, though it does not explicitly state when to use this tool over alternatives (e.g., first set pickup/destination using sibling tools).

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

set_destinationB

Set the destination for your ride.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesDestination address or place name (e.g. 'JFK Airport, Queens, NY')

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without mentioning side effects, prerequisites, or authorization requirements. For example, it does not clarify whether setting the destination can be done before a ride is active or if it overrides a previous destination.

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 concise and free of unnecessary words, which is appropriate for a simple setter. However, it is so terse that it sacrifices valuable contextual information that could have been included without harming conciseness.

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?

Given the ride-hailing workflow and sibling tools (e.g., login, request_ride, set_pickup), the description is incomplete. It does not mention whether the user must be authenticated or currently have an active ride, nor does it explain the impact of setting a destination (e.g., whether it triggers fare estimation). With no output schema, the agent also has no idea what the return value represents.

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 input schema has 100% description coverage for the single parameter, 'location', which is already well-explained as a destination address or place name. The description adds no additional semantic meaning, so the baseline score of 3 is appropriate.

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 clearly states the tool's purpose: setting the destination for a ride. It uses a specific verb ('set') and resource ('destination'), and is easily distinguished from the sibling tool 'set_pickup' which handles pickup location.

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?

No usage guidance is provided. The description does not indicate when this tool should be used (e.g., after requesting a ride) or when it should be avoided, nor does it reference any alternative tools. This leaves the agent to infer the appropriate context.

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

set_pickupB

Set the pickup location for your ride.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesPickup address or place name (e.g. '123 Main St, New York, NY')

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits, but it only states the action without any side effects, prerequisites, or effects on ongoing rides. It does not mention whether this updates an existing ride request, only sets a future pickup, or if any validation occurs.

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 no wasted words. It is appropriately front-loaded and contains exactly the information needed to convey the core action.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description is minimally sufficient, but it lacks contextual cues about where pickup fits in the ride lifecycle. It does not mention that pickup location is typically set before destination or ride request, which would improve completeness for an AI agent.

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 covers the single parameter 'location' with a clear description, and the tool's description adds no additional meaning beyond the schema. The baseline score of 3 applies because the schema fully documents the parameter, but the description does not offer extra semantic details.

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 clearly states the tool's function with a specific verb ('Set') and resource ('the pickup location for your ride'). It distinguishes from sibling tool set_destination by specifying 'pickup' as opposed to destination, making its purpose unambiguous.

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 provides no guidance on when to use this tool relative to alternatives. It does not mention that it should be used before requesting a ride, nor does it specify any exclusions or conflicting tools. The intended usage is only implied by the tool name and description.

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

statusA

Check current connection and session status — shows login state, saved route, and session info.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It clarifies the tool is a read-only check by stating 'Check current connection and session status' and lists the returned info. However, it does not disclose details about error conditions, network dependencies, or side effects (though none expected).

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, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose.

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, parameterless status tool, the description provides sufficient context about the returned information. However, it does not explain when to use it in the broader workflow or what constitutes a connection/session, which could be considered a minor gap.

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, and the schema is already complete. The description adds meaning by explaining what status information is shown, but parameter semantics are not applicable.

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 clearly identifies the tool as a status checker for connection and session, listing the specific information displayed (login state, saved route, session info). This distinguishes it from ride-specific status tools like get_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 Guidelines3/5

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

The description implies its use as a session/connection check but does not explicitly state when to prefer this over alternatives, nor does it mention exclusions. Sibling tools operate on ride state, so context hints at differentiation but not explicitly.

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. 11 tool updatesv0.1.0
    • First observedcancel_ride
    • First observedget_fare_estimate
    • First observedget_ride_history
    • First observedget_ride_options
    • First observedget_ride_status
    • First observedlogin
    • First observedlogout
    • First observedrequest_ride
    • First observedset_destination
    • First observedset_pickup
    • First observedstatus

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but 'status' and 'get_ride_status' could be confused at first glance. Descriptions clarify that 'status' is about session/login state, while 'get_ride_status' is about a specific ride, so the ambiguity is minimal.

Naming Consistency3/5

Tool names mix standalone verbs (login, logout, status) with verb_noun patterns (set_pickup, get_fare_estimate, request_ride). The inconsistency is noticeable but still readable, with clear conventions for core operations.

Tool Count5/5

With 11 tools, the server is well-scoped for a Lyft ride-hailing workflow, covering authentication, trip setup, fare estimation, booking, status, cancellation, and history. Each tool serves a clear purpose without unnecessary bloat.

Completeness4/5

The core ride lifecycle is well covered: login, set pickup/destination, estimate/options, request, status, cancel, and history. Minor gaps include no explicit ride-type selection in request_ride (only via get_ride_options) and lack of payment management, but these are workable.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

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/markswendsen-code/mcp-lyft'

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