
Imagine this: you’re deep in code, stomach growling, and you casually tell Claude “order me a margherita pizza from that place near Brigade Road.” Two minutes later, you get a QR code payment link and your food is on the way. No app switching. No menu scrolling. Just natural conversation.
This isn’t science fiction - it’s what the Zomato MCP Server makes possible right now.
After spending the last week testing this integration extensivly, I can confidently say this is one of the most practical MCP servers I’ve used. Not because it’s technically complex, but because it eliminates the friction from something we do multiple times a day: ordering food. Here’s everything you need to know.
What Is the Zomato MCP Server?
The Zomato MCP Server bridges Claude Desktop with Zomato’s food delivery platform using the Model Context Protocol. Unlike basic search integrations, this is a complete end-to-end ordering system. You can discover restaurants, browse menus, build shopping carts, apply offers, and complete orders - all through conversational commands.
Think of it as giving Claude direct access to Zomato’s API. You describe what you want in natural language, and the AI handles the technical details of searching restaurants, filtering menu items, managing your cart, and initiating payment flows.
The key difference from just opening the Zomato app? Context awareness. Claude remembers your previous orders, dietary preferences, and favorite restaurants across conversations. It’s like having a personal food assistant who knows your taste.
Why This Actually Works Better Than the App
Ordering on Zomato’s app involves: open app → scroll restaurants → tap into menu → read descriptions → add items → search for offers → checkout. Multiple taps, multiple screens, constant friction.
With Claude, you just talk. “I’m hungry, get me something spicy under 300 rupees near MG Road with good ratings.” Claude handles the searching, filtering, and offer hunting. One conversation instead of a dozen taps.
For regular Zomato users, this is genuinely faster. No context switching from your IDE or browser. No “just one more search” before deciding. You describe what you want, Claude presents options, you pick, done.
The best part? Claude remembers your preferences across orders. Your favorite neighborhoods, dietary needs, price ranges - it learns without you having to set up profiles or preferences like you would in the app.
What You Can Actually Do
Here’s everything you can accomplish through conversations with Claude:
Find Restaurants Your Way
Ask Claude anything: “Indian food near Indiranagar,” “pizza under 200 rupees,” “something new I haven’t tried,” “best-rated biryani place.” Claude searches Zomato and presents options with ratings, prices, and delivery times.
You can even be vague: “I’m in the mood for something spicy” - Claude will narrow it down with follow-up questions if needed.
Browse Menus and Compare
“Show me MTR’s menu” or “What do they have in the mains section?” Claude displays the full menu, prices, descriptions, everything. You can ask about specific items, ingredients, or categories without tapping through the app.
Build Your Cart and Find Deals
Add items by just talking: “Add 2 Masala Dosas and a Curd Rice.” Claude calculates totals and automatically finds applicable discount codes for your order. No more manually entering coupon codes or wondering if there’s a better deal.
Track Your Order
Once you’ve ordered, ask “Where’s my food?” and Claude gives real-time updates. You can also easily reorder previous meals: “Order the same thing I got last Friday.”
Handle Multiple Delivery Addresses
If you have saved addresses (home, office, gym), Claude can help you pick the right one. Just mention where you want delivery and Claude figures it out.
Pay and Confirm
Claude generates a payment QR code. You scan it on your phone to complete payment - this keeps things secure since no payment info goes through Claude.
Installation: Two Methods
Setting up the Zomato MCP Server depends on your environment. Pick your setup below.
Claude Desktop Setup
This is the standard approach for most users. You’ll edit Claude Desktop’s configuration file to register the Zomato server.
Step 1: Locate your config file
On macOS, the configuration file is at:
~/Library/Application Support/Claude/claude_desktop_config.jsonOn Windows:
%APPDATA%\Claude\claude_desktop_config.jsonStep 2: Edit the configuration
Open the file in your preferred text editor and add the Zomato server configuration:
{
"mcpServers": {
"zomato-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-server.zomato.com/mcp"
]
}
}
}If you already have other MCP servers configured, add the “zomato-mcp” object to your existing “mcpServers” section - don’t replace the entire file.
Step 3: Authenticate with Zomato
The server uses OAuth for authentication. When you first run a Zomato command in Claude, you’ll be prompted to authorize the connection. The OAuth redirect URIs are configured for localhost and chatgpt.com environments.
Click the authorization link, grant permissions to your Zomato account, and you’ll be redirected back to Claude. The server stores your auth token for future requests.
Step 4: Restart Claude Desktop
Close Claude completely (not just the window - fully quit the application). When you reopen it, the Zomato MCP Server will load automatically.
Look for the tools/hammer icon in the bottom-right corner of Claude Desktop. Click it to verify the Zomato server appears in your active connections.
VSCode Setup
If you use Visual Studio Code with the Claude extension, you have two options.
One-Click Installation
Click the button below to install directly:
Manual Installation
Add this to your mcp.json file:
{
"servers": {
"zomato-mcp-server": {
"url": "https://mcp-server.zomato.com/mcp",
"type": "http"
}
}
}After installation, you’ll need to authenticate your Zomato account using the OAuth flow, but the server setup is handled for you.
Real-World Usage Examples
Let me show you how this actually works in practice. These are exact prompts I’ve used successfully.
Example 1: Quick Lunch Order
Me: "I need lunch delivered to my office at MG Road.
Something vegetarian, not too spicy, under 250 rupees."
Claude: Let me search for vegetarian restaurants near MG Road.
I found several options:
1. Green Theory - 4.2 rating, avg 200 rupees, 25 min delivery
2. MTR - 4.5 rating, avg 180 rupees, 20 min delivery
3. Udupi Garden - 4.3 rating, avg 150 rupees, 30 min delivery
Which interests you? I can show menus.
Me: "Show me MTR's menu, just the main courses."
Claude: Here are MTR's vegetarian mains under 250 rupees:
- Masala Dosa (120 rupees)
- Paneer Butter Masala with 2 rotis (180 rupees)
- Veg Biryani (200 rupees)
- Curd Rice with pickle (90 rupees)
Me: "Add the Masala Dosa and a Curd Rice. Any offers?"
Claude: I've created your cart:
- Masala Dosa x1 (120 rupees)
- Curd Rice x1 (90 rupees)
Subtotal: 210 rupees
Available offers:
- FIRST50: 50 rupees off on orders above 200 rupees
- FREEDEL: Free delivery on orders above 199 rupees
Shall I apply FREEDEL and proceed to checkout?
Me: "Yes, checkout with that offer."
Claude: Checkout initiated. Here's your QR code payment link:
[payment link]
Total: 210 rupees (delivery free with FREEDEL offer)
Scan to complete payment and confirm your order.
The entire interaction took about 90 seconds. No app switching, no menu scrolling, no manual offer searching.
Example 2: Team Lunch Coordination
Me: "I need to order lunch for 5 people. Mix of veg and
non-veg, around 300 rupees per person. Indiranagar delivery."
Claude: For 5 people at ~300/person (1500 rupees total),
here are top-rated options:
1. Meghana Foods - Biryani specialist, 4.4 rating
2. Truffles - Burgers and continental, 4.3 rating
3. Empire - Multi-cuisine, 4.2 rating
Meghana Foods has a group meal option that might work.
Want to see their combo deals?
Me: "Yeah, show me Meghana's combos."
Claude: Group combos from Meghana Foods:
- Family Biryani Pack: 2 Chicken Biryani, 2 Veg Biryani,
raita, 4 pieces gulab jamun (1299 rupees)
- Mixed Platter: 3 Chicken, 2 Veg Biryani, kebab starter,
dessert (1499 rupees)
For 5 people, the Mixed Platter covers your budget exactly.
Me: "Perfect. Add that, find offers, and checkout."
Claude: Cart created with Mixed Platter (1499 rupees).
Available offers:
- FEAST200: 200 off on orders above 1200 rupees
- Applied automatically
New total: 1299 rupees
Savings: 200 rupees
Ready to checkout? I'll generate the payment link.
Notice how Claude understood “group order” context and automatically suggested combo deals instead of individual items. That’s the kind of intelligence that makes this useful beyond simple automation.
Example 3: Dietary Restrictions
Me: "I'm gluten-free. What can I order from that new
place on Koramangala 5th Block?"
Claude: Which restaurant on 5th Block? I see:
- Bowl Company
- Blue Tokai Coffee Roasters
- The Permit Room
- Leon Grill
Me: "Bowl Company."
Claude: Checking Bowl Company's menu for gluten-free options...
Gluten-free items:
- Quinoa Buddha Bowl (veg) - 280 rupees
- Grilled Chicken Protein Bowl - 320 rupees
- Mexican Rice Bowl - 240 rupees
Note: These are marked gluten-free on the menu, but I
recommend confirming with the restaurant for severe allergies.
Me: "Add the Quinoa Buddha Bowl."
Claude: Added. Your cart total is 280 rupees.
No specific offers available, but free delivery applies
for orders above 249 rupees. Ready to checkout?
The ability to filter by dietary needs and cross-reference with menu items saves significant time when you have restrictions.
Important Constraints and Limitations
After extensive testing, here are the gotchas you need to know.
Location Resolution Can Be Finicky
The server requires precise location objects with latitude, longitude, and formatted addresses. Sometimes Claude struggles to resolve casual location descriptions like “near Cubbon Park” into exact coordinates.
Workaround: If searches fail, provide specific addresses or landmarks. “100 Feet Road, Indiranagar” works better than “Indiranagar area.” Alternatively, look up coordinates on Google Maps and provide them explicitly.
Payment Requires Manual Completion
The MCP server generates QR codes and payment links but doesn’t complete transactions automatically. You must scan the QR code or open the link manually to finalize payment.
This is a security feature, not a limitation. Fully automated payments would require storing payment credentials, which introduces risk. The current approach gives you final confirmation before money changes hands.
Geographic Availability
Zomato operates primarily in India and select international markets. If you’re outside these regions, the server won’t return results. Location services are tied to Zomato’s delivery zones.
API Rate Limits
Zomato’s API has usage quotas. Excessive searches in short timeframes might trigger rate limiting. In practice, normal usage (a few searches and orders per day) stays well within limits.
If you hit rate limits, you’ll see error messages in Claude. Wait 10-15 minutes before retrying. For high-volume testing, consider requesting elevated API quotas from Zomato’s developer platform.
Tool Selection Efficiency
The get_all_restaurants tool is comprehensive but slow. Claude sometimes defaults to this for specific queries like “find Italian restaurants,” when get_restaurants_for_keyword would be faster.
You can guide Claude by being explicit: “Search for Italian restaurants using keyword search” rather than just “show me Italian options.” This directs the AI to use the more efficient tool.
Real-World Impact: How This Changes Your Routine
You’re busy. Whether you’re in a meeting, deep in code, or just tired of the Zomato app’s slowness, this saves actual time.
The Lunch Rush Scenario
It’s noon. You’re starving. Instead of: opening Zomato → scrolling restaurants → tapping into 3 different menus → comparing prices → searching for codes → finally ordering…
You just say: “Get me something quick under 300 rupees near my office.” Claude hands you 3 options in seconds. Pick one. Done.
That’s the difference between a 5-minute rabbit hole and a 90-second lunch order.
The “I Know What I Want” Scenario
Your favorite biryani place? Claude remembers. “Order my usual from Meghana.” Payment link appears. You’re thinking about your code again, not food.
The Team Lunch Coordination
Managing group orders is painful in the app. With Claude, someone says “We need lunch for 4, mix of everything, budget 300 per person” and Claude finds restaurants with combo deals, calculates if it fits your budget, and generates one payment link. Way better than forwarding menu screenshots in Slack.
The Dietary Constraint Scenario
“Show me gluten-free options” - Claude filters the entire menu instantly. No more scrolling, no guessing. Just relevant items with prices.
Troubleshooting Common Issues
Here are solutions to the problems I encountered during testing.
”No restaurants found” errors
Cause: Imprecise location data or searching outside Zomato’s delivery zones.
Fix: Provide specific addresses with landmarks. Instead of “Bangalore,” use “Koramangala 6th Block, Bangalore.” Verify the location is within Zomato’s service area by checking their app first.
Authentication loop (repeated OAuth prompts)
Cause: Token storage issues or expired credentials.
Fix: Completely quit Claude Desktop, delete the stored config at ~/Library/Application Support/Claude/, and restart. Re-authenticate from scratch. If the problem persists, check that your OAuth redirect URIs are correctly configured (localhost or chatgpt.com).
Tools not appearing in Claude
Cause: Configuration file syntax errors or incorrect server path.
Fix: Validate your claude_desktop_config.json using a JSON validator. Common errors include missing commas, mismatched brackets, or incorrect indentation. The server path in “command” must be exactly npx with args ["mcp-remote", "https://mcp-server.zomato.com/mcp"].
Slow search performance
Cause: Using get_all_restaurants when specific searches would be faster.
Fix: Guide Claude explicitly: “Use keyword search to find pizza restaurants” rather than “show me pizza places.” This forces the more efficient tool selection.
Rate limit errors
Cause: Too many API requests in a short period.
Fix: Wait 15-20 minutes before retrying. Spread out searches if testing multiple queries. For development work, cache results locally to avoid repeated API calls.
Security and Privacy Considerations
Granting AI access to food ordering requires trust. Here’s what you’re sharing and how to minimize risk.
Data Access
The Zomato MCP Server can read your saved addresses, order history, and payment preferences (though not actual payment credentials). This data flows through Claude’s systems during processing.
If you’re uncomfortable with this, create a separate Zomato account specifically for MCP integration with minimal personal information. Use disposable addresses or office locations rather than home addresses.
OAuth Scope
During authentication, review the permissions Zomato requests. The MCP server needs read access to restaurants/menus and write access for cart/order creation. It does not require access to payment methods directly—you complete payments manually via QR code.
If the OAuth prompt requests permissions beyond these scopes, don’t authorize. Contact the server maintainer to verify expected permissions.
Network Traffic
The MCP server communicates with Zomato’s APIs over HTTPS, so traffic is encrypted in transit. However, Claude’s systems process your requests, meaning Anthropic can theoretically access your conversations about food orders.
If this concerns you, avoid mentioning sensitive information in food ordering prompts. Order descriptions like “usual Friday dinner” are fine; mentioning specific addresses or personal details should be limited.
The Bottom Line
Stop context switching to order food. If you’re already in Claude working, you can order lunch without leaving your workflow. Faster than the app, smarter about deals, and honestly just less friction.
Is it perfect? No - you still need to scan a QR code to pay, and location resolution can be finicky. But for regular Zomato users who want their lunch 2 minutes instead of 5 minutes, this is worth the 2-minute setup.
Try it for a week. You might find yourself never opening the Zomato app again.
Frequently Asked Questions
Do I need a Zomato Pro subscription?
No. The MCP server works with free Zomato accounts. Pro-exclusive offers and features may not be accessible, but core ordering functionality works fine.
Can I use this outside India?
Only in regions where Zomato operates. Check Zomato’s official website for current service areas. The MCP server is tied to Zomato’s geographic availability.
Is my payment information stored by the MCP server?
No. Payment happens via Zomato’s standard QR code/link flow. The MCP server never handles or stores payment credentials.
Can I customize which restaurants appear in searches?
Yes, indirectly. You can filter searches by cuisine, price range, ratings, and delivery time through your prompts. Claude translates your preferences into API filters.
How much does the Zomato MCP Server cost?
The MCP server itself is free and open source. You pay standard Zomato delivery fees and menu prices. API usage is subject to Zomato’s developer tier limits (free tier is usually sufficient for personal use).
Can I order for delivery to multiple addresses in one session?
No. Each order uses a single delivery address from your saved addresses. For multiple deliveries, you would need to place separate orders and switch addresses between them.
What happens if a restaurant runs out of an item I ordered?
The Zomato system handles this the same way as app orders. You’ll receive a notification (via Zomato’s app/SMS) asking you to approve substitutions or cancel that item. The MCP server doesn’t currently provide real-time inventory management.
Can I track my delivery in real-time?
Yes, via the get_order_tracking_info tool. Ask Claude “What’s the status of my order?” and it queries Zomato’s tracking API for current status and estimated delivery time.
