Enables searching restaurants, retrieving menus, and placing food delivery orders through the A2A protocol integration with DoorDash's agent service.
Enables searching restaurants, retrieving menus, and placing food delivery orders through the A2A protocol integration with Grubhub's agent service.
Provides payment processing and refund capabilities using the AP2 protocol with mandate-based authorization, verifying cryptographically signed user payment approvals before processing transactions.
Enables searching restaurants, retrieving menus, and placing food delivery orders through the A2A protocol integration with UberEats agent service.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP A2A AP2 Food Delivery & Paymentsfind me a pepperoni pizza near me and order it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-a2a-ap2-im-hungry ππ³
MCP server with A2A protocol (food delivery) + AP2 protocol (payments with Mandates).
Demo

Flow

Quick Start
Services:
MCP Server:
http://localhost:8000/mcpRegistry:
http://localhost:8004DoorDash/UberEats/Grubhub:
8001-8003(A2A)Stripe:
http://localhost:8005(AP2)
What's Different from mcp-a2a-im-hungry?
mcp-a2a-im-hungry | This project |
A2A only | A2A + AP2 |
No payments | Stripe payments |
β | Mandates (signed authorization) |
What is AP2?
Problem: AI agents spending money. Who approved it?
AP2 = Payments with Mandates β cryptographically signed proof of user intent.
Flow (matches real-world AP2):
User asks for cheeseburger π
Your agent searches restaurants via A2A (discovers DoorDash/UberEats/Grubhub agents)
Your agent gets menus and delivery estimates
Your agent decides which restaurant (cheapest/fastest)
User authorizes payment β User's authorization service creates mandate (signed with user's private key)
Your agent requests authorization β Receives mandate from user
Your agent sends payment request WITH mandate to Stripe agent (via A2A)
Stripe agent VERIFIES mandate (signature valid? not expired? amount ok?)
If valid β Stripe processes payment β
Your agent places order with food delivery agent (DoorDash/UberEats/Grubhub via A2A)
π Burger incoming!
Key Point: The agent NEVER creates mandates. User authorization creates them. Agent only uses them.
Project Structure
Tools
Tool | Description |
| Search food (A2A) |
| Get menu (A2A) |
| Order food (A2A) |
| Pay via Stripe (AP2 + Mandate) |
| Refund via Stripe (AP2 + Mandate) |