IndiaRestros

5 lakh+ Indian restaurants: menus with prices, timings, phones and dish search. Free, no API key.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
74%
Naming quality
95%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_menu' description lacks action verbin get_menu
  • INFOTool description contains placeholder or incomplete textin get_restaurant

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,531Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.20% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://indiarestros.com/mcp"
    }
  }
}

Remote endpoints

https://indiarestros.com/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_restaurants(q, city, locality, lat, lon, ...)

Find restaurants, cafes, dhabas, bakeries, bars and sweet shops by words and place. Returns id, name, kind, cuisines, locality, city, url and whether a phone number is on file.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 200,
      "description": "Name, dish or cuisine words. \"biryani in kondapur\" also works."
    },
    "city": {
      "type": "string",
      "maxLength": 60,
      "description": "City slug, e.g. bengaluru, mumbai, delhi, hyderabad, chennai, pune, kolkata"
    },
    "locality": {
      "type": "string",
      "maxLength": 80,
      "description": "Area slug within the city, e.g. indiranagar, koramangala, bandra-west"
    },
    "lat": {
      "type": "number",
      "minimum": 6,
      "maximum": 37.5
    },
    "lon": {
      "type": "number",
      "minimum": 67,
      "maximum": 98.5
    },
    "radius_m": {
      "type": "integer",
      "minimum": 100,
      "maximum": 25000,
      "description": "With lat/lon, default 3000"
    },
    "kind": {
      "type": "string",
      "enum": [
        "restaurant",
        "cafe",
        "bakery",
        "fast-food",
        "bar",
        "sweets",
        "dhaba",
        "food-court"
      ]
    },
    "cuisine": {
      "type": "string",
      "maxLength": 40,
      "description": "Cuisine slug: north-indian, south-indian, biryani, chinese, pizza, cafe, desserts, street-food, ..."
    },
    "diet": {
      "type": "string",
      "enum": [
        "pure-veg",
        "halal"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_restaurant(id)

Full record by id (IRR-XXXXXXXXXX or the 10-char code at the end of its url): address, geo, phones, website, timings (raw + parsed, open_now in IST), cuisines, diet, ratings, menu summary, sources and confidence.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 14
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_dishes(q, city, locality, veg, max_price, ...)

Find specific dishes on restaurant menus across India: item name, price in INR, veg/non-veg, menu section, and the restaurant (name, area, url). E.g. q "paneer tikka" city "bengaluru" max_price 300 veg true, or "masala dosa in indiranagar". Covers restaurants whose menus we hold (growing daily); if nothing is found, fall back to search_restaurants with the dish words.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 200,
      "description": "Dish words; \"biryani in kondapur\" also works"
    },
    "city": {
      "type": "string",
      "maxLength": 60
    },
    "locality": {
      "type": "string",
      "maxLength": 80
    },
    "veg": {
      "type": "boolean",
      "description": "true = vegetarian items only"
    },
    "max_price": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100000,
      "description": "INR"
    },
    "lat": {
      "type": "number",
      "minimum": 6,
      "maximum": 37.5
    },
    "lon": {
      "type": "number",
      "minimum": 67,
      "maximum": 98.5
    },
    "radius_m": {
      "type": "integer",
      "minimum": 100,
      "maximum": 25000
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 60
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_menu(id)

Menu sections and items with prices in INR and veg/non-veg marks, with the menu source and date. Null when no menu is on file.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 14
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_places(type, parent, limit)

Browse the place hierarchy with restaurant counts. type=state (all), type=city with parent=state:<slug>, type=locality with parent=city:<slug>.

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "state",
        "city",
        "locality"
      ]
    },
    "parent": {
      "type": "string",
      "maxLength": 80
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "type"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_place(id)

A city (city:<slug>) or area (loc:<city>:<area>) with counts by kind and cuisine and its areas.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 5,
      "maxLength": 120
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪report_correction(id, field, value, evidence_url)

Tell IndiaRestros that something is wrong: a dead phone number, new timings, a closure, a move. Checked before it goes live. Ask the user before sending.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 14
    },
    "field": {
      "type": "string",
      "enum": [
        "phone",
        "hours",
        "closed",
        "moved",
        "name",
        "website",
        "menu",
        "other"
      ]
    },
    "value": {
      "type": "string",
      "minLength": 2,
      "maxLength": 600,
      "description": "The correct value or what happened"
    },
    "evidence_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "id",
    "field",
    "value"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢about_dataset

Counts, sources, top cities, how ranking works and how to read confidence.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools