@striderlabs/mcp-lyft
Provides tools for requesting Lyft rides, getting fare estimates, and tracking trips via browser automation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@striderlabs/mcp-lyftGet fare estimate from Union Square to SFO"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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-lyftOr run directly with npx:
npx @striderlabs/mcp-lyftRelated 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 |
| string | Yes | Email or phone number |
| string | Yes | Lyft account password |
| 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 |
| string | Yes | Address or place name (e.g. "Times Square, NYC") |
set_destination
Set the destination for your ride.
Parameter | Type | Required | Description |
| 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 |
| string | No | Ride type (default: "Lyft") |
| boolean | No | Set |
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 |
| string | No | Optional cancellation reason |
Note: Cancellation fees may apply depending on timing.
get_ride_history
Get recent ride history.
Parameter | Type | Required | Description |
| 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 neededSession Storage
Session data is stored locally at ~/.striderlabs/lyft/:
File | Contents |
| Browser session cookies |
| Login metadata (identifier, time) |
| 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 toolscancel_rideA
Cancel a pending or active Lyft ride.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional reason for cancellation |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent rides to return (default: 10) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | Run browser in headless mode (default: true) | |
| password | Yes | Lyft account password | |
| identifier | Yes | Email address or phone number associated with your Lyft account |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set to true to actually confirm and book the ride (default: false — returns preview only) | |
| ride_type | No | Ride type to request (e.g. 'Lyft', 'Lyft XL', 'Lux', 'Lux Black'). Defaults to standard Lyft. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | Destination address or place name (e.g. 'JFK Airport, Queens, NY') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | Pickup address or place name (e.g. '123 Main St, New York, NY') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
v0.1.0- First observed
cancel_ride - First observed
get_fare_estimate - First observed
get_ride_history - First observed
get_ride_options - First observed
get_ride_status - First observed
login - First observed
logout - First observed
request_ride - First observed
set_destination - First observed
set_pickup - First observed
status
TDQS
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.
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.
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.
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
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
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
MCP server for Nylas — read email, calendars, events and contacts, and send email or create events.
MCP server for Cronofy — read calendars, events and free/busy, and create, update or delete events.
MCP server for Linear project management and issue tracking
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server for automating Turo peer-to-peer car rental interactions using stealth browser automation. It enables users to search for vehicles, view detailed listing and host information, and create or manage car bookings.518MIT
- AlicenseNot gradedqualityCmaintenanceLets MCP clients control a live Zen/Firefox browser to navigate, click, fill forms, screenshot, and execute JavaScript through a persistent server and browser extension.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server connector for Uber ride-sharing, enabling ride requests, fare estimates, and trip tracking via browser automation.161MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for StubHub — search events, compare ticket prices, and purchase tickets via browser automation.15MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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