Swiggy AI Insights MCP Server
Fetches and analyzes Swiggy order history, providing tools to retrieve orders, restaurants, and comprehensive analytics on spending and food habits.
Click on "Deploy 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., "@Swiggy AI Insights MCP ServerAnalyze my food ordering patterns and suggest optimizations"
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.
๐ Swiggy AI Insights - Your Personal Food Intelligence Engine
Transform your Swiggy order history into powerful AI-driven insights!
Turn years of food ordering data into intelligent recommendations, spending insights, and habit analysis using Claude AI. This blazing-fast MCP server gives your AI assistant superpowers to understand your food preferences like never before.
๐ฏ Why This Project Will Change How You Think About Food
๐ก Imagine Asking Your AI:
"I want to eat healthy this week - what should I avoid based on my past orders?"
"When do I spend the most on food and how can I optimize my budget?"
"What's my food personality? Am I a weekend splurger or a consistent orderer?"
"Which restaurants give me the best value for money?"
"Show me my food habits during stressful work periods"
"Plan my next month's food budget based on my historical data"
๐ช Real-World Magic in Action:
You: "Analyze my food ordering patterns and suggest optimizations"
Claude: "I'll help you analyze your Swiggy data! I need your session cookies
to fetch your order history. Can you provide them?"
You: [Provides cookies - they're used once and never stored]
Claude: "Based on your 247 orders over 18 months, I notice:
๐ You spend 40% more on weekends (โน890 vs โน635)
โฐ Your highest-value orders happen at 9 PM (stress eating?)
๐ฅ You haven't ordered healthy food in 3 weeks
๐ฐ Switching from Pizza Hut to local pizzerias could save โน2,400/year
๐ Your spending increased 23% during work deadlines
Recommendations:
- Set weekend spending alerts
- Try meal prep Sundays
- Bookmark 3 healthy options for late-night cravings"
๐ Your cookies were used once and discarded - maximum security!Related MCP server: strava-mcp
๐ What Makes This Special
๐ง AI-Native Intelligence
๐ค Claude Integration: Native MCP protocol for seamless AI conversations
๐ฌ Natural Language: Ask complex questions in plain English
๐ฎ Predictive Insights: AI-powered recommendations and trend analysis
๐ Smart Visualizations: Auto-generated insights that tell a story
โก Blazing Performance
๐ 60% Faster: Optimized JSON storage beats traditional databases
๐ Memory Indexing: Instant queries on years of order history
๐ Smart Caching: Millisecond response times for complex analytics
๐ Real-time Processing: Live insights as you ask questions
๐ฏ Unique Analytics (What others don't offer)
๐งฌ Food DNA Analysis: Deep personality profiling from order patterns
๐ธ Hidden Money Insights: Discover spending leaks and optimization opportunities
๐ด Habit Psychology: Understand emotional triggers behind food choices
โ๏ธ Health Intelligence: Identify nutrition gaps and wellness patterns
๐ญ Social Patterns: Weekend vs weekday personality shifts
๐ง Developer Experience
โก 5-Minute Setup: One command gets you running
๐งฉ Modular Design: Clean, extensible architecture
๐ Privacy-First: Your data never leaves your machine
๐ฑ Multi-Platform: Works everywhere Node.js runs
๐ฏ Game-Changing Use Cases
๐ For Personal Wellness
๐ฐ Budget Optimizer: "I spent โน8,400 on food delivery last month - show me where I can cut costs without sacrificing happiness"
๐โโ๏ธ Health Coach: "My fitness trainer says I need more protein - what are my healthiest past orders I can reorder?"
๐ฐ Stress Pattern Detector: "Do I stress-eat? Show me correlation between my work calendar and high-calorie orders"
๐ผ For Productivity Hackers
โฐ Time Optimizer: "Which restaurants deliver fastest during my focus hours?"
๐ง Performance Tracking: "Do I perform better at work after certain types of meals?"
๐ Meal Planning: "Plan my next month's meals based on what I actually enjoyed, not what I think I like"
๐จโ๐ฉโ๐งโ๐ฆ For Families & Students
๐ถ Parent Mode: "Kid-friendly restaurants that also have healthy options for adults"
๐ธ Student Budget: "Stretch my โน3000 food budget for maximum satisfaction based on past data"
๐ Social Planning: "Which restaurants work best when I'm ordering for groups?"
๐ For Data Nerds
๐ Trend Analysis: "Visualize my evolving food preferences over the past 2 years"
๐ Deep Dives: "What external factors influence my ordering? Weather? Mood? Events?"
๐ก Insight Mining: "Find patterns I never noticed in my food behavior"
๐ฆ Quick Start
Prerequisites
# Ensure you have Node.js 18+ installed
node --version # Should be 18.0.0 or higherInstallation
Option 1: Global Installation (Recommended)
# Install globally with npm
npm install -g swiggy-ai-insights
# Run from anywhere
swiggy-mcp
# Or clone and install globally from source
git clone https://github.com/YOUR_USERNAME/swiggy-ai-insights.git
cd swiggy-ai-insights
npm install -g .Option 2: Local Installation
# Clone the repository
git clone https://github.com/YOUR_USERNAME/swiggy-ai-insights.git
cd swiggy-ai-insights
# Run the automated setup
npm run setup
# Start the server (no config needed!)
npm start๐ Security Note: Unlike other tools, this project never stores your cookies. You provide them securely at runtime when needed.
Quick Usage
# With global installation - super simple!
swiggy-mcp
# The server starts immediately and provides 5 MCP tools:
# 1. sync_orders - Fetch orders from Swiggy API
# 2. get_orders - Retrieve orders with filtering
# 3. get_restaurants - List restaurants with stats
# 4. get_analytics - Comprehensive analytics
# 5. search_orders - Search across ordersMCP Integration with Cursor AI
With Global Installation
# Start the MCP server (from anywhere)
swiggy-mcp
# Add to your Cursor AI MCP settings:
{
"mcpServers": {
"swiggy-ai-insights": {
"command": "swiggy-mcp",
"env": { "NODE_ENV": "production" }
}
}
}With Local Installation
# Start the MCP server
npm run mcp
# Add to your Cursor AI MCP settings:
{
"mcpServers": {
"swiggy-ai-insights": {
"command": "node",
"args": ["/path/to/swiggy-ai-insights/simple-index.js"],
"env": { "NODE_ENV": "production" }
}
}
}๐๏ธ Project Structure
swiggy-ai-insights/
โโโ simple-index.js # Main entry point for simplified MCP server
โโโ src/ # Core source code
โ โโโ simple-mcp.js # Main MCP server implementation
โ โโโ simple-data-manager.js # Simplified data management
โ โโโ persistent-manager.js # Intelligent data storage
โ โโโ swiggy-fetcher.js # Swiggy API client with smart caching
โ โโโ config.js # Configuration management
โโโ config/ # Configuration files
โ โโโ default.json # Default configuration
โ โโโ cursor-mcp.json # MCP integration template
โโโ test/ # Tests and examples
โ โโโ performance.js # Performance testing suite
โ โโโ client-example.js # Usage examples & analysis
โโโ scripts/ # Utility scripts
โ โโโ setup.sh # Automated setup
โ โโโ start.sh # Server startup
โโโ data/ # Data storage directory
โโโ docs/ # Documentation
โโโ package.json # Dependencies and scripts
โโโ index.js # Main entry point
โโโ README.md # This file๐ How It Works (Security-First Approach)
No Configuration Required!
Unlike other tools that store sensitive cookies in config files, this project follows a security-first approach:
โ No cookies stored: Your session cookies are never saved to disk
โ Runtime-only: Provide cookies securely when Claude needs them
โ Zero risk: No accidental commits of sensitive data
Getting Your Swiggy Session Cookies (when Claude asks)
Login to Swiggy in your browser
Navigate to orders: https://www.swiggy.com/my-account/orders
Open Developer Tools (F12 โ Network tab)
Refresh the page and find any request to
swiggy.comCopy the
Cookieheader valuePaste when Claude prompts you - that's it!
Server Configuration
{
"server": {
"host": "0.0.0.0",
"port": 8001,
"cors_enabled": true
},
"storage": {
"data_file": "data/swiggy_orders_optimized.json"
}
}๐ก API Reference
REST API Endpoints
POST /fetch_orders
Fetch and analyze orders with intelligent caching.
// Request
{
"cookies": "your_session_cookies",
"days_back": 30, // Optional: number of days
"start_date": "2025-01-01", // Optional: specific start date
"end_date": "2025-01-31", // Optional: specific end date
"force_refresh": false // Optional: bypass cache
}
// Response
{
"success": true,
"total_orders": 45,
"performance_ms": 12.3,
"source": "persistent_file",
"data": {
"orders": [...],
"summary": {
"total_spent": 2450.75,
"average_order_value": 54.46,
"top_restaurants": [["Pizza Hut", 8]],
"top_cuisines": [["Italian", 12]]
}
}
}GET /health
Server health check with detailed metrics.
GET /stats
Storage statistics and server information.
GET /export
Export all stored data.
MCP Tools
fetch_swiggy_orders
Fetch and analyze Swiggy orders with intelligent caching
Parameters: cookies (required), days_back, start_date, end_date, force_refreshanalyze_food_habits
Comprehensive food habit analysis with insights
Parameters: cookies (required), days_back, force_refreshget_swiggy_stats
Get storage statistics and server information
Parameters: noneexport_swiggy_data
Export all stored order data
Parameters: include_orders (optional)๐ Usage Examples
Basic REST API Usage
import axios from 'axios';
// Fetch last 30 days of orders
const response = await axios.post('http://localhost:8001/fetch_orders', {
cookies: 'your_cookies_here',
days_back: 30
});
console.log(`Found ${response.data.total_orders} orders`);
console.log(`Total spent: โน${response.data.data.summary.total_spent}`);Comprehensive Analysis
# Run detailed food habits analysis
npm run client
# Run performance tests
npm run test
# Analyze specific time period
node test/client-example.js 90 --refresh๐ค AI Conversations That Will Blow Your Mind
Once installed, have natural conversations with Claude:
Financial Intelligence:
"I want to save โน2000 on food this month without feeling deprived" โ Claude: "I'll need your Swiggy cookies to analyze your orders first..."
"Show me my most expensive food mistakes and how to avoid them"
Health & Wellness:
"Rate my food choices this week and suggest healthier alternatives I'd actually enjoy"
"I'm trying to lose weight - what ordering patterns should I change?"
Behavioral Insights:
"Do I order differently when I'm stressed vs happy?"
"What does my food data say about my lifestyle and personality?"
Smart Planning:
"Plan a week of meals that match my taste preferences and budget"
"Which restaurants should I try next based on my flavor profile?"
๐ Security in Action: Claude will prompt you for cookies when needed - no setup required!
๐ Why Choose This Over Alternatives?
๐ vs. Manual Order History Checking
Feature | Manual Way | Swiggy AI Insights |
Time to Insights | Hours | Seconds |
Pattern Discovery | What you remember | AI finds hidden patterns |
Budget Analysis | Basic math | Deep financial intelligence |
Recommendations | Guesswork | Data-driven suggestions |
Trend Analysis | Impossible | Automatic with visualizations |
๐ vs. Other Food Analytics Tools
๐ง AI-Native: Built specifically for conversational AI, not dashboards
๐ Security-First: Never stores cookies (others require config files with credentials)
๐ก๏ธ Zero-Config Privacy: No sensitive data in files to accidentally leak
โก Performance: 60% faster than database-driven solutions
๐ฏ Swiggy-Optimized: Deep understanding of Indian food delivery patterns
๐ Open Source: Transparent, customizable, community-driven
๐ฏ Unique Value Propositions:
๐ Revolutionary Security: Never stores cookies (runtime-only approach others can't match)
๐งฌ Food Personality Profiling: No other tool analyzes your food psychology
๐ธ Hidden Money Patterns: Discover spending leaks others miss
๐ค Conversational Intelligence: Ask questions like talking to a food expert
๐ Predictive Analytics: Anticipate your needs before you know them
๐ Actionable Insights: Not just data - specific steps to improve
๐งช Testing
Performance Testing
npm run test
# Tests: health, stats, fetch orders, concurrent requests
# Reports: response times, performance metrics, recommendationsManual Testing
# Health check
curl http://localhost:8001/health
# Get statistics
curl http://localhost:8001/stats
# Test order fetching (replace with your cookies)
curl -X POST http://localhost:8001/fetch_orders \
-H "Content-Type: application/json" \
-d '{"cookies":"your_cookies", "days_back":7}'๐ Performance
Typical Response Times
Health check: 5-10ms
Stats endpoint: 10-20ms
Small dataset (< 100 orders): 15-30ms
Medium dataset (100-500 orders): 25-50ms
Large dataset (500+ orders): 40-100ms
Optimization Features
In-memory indexing for instant date lookups
Smart file monitoring to avoid unnecessary I/O
Efficient JSON structure with pre-built date indexes
Request throttling to respect Swiggy API limits
Concurrent request handling with Express.js
๐ ๏ธ Development
Available Scripts
npm start # Start REST API server
npm run mcp # Start MCP server for Cursor AI
npm run dev # Development mode with auto-restart
npm run test # Run performance tests
npm run client # Run food habits analysis
npm run setup # Automated setup and configuration
npm run clean # Clean data and log filesDevelopment Mode
# Start with auto-restart on file changes
npm run dev
# Enable debug logging
NODE_ENV=development npm startProject Scripts
# Setup new environment
./scripts/setup.sh
# Start server with options
./scripts/start.sh 8001 server # REST API on port 8001
./scripts/start.sh 8001 mcp # MCP mode
./scripts/start.sh 8001 dev # Development mode๐ Security & Privacy
๐ Superior Security Design
Never stores cookies: Unlike other tools, cookies are provided at runtime only
Zero configuration risk: No sensitive data in config files to accidentally commit
Your data stays local: All order data is stored locally on your machine
Git-safe by design: Impossible to leak credentials through version control
No data sharing: This tool never sends your data anywhere except to fetch from Swiggy
๐ก๏ธ Cookie Security
Runtime-only: Provide fresh cookies when Claude asks (most secure approach)
No persistence: Cookies are never written to disk or config files
Rotate freely: Get fresh cookies anytime by re-logging into Swiggy
Zero accident risk: No config files with sensitive data to accidentally share
Production Deployment
# Set production environment
export NODE_ENV=production
# Use PM2 for process management
npm install -g pm2
pm2 start index.js --name swiggy-mcp-server
# Setup reverse proxy with nginx
# Configure SSL/HTTPS for external access๐จ Troubleshooting
Common Issues
Server Won't Start
# Check Node.js version
node --version # Should be 18+
# Install dependencies
npm install
# Check port availability
lsof -ti:8001 | xargs killAuthentication Errors
Update cookies in
config/default.jsonRe-login to Swiggy and get fresh cookies
Verify cookie format is correct (long string with multiple
key=valuepairs)
Performance Issues
# Check data file size
ls -lh data/*.json
# Monitor memory usage
node --max-old-space-size=4096 index.js
# Enable debug mode
NODE_ENV=development npm startMCP Connection Issues
Verify server is running:
curl http://localhost:8001/healthCheck MCP config path is absolute
Restart Cursor AI after config changes
Debug Mode
# Enable detailed logging
NODE_ENV=development npm start
# Run specific tests
node test/performance.js
node test/client-example.js 30 --refresh๐ค Contributing
Development Setup
# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/swiggy-ai-insights.git
cd swiggy-ai-insights
# Install dependencies
npm install
# Make your changes
# Add tests if applicable
# Test your changes
npm run test
npm run client
# Submit a pull requestCode Style
Use ES6+ features and async/await
Follow modular architecture patterns
Add JSDoc comments for functions
Write descriptive commit messages
๐ Roadmap
Upcoming Features
Real-time Notifications: WebSocket support for live order updates
Advanced ML Analytics: Predictive ordering patterns
Multi-user Support: Separate data storage per user
Mobile App Integration: React Native companion app
Data Visualization: Chart generation endpoints
Export Formats: CSV, Excel, PDF export options
Performance Improvements
Data Compression: Gzip compression for large datasets
Database Integration: Optional MongoDB/PostgreSQL support
Caching Layer: Redis integration for high-traffic scenarios
Rate Limiting: Advanced API rate limiting
๐ Changelog
v2.0.0 (Current)
โจ Complete rewrite in Node.js with modular architecture
โก Significant performance improvements (~60% faster)
๐งฉ Separated concerns into modular components
๐ Enhanced MCP protocol compliance
๐ Advanced analytics and insights
๐งช Comprehensive testing suite
๐ Improved documentation
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
Swiggy for providing the order data API
Model Context Protocol team for the excellent MCP SDK
Node.js Community for the amazing ecosystem
Contributors who help improve this project
๐ Support
Issues: GitHub Issues
Documentation: This README and inline code comments
Community: Feel free to fork and contribute!
๐ Happy Food Data Analysis!
Built with โค๏ธ using Node.js and the power of food analytics
Built for the food lovers and data enthusiasts ๐๐
Available Tools
5 toolsget_analyticsC
Get comprehensive analytics from persistent storage
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date YYYY-MM-DD (optional) | |
| start_date | No | Start date YYYY-MM-DD (optional) | |
| analysis_type | No | Analysis type: summary, spending, timing, restaurants, cuisines | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get', implying a read, but does not mention potential side effects, performance implications, required permissions, or what 'persistent storage' implies. The description adds no meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-sentence description is short but contains filler phrases like 'comprehensive' and 'from persistent storage' that add no value. It lacks structured, front-loaded information that would help an agent quickly grasp key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations or output schema, and the description is minimal. It fails to explain how date ranges work, what the returned analytics represent, or how analysis_type changes the result. This simple tool still requires more context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. All three parameters (start_date, end_date, analysis_type) are described in the schema, including defaults. The description adds no parameter-specific meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'Get' and identifies 'analytics' as the resource, but 'comprehensive' is vague and does not specify what metrics or analysis types are included. It also does not differentiate the tool from siblings like get_orders or get_restaurants, which also fetch data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to choose this tool over alternatives. There is no mention of prerequisites, alternative tools, or exclusions. The agent must infer that this tool is meant for aggregated analytics rather than raw data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordersC
Get orders from persistent storage with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max orders to return (default: 50) | |
| end_date | No | End date YYYY-MM-DD (optional) | |
| start_date | No | Start date YYYY-MM-DD (optional) | |
| restaurant_name | No | Filter by restaurant name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only says 'Get orders', implying a read operation, but does not disclose whether it is read-only, how results are ordered, whether pagination applies, or any other behavioral traits. This is minimal beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the action 'Get' and the resource 'orders'. It contains no redundancy or filler words, making it highly efficient while still conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a relatively simple list tool but the description is insufficient for full contextual completeness. There is no output schema, and the description does not mention return format, ordering, pagination, or the impact of date filters. It lacks the behavioral context that would help an agent understand the full scope of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 4 parameters (limit, end_date, start_date, restaurant_name) individually documented. The description's mention of 'optional filtering' adds only a generic context and no specific parameter semantics, so the baseline score of 3 is appropriate given the schema already covers parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'orders', and adds context with 'from persistent storage' and 'optional filtering'. However, it does not distinguish this tool from the sibling 'search_orders', which may also retrieve orders, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_orders' or 'sync_orders'. There is no mention of prerequisites, common use cases, or exclusions, leaving the agent without direction for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_restaurantsB
Get all restaurants with order counts and spending stats
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date YYYY-MM-DD (optional) | |
| min_orders | No | Min orders to include restaurant (default: 1) | |
| start_date | No | Start date YYYY-MM-DD (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does but gives no details about pagination, ordering, rate limits, authentication, or side effects. This is a significant gap for a data retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the main action and resource. Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three optional parameters and no output schema, the description provides a basic sense of what it returns ('order counts and spending stats') but lacks details on return structure, filtering behavior, or how the parameters affect results. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for all three parameters (start_date, end_date, min_orders) with 100% coverage, so the baseline is 3. The tool description does not add any additional semantic meaning beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('restaurants') and states the data returned ('order counts and spending stats'). This clearly identifies the tool's purpose, but it does not explicitly distinguish it from sibling tools like get_orders or get_analytics beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving restaurant-level aggregate data, but it does not explicitly state when to use this tool versus alternatives, nor any exclusions or prerequisites. Usage context is inferred from the resource and data mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ordersA
Search orders by restaurant name, cuisine, or location
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default: 20) | |
| query | Yes | Search query (restaurant/cuisine/location) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the search action and criteria but does not mention whether the operation is read-only, if there are any side effects, how results are sorted, or whether pagination is applied. This lack of behavioral context is a significant gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource, and clearly communicates the searchable fields. There is no waste or redundancyโevery word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the schema's thorough parameter documentation, the description provides an adequate high-level overview. However, there is no output schema, so the description should explain what the search returns (e.g., a list of orders) and any limitations (e.g., default max results). It mentions neither, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage, describing both the 'query' parameter (with the same restaurant/cuisine/location hint) and 'limit'. The description adds little beyond restating the schema's own description, so it does not elevate the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Search orders') and defines the scope by specifying search criteria: restaurant name, cuisine, or location. This differentiates it from sibling tools like get_orders (likely fetching by ID) and sync_orders (synchronization).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: it is a search tool with specific filters, but it does not explicitly state when to prefer it over alternatives or provide exclusions (e.g., 'use get_orders for exact ID lookups'). The context is clear enough for an agent to infer its purpose, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_ordersB
Sync orders from Swiggy API to persistent storage
| Name | Required | Description | Default |
|---|---|---|---|
| cookies | Yes | Swiggy session cookies (required) | |
| max_orders | No | Maximum orders to fetch (default: 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention side effects such as whether existing data is overwritten, whether the sync is incremental or full, where the persistent storage is located, or any authentication/rate-limit considerations. For a mutating operation, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise, front-loaded sentence with no filler. It effectively communicates the core purpose and leaves space for schema to handle parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a side-effecting sync operation with no output schema, and the description provides no context on sync semantics, storage destination, or idempotency. Given the lack of annotations, the description is too shallow to fully prepare an agent for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete descriptions for both parameters (cookies required, max_orders with default). The description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Sync orders'), the resource ('orders'), the source ('Swiggy API'), and the destination ('persistent storage'). It distinguishes itself from sibling tools like get_orders and search_orders, which are read-only operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via the word 'sync' โ indicating persistence โ and contrasts with read-only siblings, but does not explicitly state when to choose this tool over get_orders or search_orders. It lacks clear when-to-use / when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v2.0.0- First observed
get_analytics - First observed
get_orders - First observed
get_restaurants - First observed
search_orders - First observed
sync_orders
TDQS
Scored across 5 tools
Each tool has a distinct role: ingest, query, restaurant stats, analytics, and text search. The only potential confusion is between get_orders and search_orders, but the descriptions clarify that one is for structured filtering and the other for text-based search.
All tools follow a consistent verb_noun pattern using snake_case (sync_orders, get_orders, get_restaurants, get_analytics, search_orders). The verbs are clear and the pattern is predictable.
With 5 tools, the set is well-scoped for the server's purpose of syncing Swiggy data and providing insights. Each tool earns its place without redundancy or unnecessary bloat.
The core workflow of syncing orders, querying orders, viewing restaurant stats, and getting analytics is covered. Minor gaps exist such as no explicit restaurant sync or order update/delete, but these are likely intentional for an analytics-focused server.
Maintenance
Related MCP Connectors
Insights for your iFood store right in your AI assistant's chat. Generate charts of sales and payout
Your personal data for AI โ Telegram, bank, courses, Zoom & more, scoped to you.
Search, save, organize, cook, and share recipes with any AI assistant.
- Era ContextOAuthapp.era
Personal finance, bank account, and shared memory connector for Claude, ChatGPT, Gemini Spark & more
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables Claude to automate grocery shopping on Blinkit, including product search, cart management, location setup, and payment via UPI.1446MIT
- AlicenseNot gradedqualityDmaintenanceExposes your Strava data to Claude, enabling training load analysis, activity comparison, and lap splits via conversation.10 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables users to plan meals and place orders across Swiggy Food, Instamart, and Dineout directly from Claude Desktop conversations.-
- AlicenseNot gradedqualityCmaintenanceEnables Claude.ai to read your MacroFactor nutrition data and log food back into MacroFactor.MIT