← Public packages
@kody/doordash
Order food on DoorDash as a customer through the consumer MCP used by dd-cli.
src/index.ts
113 lines · 2.5 KB · TypeScript/**
* @kody/doordash — DoorDash consumer MCP client (dd-cli compatible).
*/
import adapt from './adapt.ts'
import address from './address.ts'
import callTool from './call-tool.ts'
import cart from './cart.ts'
import findItems from './find-items.ts'
import findNearbyStores from './find-nearby-stores.ts'
import itemDetails from './item-details.ts'
import listTools from './list-tools.ts'
import menu from './menu.ts'
import order from './order.ts'
import paymentMethod from './payment-method.ts'
import promo from './promo.ts'
import search from './search.ts'
import settings from './settings.ts'
import smokeTest from './smoke-test.ts'
import storeDetails from './store-details.ts'
const ACTIONS = [
'smoke-test',
'list-tools',
'call-tool',
'search',
'menu',
'store-details',
'find-nearby-stores',
'find-items',
'item-details',
'cart',
'order',
'address',
'payment-method',
'promo',
'settings',
'adapt',
] as const
function parseAction(value: unknown, fallback: string) {
const action = value == null || value === '' ? fallback : String(value)
if ((ACTIONS as readonly string[]).includes(action)) return action
throw new Error('Unknown doordash action: ' + action + '. Valid: ' + ACTIONS.join(', '))
}
export default async function doordash(input: Record<string, unknown> = {}) {
const action = parseAction(input.action, 'smoke-test')
switch (action) {
case 'smoke-test':
return smokeTest(input as any)
case 'list-tools':
return listTools(input as any)
case 'call-tool':
return callTool(input as any)
case 'search':
return search(input as any)
case 'menu':
return menu(input as any)
case 'store-details':
return storeDetails(input as any)
case 'find-nearby-stores':
return findNearbyStores(input as any)
case 'find-items':
return findItems(input as any)
case 'item-details':
return itemDetails(input as any)
case 'cart':
return cart(input as any)
case 'order':
return order(input as any)
case 'address':
return address(input as any)
case 'payment-method':
return paymentMethod(input as any)
case 'promo':
return promo(input as any)
case 'settings':
return settings(input as any)
case 'adapt':
return adapt()
default:
throw new Error('Unhandled action: ' + action)
}
}
export {
adapt,
address,
callTool,
cart,
findItems,
findNearbyStores,
itemDetails,
listTools,
menu,
order,
paymentMethod,
promo,
search,
settings,
smokeTest,
storeDetails,
}
export {
TOOLS,
callMcpTool,
mcpRequest,
setupUrls,
accessTokenSetupUrl,
CONSUMER_MCP_URL,
} from './mcp.ts'