About
Door Dash — Model Context Protocol server
README
A self-healing browser automation MCP server for DoorDash ordering, built for GARZA OS - Jaden's unified AI intelligence infrastructure.
Features
- Browse Restaurants - Organized by cuisine, filterable
- Recent Orders - View history and reorder with one click
- Restaurant Menus - Popular items prioritized
- Cart Management - Add items with customizations
- Order Placement - Explicit confirmation required
- Order Tracking - Real-time updates with Beeper notifications
- Self-Healing UI Patterns - Automatically adapts when DoorDash changes their UI
Architecture
doordash-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── tools/ # MCP tool implementations
│ │ ├── browse_restaurants.ts
│ │ ├── recent_orders.ts
│ │ ├── restaurant_menu.ts
│ │ ├── cart_management.ts
│ │ ├── order_placement.ts
│ │ ├── order_tracking.ts
│ │ └── set_location.ts
│ ├── browser/ # Browser automation
│ │ ├── session.ts # Session management
│ │ ├── auth.ts # Authentication
│ │ └── navigation.ts # Smart navigation
│ ├── patterns/ # Self-healing pattern system
│ │ ├── ui-patterns.json # Pattern definitions
│ │ ├── pattern-matcher.ts
│ │ └── pattern-healer.ts # Claude-powered healing
│ ├── state/ # State management
│ │ ├── manager.ts
│ │ └── types.ts
│ ├── integrations/ # External service clients
│ │ ├── shopping-travel.ts
│ │ ├── beeper.ts
│ │ └── craft.ts
│ └── claude/
│ └── client.ts # Claude API for healing
├── Dockerfile
├── fly.toml
└── package.json
Self-Healing System
When browser automation fails due to DoorDash UI changes:
- Capture State - Takes ARIA snapshot + screenshot
- Claude Analysis - Asks Claude API to find the new element
- Update Patterns - Stores new working selectors
- Retry Operation - Continues with updated patterns
- Log Event - Records healing for review
Pattern Structure
{
"add_to_cart_button": {
"description": "Button to add menu item to cart",
"version": 3,
"strategies": [
{
"type": "aria_role",
"role": "button",
"textContains": "Add to Order",
"priority": 1
}
],
"healingHistory": [...]
}
}
MCP Tools
browse_restaurants
Browse DoorDash restaurants, organized by cuisine.
{
location?: string, // Delivery address
cuisine_filter?: string // mexican, italian, chinese, etc.
}
get_recent_orders
Get order history with reorder capability.
reorder
Reorder a previous order by ID.
{
order_id: string
}
get_restaurant_menu
Get restaurant menu with popular items first.
{
restaurant_id?: string,
restaurant_name?: string
}
build_cart
Add items to cart with customizations.
{
restaurant_id: string,
items: [{
name: string,
quantity?: number,
customizations?: string[],
special_instructions?: string
}]
}
view_cart
View current cart contents.
clear_cart
Clear all items from cart.
review_order
Review order before placing - shows fees, delivery options, tip.
place_order
Place order - REQUIRES explicit confirmation.
{
confirmation: "confirm" | "yes", // Required!
tip_amount?: number,
delivery_priority?: "standard" | "priority"
}
track_order
Get current order status and ETA. Auto-sends Beeper notifications.
set_location
Set delivery address.
{
address: string
}
GARZA OS Integration
This MCP server integrates with:
- Shopping & Travel MCP - Browser automation (
scraping_browser_*tools) - Beeper MCP - Order notifications
- Craft MCP - State persistence and logging
- Claude API - Self-healing pattern detection
Setup
Local Development
# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Edit .env with your credentials
# Build
npm run build
# Run (test mode)
TEST_MODE=true npm start
Deploy to Fly.io
# Create app
fly apps create doordash-mcp --org personal
# Set secrets
fly secrets set \
ANTHROPIC_API_KEY=sk-ant-... \
[email protected] \
DOORDASH_PASSWORD=... \
BEEPER_CHAT_ID=!...:beeper.com \
CRAFT_SPACE_ID=... \
CRAFT_API_KEY=... \
CRAFT_STATE_DOC_ID=... \
CRAFT_PATTERN_DOC_ID=... \
CRAFT_ERROR_LOG_DOC_ID=...
# Deploy
fly deploy
# Check status
fly status
fly logs
Safety Guardrails
- Order Confirmation Required - Never places order without explicit "confirm" or "yes"
- Order Review - Always shows full summary before confirming
- Rate Limiting - Max 3 healing attempts per pattern per hour
- Error Logging - All errors logged to Craft
- Auto-Save - State saved every 5 minutes
- Test Mode - Set
TEST_MODE=trueto prevent real orders
Example Usage
# Set delivery address
> set_location address="123 Main St, Denver, CO 80202"
# Browse restaurants
> browse_restaurants cuisine_filter="mexican"
# View menu
> get_restaurant_menu restaurant_name="Illegal Pete's"
# Build cart
> build_cart restaurant_id="illegal-petes" items=[
{"name": "Mission Burrito", "quantity": 1, "customizations": ["carnitas", "guacamole"]}
]
# Review order
> review_order
# Place order (requires confirmation)
> place_order confirmation="confirm" tip_amount=5
# Track order
> track_order
Troubleshooting
Authentication Failed
- Check credentials in
.env - DoorDash may require 2FA - check email
Pattern Healing Failing
- Check Craft error log for details
- Pattern may need manual update
- Verify Claude API key is valid
Browser Automation Issues
- Shopping & Travel MCP must be running
- Check browser session state
- Try clearing session and re-authenticating
License
MIT - Built for GARZA OS
Installing Door Dash
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/itsablabla/door-dash-mcpFAQ
Is Door Dash MCP free?
Yes, Door Dash MCP is free — one-click install via Unyly at no cost.
Does Door Dash need an API key?
No, Door Dash runs without API keys or environment variables.
Is Door Dash hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Door Dash in Claude Desktop, Claude Code or Cursor?
Open Door Dash on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Unyly Deploy
Deploy sites and MCP servers to Unyly straight from your AI agent
by UnylyAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiPayMCP
Lightweight payments layer for MCP servers: turn tools into paid endpoints with a two-line decorator. [PyPI](https://pypi.org/project/paymcp/) · [npm](https://w
by blustAIServer For Power BI
Enables exploring Microsoft Fabric / Power BI workspaces and semantic models, and executing ad-hoc DAX queries.
by Mitsubishi-FusoTemplate MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Compare Door Dash with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
