@striderlabs/mcp-ubereats
Provides tools for searching restaurants, browsing menus, adding items to cart, placing orders, and tracking deliveries via Uber Eats.
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-ubereatssearch for sushi restaurants near me"
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-ubereats
MCP server for Uber Eats — let AI agents search restaurants, browse menus, place orders, and track deliveries.
Built by Strider Labs.
Features
Search restaurants by name, cuisine, or food type
Browse full menus with item details and prices
Add items to cart with quantity and special instructions
Clear cart and start fresh
Place orders with a mandatory confirmation step
Track active order status and delivery progress
Persistent sessions — stay logged in across restarts
Related MCP server: Food402
Installation
npm install -g @striderlabs/mcp-ubereatsOr run directly with npx:
npx @striderlabs/mcp-ubereatsConfiguration
Add to your MCP client configuration (e.g., Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"ubereats": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-ubereats"]
}
}
}Authentication
This connector uses Playwright browser automation. On first use:
Call
ubereats_status— it will return a login URLOpen the URL in your browser and log in to Uber Eats
Run
ubereats_statusagain to verify the session was savedSession cookies are stored at
~/.strider/ubereats/cookies.jsonSessions persist automatically across restarts
To log out or reset your session:
ubereats_logoutAvailable Tools
Session Management
Tool | Description |
| Check login status; returns login URL if not authenticated |
| Get the login URL to open in a browser |
| Clear stored session cookies (log out) |
Delivery
Tool | Description |
| Set delivery address before searching |
Restaurants & Menus
Tool | Description |
| Search restaurants by name, food type, or cuisine |
| Get restaurant details and full menu |
Cart & Ordering
Tool | Description |
| Add an item to cart with quantity and special instructions |
| View current cart contents and totals |
| Remove all items from cart |
| Preview or place the order ( |
| Track an active order's status and ETA |
Example Usage
Check login status
{
"tool": "ubereats_status"
}Set delivery address
{
"tool": "ubereats_set_address",
"arguments": {
"address": "123 Main St, San Francisco, CA 94102"
}
}Search for restaurants
{
"tool": "ubereats_search",
"arguments": {
"query": "sushi",
"cuisine": "japanese"
}
}Get restaurant menu
{
"tool": "ubereats_get_restaurant",
"arguments": {
"restaurantId": "nobu-restaurant-sf"
}
}Add to cart
{
"tool": "ubereats_add_to_cart",
"arguments": {
"restaurantId": "nobu-restaurant-sf",
"itemName": "Spicy Tuna Roll",
"quantity": 2,
"specialInstructions": "No wasabi please"
}
}Preview order before placing
{
"tool": "ubereats_checkout",
"arguments": {
"confirm": false
}
}Place the order
{
"tool": "ubereats_checkout",
"arguments": {
"confirm": true
}
}Track order
{
"tool": "ubereats_track_order",
"arguments": {
"orderId": "abc123"
}
}Typical Workflow
1. ubereats_status — check if logged in
2. ubereats_set_address — set where to deliver
3. ubereats_search — find restaurants
4. ubereats_get_restaurant — browse the menu
5. ubereats_add_to_cart — add items
6. ubereats_view_cart — review cart
7. ubereats_checkout — preview (confirm=false), then place (confirm=true)
8. ubereats_track_order — track deliveryRequirements
Node.js 18+
Playwright (Chromium browser auto-installed on first run)
An active Uber Eats account with a saved payment method
How It Works
Headless Chrome — Playwright runs a real browser in the background
Stealth mode — Browser fingerprint mimics a real user to avoid detection
Cookie persistence — Login sessions are saved and reloaded automatically
Structured responses — All tool outputs are JSON for easy parsing
Security
Session cookies stored locally at
~/.strider/ubereats/cookies.jsonNo credentials are stored — authentication uses the browser-based Uber login flow
Cookies never leave your machine
Limitations
Uber Eats must be available in your region
Menu customizations (modifiers, options) may require additional interaction
Order placement requires a valid payment method on your Uber Eats account
Dynamic pricing and availability may differ from what is displayed
Development
git clone https://github.com/markswendsen-code/mcp-ubereats.git
cd mcp-ubereats
npm install
npm run build
npm startLicense
MIT © Strider Labs
Related
@striderlabs/mcp-doordash — DoorDash MCP connector
@striderlabs/mcp-gmail — Gmail MCP connector
Model Context Protocol — Learn more about MCP
Available Tools
11 toolsubereats_add_to_cartA
Add a menu item to the cart. The restaurant must be loaded first via ubereats_get_restaurant. Supports quantity and special instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| restaurantId | Yes | The restaurant ID (from search or get_restaurant) | |
| itemName | Yes | Name of the menu item to add (must match exactly) | |
| quantity | No | Number of items to add (default: 1) | |
| specialInstructions | No | Special preparation instructions for the item (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool adds to cart and supports quantity/special instructions, but omits key behavioral details: whether duplicate items increment quantity or replace, if a cart must exist, or login requirements. The mutation behavior is under-described.
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?
Two sentences, front-loaded with the primary action, followed by a concise prerequisite and capability mention. No extraneous words; every sentence earns its place. Ideal for quick scanning.
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 4 parameters, no output schema, and no annotations. The description lacks crucial context: what happens on success (e.g., updated cart contents), error cases (item not found, invalid restaurant), or how the cart state evolves. Incomplete for a mutation tool.
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?
With 100% schema description coverage, the baseline is 3. The tool's description merely restates what the schema already provides (e.g., 'Supports quantity and special instructions'). It adds no new semantic value beyond the schema's detailed parameter descriptions.
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 action ('Add a menu item to the cart') with a specific verb and resource. It distinguishes from sibling tools like ubereats_view_cart and ubereats_clear_cart by explicitly adding items. The prerequisite reference to ubereats_get_restaurant further clarifies scope.
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 a clear usage context: the restaurant must be loaded first via ubereats_get_restaurant. This is an explicit prerequisite. While it doesn't list when not to use or alternatives, the given guidance is sufficient for a simple add-to-cart tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_checkoutA
Preview or place the order. Set confirm=false (default) to preview the order summary including items, fees, and estimated delivery. Set confirm=true to actually place the order. Always preview before placing.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Set to true to place the order, false to preview only. Defaults to false for safety. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the two behavioral modes (preview vs place) and the preview content, but does not cover edge cases like empty cart or order confirmation details. Acceptable given the simple 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?
Two sentences, front-loaded with purpose, followed by usage instructions. No wasted 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?
Covers the core behavior and preview output, but lacks prerequisites (e.g., logged in, items in cart) and post-placement output. Still sufficiently complete for the tool's simplicity.
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?
Adds significant value beyond the schema by explaining what preview shows (items, fees, estimated delivery) and reinforcing the safety default behavior.
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 previews or places an order, distinguishing it from sibling tools like ubereats_add_to_cart or ubereats_view_cart.
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?
Explicitly instructs to set confirm=false for preview and confirm=true for placement, with a safety directive to always preview before placing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_clear_cartA
Remove all items from the current cart. Use this to start a new order or switch restaurants.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the destructive nature of the action (removing all items) and the use case. With no annotations, the description carries the full burden; it adequately conveys the behavior. Could mention irreversibility or prerequisites, but it's clear enough.
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?
Two sentences, no filler, front-loaded with the action, and 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 no output schema and no annotations, the description is adequate for the tool's simplicity. It covers purpose and when to use. Slightly lacking details on side effects or state requirements, but still 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?
No parameters exist, so baseline is 4. Description adds no param info, but none is needed.
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?
Description clearly states the action ('Remove all items from the current cart'), uses a specific verb and resource, and distinguishes from siblings like 'ubereats_add_to_cart' and 'ubereats_view_cart'.
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?
Explicitly states when to use ('to start a new order or switch restaurants'), providing clear context. Could mention when not to use, but the guidance is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_get_restaurantA
Get full details and menu for a specific restaurant. Returns restaurant info (rating, delivery time, fees) and the complete menu organized by category.
| Name | Required | Description | Default |
|---|---|---|---|
| restaurantId | Yes | The restaurant ID or slug (from ubereats_search results) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It lists returned data but does not explicitly state read-only nature, side effects, or requirements (e.g., auth). The read-only implication is clear but not spelled out.
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?
Two sentences, no fluff. Key information is front-loaded: action and resource first, then details of returns. Every sentence contributes 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 simple one-parameter tool with no output schema, description adequately covers return (restaurant info and menu). Lacks details on format or pagination, but sufficient for basic usage.
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?
With 100% schema coverage, the parameter description adds value by specifying 'from ubereats_search results', providing source context beyond the schema's basic description.
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 'Get full details and menu for a specific restaurant' with specific verb 'Get' and resource 'restaurant'. It differentiates from sibling tools like ubereats_search (which searches) and ubereats_view_cart (cart-related), establishing a unique purpose.
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 explains the tool's output (restaurant info, menu) and implies usage after obtaining a restaurant ID from search, but lacks explicit when-not-to-use or alternative tool guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_loginA
Get the Uber Eats login URL for the user to authenticate. Returns a URL the user can open in their browser to log in. After logging in, call ubereats_status to verify.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description bears full burden. It explains the tool returns a URL for browser login but does not disclose potential side effects, rate limits, or the need for user interaction. Adequate but not thorough.
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 with two sentences only, no redundant information, and front-loads 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 (no parameters, no output schema), the description is fully complete, covering the action, result, and next step.
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 no parameters, so the description doesn't need to add parameter details. The baseline score of 4 is appropriate as it adds no extra meaning beyond the schema.
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 provides a login URL for Uber Eats authentication, distinguishing it from sibling tools like ubereats_logout and ubereats_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?
It explicitly advises to call ubereats_status after login, providing a clear sequential guideline. While it doesn't elaborate on when not to use it, the purpose is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_logoutA
Clear the stored Uber Eats session cookies, effectively logging out. Use this to reset authentication or switch accounts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses the destructive nature (clearing cookies) and purpose, but does not mention potential failures, idempotency, or side effects like invalidating ongoing orders.
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?
Two sentences, front-loaded key action, no unnecessary words. Every sentence earns its place.
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 logout tool with no output schema, the description is fairly complete. Could mention return value (success indication) and error scenarios, but overall adequate.
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?
Has zero parameters, so schema coverage is 100%. The description adds no param info (unnecessary), meeting the baseline for a param-free tool.
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 it clears Uber Eats session cookies to log out, using a specific verb ('clear') and resource ('stored Uber Eats session cookies'). It distinctly differentiates from the sibling 'ubereats_login' tool.
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?
Explicitly states when to use ('reset authentication or switch accounts'), providing clear context. Lacks explicit when-not-to-use or alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_searchA
Search for restaurants on Uber Eats. Can search by restaurant name, food type, or cuisine. Returns a list of matching restaurants with delivery info.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query - restaurant name, food type, or dish (e.g., 'pizza', 'sushi', 'Chipotle') | |
| cuisine | No | Filter by cuisine type (e.g., 'italian', 'chinese', 'mexican', 'american') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description states it returns a list with delivery info, adding behavioral context beyond basic search. However, lacks details on side effects or rate limits.
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?
Two sentences, front-loaded with key purpose, no redundant or extraneous information.
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, description mentions return includes delivery info, which is helpful. With 2 parameters and simple behavior, it's largely complete, though more detail on output structure would improve.
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?
Schema coverage is 100% for both parameters with clear descriptions. The description adds value by explaining the query parameter can be restaurant name, food type, or dish, supplementing schema.
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?
Description uses specific verb 'Search for restaurants on Uber Eats' and lists search methods (name, food type, cuisine), clearly distinguishing from siblings like 'ubereats_get_restaurant'.
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?
Implied usage is clear (search for restaurants), but no explicit when-not-to-use or comparison with siblings like 'ubereats_get_restaurant' for specific restaurant details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_set_addressA
Set the delivery address for Uber Eats orders. Must be set before searching for restaurants. Provide a full street address including city and zip code.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Full delivery address (e.g., '123 Main St, San Francisco, CA 94102') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description clearly indicates the action (setting address) and implies it persists for subsequent searches. For a straightforward tool, this is adequate disclosure.
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?
Two sentences with no extraneous information. Purpose and usage are front-loaded, making it efficient and easy to parse.
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 single parameter, no output schema, and clear annotations, the description fully covers what the agent needs to know to use the tool correctly.
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?
Schema coverage is 100%, and description adds value by specifying the required format: 'full street address including city and zip code', supplementing the schema's example.
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?
Description uses specific verb 'set' and resource 'delivery address', clearly stating its role as a prerequisite. Distinguishes from sibling tools by noting it must be used before searching.
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?
Explicitly states 'Must be set before searching for restaurants', providing clear when-to-use guidance. No alternatives needed for this simple setter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_statusA
Check if the user is logged in to Uber Eats. Returns login status and setup instructions if not authenticated. Always call this before any other Uber Eats operations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it returns login status and setup instructions, implying a read-only, safe operation. No annotations, so description carries full burden, which it meets adequately.
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?
Two sentences, front-loaded with purpose, 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?
For a zero-parameter tool with no output schema, the description succinctly covers purpose, return value, and usage context.
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?
No parameters exist, so baseline score of 4 applies; description correctly states no input needed.
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?
Clearly states it checks login status for Uber Eats, differentiating from sibling tools like ubereats_login and ubereats_logout.
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?
Explicitly instructs to call before any other Uber Eats operations, but does not mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_track_orderA
Track the status of an active order. Returns order status, estimated delivery time, driver info (if available), and order details.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | No | Order ID to track (optional - defaults to the most recent active order) |
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 reveals that the orderId parameter defaults to the most recent active order, which is useful. However, it does not specify behavior for non-active orders, required permissions, rate limits, or error handling, leaving significant gaps.
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: one sentence followed by a list of return elements. Every part is informative and there is no wasted text. It is well-structured and front-loaded with the core 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?
Given the tool's simplicity (1 optional param, no output schema), the description covers the main purpose and return types. However, it lacks details on edge cases (e.g., invalid orderId, no active order states) and does not explain the return structure more fully. With no output schema, more context would be beneficial.
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?
Schema description coverage is 100%, so the schema already documents the single parameter (orderId) with its optionality and default behavior. The tool description adds no additional semantic value beyond what the schema provides, meeting the baseline expectation.
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 tracks an active order's status, listing specific return elements (order status, estimated delivery time, driver info, order details). The verb 'track' and resource 'order status' are explicit, and the function is distinct from sibling tools like ubereats_status by focusing on active orders.
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 does not provide any guidance on when to use this tool versus alternatives such as ubereats_status, nor does it mention when not to use it (e.g., for non-active orders). The lack of usage context limits the description's helpfulness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ubereats_view_cartA
View the current cart contents, including all items, quantities, prices, and the total cost with delivery fee.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description explicitly states it is a 'View' operation, implying no modifications. Given no annotations, it adequately conveys the non-destructive, read-only nature. Could be improved by noting behavior for an empty cart, but the current description is sufficient.
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?
Single sentence that is front-loaded with the core purpose ('View the current cart contents') and efficiently lists all key returned components. No filler or redundant information.
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 zero parameters and no output schema, the description is complete. It explains what the tool returns and is sufficient for an agent to understand its function and expected output.
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 100% coverage is trivial. The description adds value by enumerating the returned information (items, quantities, prices, total cost), which is not in the schema.
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?
Description clearly states the verb 'View' and the resource 'current cart contents', listing specific details like items, quantities, prices, and total cost. It distinguishes from sibling tools like ubereats_add_to_cart or ubereats_checkout by focusing on read-only retrieval.
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?
Usage context is implied (e.g., use to inspect cart before checkout), but no explicit guidance on when not to use it or comparison with alternatives like ubereats_status or ubereats_track_order. Lacks explicit when-to-use and when-to-avoid scenarios.
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
ubereats_add_to_cart - First observed
ubereats_checkout - First observed
ubereats_clear_cart - First observed
ubereats_get_restaurant - First observed
ubereats_login - First observed
ubereats_logout - First observed
ubereats_search - First observed
ubereats_set_address - First observed
ubereats_status - First observed
ubereats_track_order - First observed
ubereats_view_cart
TDQS
Each tool has a distinct and non-overlapping purpose, covering authentication, search, cart management, checkout, and tracking without ambiguity.
All tools follow a consistent 'ubereats_<verb>_<noun>' or 'ubereats_<verb>' pattern, making them predictable and easy to understand.
11 tools is well-scoped for a food ordering service, covering all essential steps from login to tracking without being excessive or insufficient.
The tool set covers the full lifecycle of ordering, but lacks a tool to remove individual items or edit quantities in the cart, which is a minor gap.
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
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Hosted MCP for e-commerce: live product catalog, stock, and pricing for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA proof-of-concept Model Context Protocol server that enables LLM applications to interact with Uber Eats, allowing AI agents to browse and order food through natural language.236-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to order food from TGO Yemek by browsing restaurants, managing carts, and completing checkouts. It allows users to handle address selection and order tracking directly through natural language interactions.1314MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables users to interact with KFC's online ordering system via Playwright browser automation. It supports searching the menu, managing an order cart, finding nearby locations, and initiating checkout for pickup or delivery.723MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to discover restaurants and place food delivery orders on Uber Eats and Thuisbezorgd (Just Eat Takeaway). It provides tools for restaurant discovery and order management through normalized platform APIs.22MIT
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-ubereats'
If you have feedback or need assistance with the MCP directory API, please join our Discord server