io.github.markswendsen-code/doordash
MCP server for DoorDash - let AI agents order food delivery autonomously with browser-based ordering
Open source Open in the app JSON README (API)
About
MCP server for DoorDash - let AI agents order food delivery autonomously with browser-based ordering
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- markswendsen-code
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.4.1
- Stars
- 7
- Forks
- 1
- Open pull requests
- 2
- Last push
- 2026-04-21T10:03:22Z
- Repository state
- ativo
- Language
- TypeScript
- Added
- 2026-08-29 04:00:29
- Updated
- 2026-08-29 04:00:29
- Origin id
io.github.markswendsen-code/doordash
README
# @striderlabs/mcp-doordash
**Order food delivery via DoorDash using AI agents**
[](https://www.npmjs.com/package/@striderlabs/mcp-doordash)
[](https://mcpservers.org/servers/strider-labs-doordash)
[](https://docs.anthropic.com/mcp)
[](https://opensource.org/licenses/MIT)
Part of [Strider Labs](https://github.com/striderlabsdev/striderlabs) — action execution for personal AI agents.
## Get Started in 2 Minutes
### For Claude Desktop Users
1. Add this to `~/.openclaw/config.json` or your Claude Desktop config:
```json
{
"mcpServers": {
"doordash": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-doordash"]
}
}
}
```
2. Restart Claude.
3. Tell Claude: *"Order Thai food from nearby for delivery today"*
Your agent can now place orders. That's it.
---
## Installation (NPM)
```bash
npm install @striderlabs/mcp-doordash
```
Or with npx directly:
```bash
npx @striderlabs/mcp-doordash
```
## Features
- 🔍 **Search restaurants** by name, cuisine, or food type
- 📜 **Browse menus** with full item details and prices
- 🛒 **Add to cart** with quantity and special instructions
- 💳 **Place orders** with confirmation step
- 📍 **Track orders** with real-time status updates
- 🔐 **Persistent sessions** - stay logged in across restarts
- 🔄 **Automatic MFA** - handles multi-factor authentication
- 📱 **Per-user credentials** - encrypted session storage
## Tested & Compatible
| Component | Version | Status |
|-----------|---------|--------|
| **MCP SDK** | ^1.0.0 | ✅ |
| **Node.js** | 18+ | ✅ |
| **Claude Desktop** | Latest | ✅ |
| **Claude (API)** | claude-3.5-sonnet+ | ✅ |
| **Anthropic SDK** | ^0.20+ | ✅ |
## Metrics
- **Weekly downloads:** 395 (Apr 10-17, 2026) — #1 Strider Labs connector (+24% growth)
- **Status:** ✅ Live in production
- **Reliability:** 85%+ task completion rate
- **Discovery:** npm, Claude Plugins, mcpservers.org, ClawHub, PulseMCP
## Available Elsewhere
- **npm:** [npmjs.com/@striderlabs/mcp-doordash](https://npmjs.com/package/@striderlabs/mcp-doordash)
- **Claude Plugins:** Search "Strider Labs" in Claude
- **mcpservers.org:** [Strider Labs DoorDash](https://mcpservers.org/servers/strider-labs-doordash)
- **Full Strider Labs:** [github.com/striderlabsdev/striderlabs](https://github.com/striderlabsdev/striderlabs)
## How It Works
### For Agents
Your agent can use these capabilities:
```javascript
// Search for restaurants
restaurants = search_restaurants({
location: "San Francisco, CA",
cuisine: "Thai",
max_delivery_time: 30
})
// Browse a restaurant's menu
menu = get_restaurant_menu({
restaurant_id: "thai-place-downtown",
search: "Pad Thai"
})
// Place an order
order = place_order({
restaurant_id: "thai-place-downtown",
items: [
{ item_id: "pad_thai", quantity: 1 },
{ item_id: "spring_rolls", quantity: 2 }
],
delivery_address: "123 Main St, San Francisco, CA",
special_instructions: "Extra lime on the side"
})
// Track delivery
status = track_order({ order_id: order.order_id })
```
### Session Management
- Each user has encrypted, persistent credentials
- Automatic OAuth token refresh
- MFA handling (SMS/email)
- Sessions survive agent restarts
### Reliability
- 85%+ task completion rate
- Automated UI change detection (connectors update when DoorDash changes)
- Fallback paths for failures
- 24/7 monitoring + alerting
## Configuration
### Environment Variables
```bash
# Optional: Use a specific DoorDash account
DOORDASH_EMAIL=your-email@example.com
DOORDASH_PASSWORD=your-password # Highly recommend using .env file
```
### Self-Hosted
```bash
# Clone the repo
git clone https://github.com/striderlabsdev/mcp-doordash
cd mcp-doordash
# Install dependencies
npm install
# Start the server
npm start
# Your agent can now connect to localhost:3000
```
## Architecture
### How We Connect
This connector uses browser automation (Playwright) to interact with DoorDash, because DoorDash doesn't have a public API. Here's why that's safe and reliable:
- **User-controlled:** Your agent only accesses your own DoorDash account
- **Session-based:** We store your login session securely, not your password
- **Change-aware:** We detect DoorDash UI changes and alert immediately
- **Fingerprinting:** We use realistic browser profiles to avoid bot detection
- **Rate-limited:** We respect DoorDash's infrastructure with appropriate delays
### Security
- Credentials stored encrypted in your local `.env` or secure vault
- Sessions isolated per user
- No data sent to third parties
- MIT Licensed — audit the code yourself
## Support
- 📖 [Full Strider Labs Docs](https://github.com/striderlabsdev/striderlabs)
- 🐛 [Report Issues](https://github.com/striderlabsdev/mcp-doordash/issues)
- 💬 [Discussions](https://github.com/striderlabsdev/mcp-doordash/discussions)
- 🌐 [Website](https://striderlabs.ai)
- 📧 [Email](mailto:hello@striderlabs.ai)
## Contributing
We welcome contributions! Areas of interest:
- Bug reports and fixes
- Feature requests (new restaurants, cuisines, etc.)
- Performance improvements
- Documentation enhancements
See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines.
## License
MIT — Free to use, modify, and distribute. See [LICENSE](./LICENSE) for details.
---
**Built by Strider Labs** — Making AI agents actually useful.
[GitHub](https://github.com/striderlabsdev) | [Website](https://striderlabs.ai) | [Discord](https://discord.gg/openclaw)