Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DD_CLI_PATHNoPath to the dd-cli binary. If not set, Peckish searches PATH and falls back to ~/.local/bin/dd-cli.
PECKISH_PORTNoPort for the web server. Default is 4747 (not used by MCP server).4747
DD_AGENT_MODELNoModel to use for reasoning. Default is claude-sonnet-5.claude-sonnet-5
DD_AGENT_EFFORTNoEffort level for the agent: low, medium, high, or max. Default is medium.medium
PECKISH_INTENT_VERBATIMNoSet to '1' to send verbatim prompts to DoorDash in the intent note. Default is unset (privacy mode).

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_addressesA

List the user's saved DoorDash delivery addresses (label, printable address, default flag). Use to resolve 'home'/'work' references. Delivery always uses the account default address.

set_default_addressA

Change the ACCOUNT-WIDE default delivery address (persists across app/web). Prompts the user y/N in the terminal before applying. Only call when the user asked to deliver somewhere else.

search_restaurantsA

Search nearby restaurants by free-text query. Defaults to the user's default saved address location when lat/lng omitted. Returns store_id, name, distance, delivery_time estimate, rating. Stores with is_link_out=true cannot be ordered through this agent. Restaurant-focused — use find_stores for grocery/retail/pharmacy/pets/alcohol.

get_menuA

Fetch a restaurant's menu: returns menu_id (needed for cart adds and item details), store_is_open, and items with item_id, name, description, price, category, has_required_modifiers, orderability. Large menus are capped — pass filter (case-insensitive substring on name/description/category) to narrow.

get_restaurant_item_detailsA

Full details for one restaurant menu item: price, description, and extras[] customization groups (each with options[] holding option_id choices, min/max selections). REQUIRED before adding any item with has_required_modifiers. Pass selected options[].option_id values as nested_options when adding to cart (never extra_id).

get_store_detailsA

Store business metadata incl. printable_address — use when the user needs to know WHICH physical location a store is ('which Starbucks?').

list_cartsA

List the user's open (unsubmitted) carts: cart_uuid, store, items, timestamps (epoch ms). ALWAYS check this before creating a cart at a store — only one open cart per store is allowed; if one exists, ask the user whether to extend or replace it.

add_items_to_cartA

Add items to a cart (creates one if no cart_uuid passed and none open at the store). APPEND semantics: re-adding an item_id SUMS quantities. Items need item_id + item_name + quantity; customizations go in nested_options[] (entries: id, name, quantity, optional recursive options[]). On required-options failure the response lists required_options[] — ask the user to choose, then retry. Check list_carts first.

show_cartA

Show cart contents (no pricing — use preview_order for that). items[].id is the cart-LINE id used by remove_cart_item; items[].item_id is the menu item id. Don't swap them.

remove_cart_itemA

Remove one line item from a cart. cart_item_id = items[].id from show_cart (NOT the menu item_id).

delete_cartA

Empty a cart and abandon it (cart_uuid becomes invalid). Only on user request/consent — e.g. replacing a stale cart at the same store.

preview_orderA

Authoritative pricing + logistics for a cart (read-only, no charge): display_summary (show VERBATIM to the user), quote {net_total_before_tip = the real total, line_items fee breakdown, tips_suggestion (cents), delivery_availability ETAs, credits, PIN requirement, work budgets}, and the default card (brand+last4). Re-run after ANY cart change. Pass include_work_benefits when the user mentions work/office/company/team/expense or delivers to a Work address. Budget checks: compare the user's cap against net_total_before_tip (tip adds on top).

submit_orderA

Place the order — charges the user's real payment method. HARD GATE: the terminal asks the user to type 'yes'; a decline returns declined_by_user. Call ONLY after: (1) preview shown, (2) tip explicitly confirmed (delivery; pickup = 0 without asking), (3) payment method named to the user, (4) the user clearly said to place it. NOT idempotent — never retry without checking get_order_status first. Report success only when final_status.status == 'successful'.

get_checkout_urlA

Browser checkout URL for a cart — FALLBACK ONLY, for edits the CLI can't make: swap payment method, opt out of credits, change address mid-checkout, enter a promo code, or finish an age-restricted order. Do not offer by default after previews.

get_order_historyA

Past orders (default 50 orders / 90 days, max 100 / 365): store, items, total, order_uuid, is_reorderable, fulfillment_type. Use to analyze habits ('my usual'), find reorder targets, or locate a specific past order (scan all results; if page_full, re-query higher/wider).

reorderA

Create a NEW cart from a past order. Check list_carts for the store first (one open cart per store). Afterwards ALWAYS preview_order and diff items vs the original — out-of-stock items drop silently; call out any drops before asking about submitting.

get_order_statusA

Check whether a submitted order went through: successful | pending (check again) | action_required (user must verify in app) | failed | not_found.

get_receiptA

Itemized receipt for one past order (subtotal, fees, tax, tip, total, card last4). Sensitive — show only to the user.

list_payment_methodsA

Saved cards + which is default. Cards ONLY — wallets/gift cards are invisible here; never conclude 'no payment method' from an empty list (offer checkout-url instead).

list_promosA

Campaign promos eligible at a store for this user (may be empty — that's normal). To apply one to a cart use apply_promo with all four ids; preview_order shows what's actually discounting a cart.

apply_promoA

Apply a promo to a cart. Campaign promos from list_promos need promo_code + campaign_id + ad_group_id + ad_id; user-typed codes need only promo_code. On failure: check subtotal vs the promo's stated minimum. Re-preview after.

remove_promoA

Remove an applied promo (pass the same ids used at apply). Re-preview after.

find_storesA

Discover NON-restaurant stores near the default address (16-mile radius): grocery (default), alcohol, convenience, pets, retail, or nv (all non-restaurant). distance_meters is meters — divide by 1609 for miles. Restaurant queries belong in search_restaurants.

find_itemsA

Search items inside ONE retail/grocery store by name — returns item_ids for cart adds, keyed per query. Empty for restaurants (use get_menu there).

get_grocery_item_detailsA

Details for a retail/grocery item (pricing, options) + menu_id fallback source for grocery cart adds. Restaurants: use get_restaurant_item_details.

build_grocery_listA

Resolve a grocery/pantry list to real products at one store (raw ingredients only — NOT restaurant food). STATELESS: every call REPLACES the list, so always send the complete list. Weight items take decimal quantity (0.5 = half lb) only when purchase_type is MEASUREMENT; eggs are per dozen. Verify resolved items[].name with the user before carting. Vague asks: cap at 20 items and show your picks.

save_preferenceA

Persist a durable user preference across sessions (dietary rule, allergy, budget habit, tip default). Save when the user states one ('no mushrooms ever', 'I usually tip 20%'). Keep each note short and self-contained.

remove_preferenceC

Delete a saved preference note (exact text match).

get_session_contextA

Load the user's ordering context: default delivery address, saved dietary/budget preferences, and current local time. Call once at the start of an ordering conversation.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/CydVilla/peckish'

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