Skip to main content
Glama

doordash_item_options

Retrieve customization options for DoorDash menu items, including sides, extras, and modifications, to build complete orders programmatically.

Instructions

Get customization options for a menu item (sides, extras, modifications).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
store_idYesDoorDash store ID
item_idYesItem ID from doordash_menu

Implementation Reference

  • The handler function for doordash_item_options that retrieves and formats the menu item options.
    ({ store_id, item_id }) =>
      wrap(async () => {
        const details = await api.menu.getItemOptions(store_id, item_id);
        const lines: string[] = [];
        lines.push(`# ${details.name}`);
        if (details.description) lines.push(`*${details.description}*`);
        if (details.unitAmount)
          lines.push(`Base price: $${(details.unitAmount / 100).toFixed(2)}`);
        if (details.calories) lines.push(`Calories: ${details.calories}`);
        if (details.dietaryTags.length > 0)
          lines.push(`Dietary: ${details.dietaryTags.join(", ")}`);
        if (details.quantityLimit > 0)
          lines.push(`Max quantity: ${details.quantityLimit}`);
        lines.push("");
    
        if (details.optionGroups.length === 0) {
          lines.push(
            "No customization options. This item can be added directly.",
          );
        }
    
        for (const group of details.optionGroups) {
          formatOptionGroup(lines, group, 2);
        }
    
        lines.push(
          "*To add with options, call doordash_add_to_cart with the `options` parameter.*",
        );
        return ok(lines.join("\n"));
  • The registration of the doordash_item_options tool, including its description and input schema.
    server.registerTool(
      "doordash_item_options",
      {
        description:
          "Get customization options for a menu item (sides, extras, modifications).",
        inputSchema: {
          store_id: z.string().describe("DoorDash store ID"),
          item_id: z.string().describe("Item ID from doordash_menu"),
        },
      },
Behavior3/5

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

No annotations provided, so description carries full burden. While 'Get' implies read-only access, the description lacks explicit behavioral details such as error handling, rate limits, or whether results are cacheable.

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?

Single efficient sentence with zero waste. Parenthetical examples are high-value and immediately clarify the abstract term 'customization options'. Perfectly front-loaded.

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?

Adequate for a simple two-parameter retrieval tool, but misses opportunity to clarify workflow integration (e.g., that this should be called between doordash_menu and doordash_add_to_cart). No output schema exists to document.

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

Parameters3/5

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

Schema description coverage is 100% (both store_id and item_id fully described in schema). The description adds no parameter-specific semantics beyond the schema, meeting the baseline for high-coverage schemas.

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?

States a specific action ('Get') and resource ('customization options for a menu item') with concrete examples (sides, extras, modifications). Clear distinction from doordash_menu is implied but not explicit.

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?

Lacks explicit when-to-use guidance or named alternatives. Usage sequence is only implied by the resource type (needing a menu item first), but the description text does not state prerequisites or workflow position relative to siblings like doordash_add_to_cart.

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

Install Server

Other Tools

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/ashah360/doordash-mcp'

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