Dish Directory
Restaurants and their signature dishes across the US and Canada.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"dishdirectory": {
"url": "https://dishdirectory.com/mcp"
}
}
}Remote endpoints
https://dishdirectory.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢search_listings(q, country, region, city, category, ...)
Search published restaurants by text, place and category.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"country": {
"description": "ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400.",
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"region": {
"description": "Region slug, from /places.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
},
"city": {
"description": "City slug, from /places.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
},
"category": {
"description": "Category slug, from /categories. A parent slug also matches its children.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
},
"sort": {
"description": "`relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first.",
"type": "string",
"enum": [
"relevance",
"name",
"recent"
]
},
"limit": {
"default": 20,
"description": "Items per page.",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"cursor": {
"description": "`page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"additionalProperties": false
}🟢get_listing(slug)
Get one published restaurant by its slug.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"description": "The listing slug."
}
},
"required": [
"slug"
],
"additionalProperties": false
}🟢list_places
List countries, regions and cities that have restaurants.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_categories
List categories with their restaurant counts.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_stats
Get the number of published restaurants, places and categories, and when the data last changed.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_sources
List where the restaurant data comes from, with the license and refresh of each source.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Community
Evidence