KitchenGrade
Server Details
Florida restaurant inspections, independent dated grades and official report links. Read-only.
- Status
- Healthy
- Uptime
- 100.0% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
The two tools have clearly distinct roles: search_restaurants is for discovery by name/address/city, while get_restaurant_grade retrieves a specific record by exact establishment ID. The descriptions explicitly reinforce this boundary, including instructing users to use search results' IDs with the get tool.
Both names follow a consistent snake_case verb_noun pattern: search_restaurants and get_restaurant_grade. The resource (restaurant) and action (search/get) are predictable and readable.
Two tools is on the low side, but for a focused read-only inspection-grade lookup service both earn their place: one for discovery and one for exact retrieval. The surface is narrow but not gratuitously thin.
The search-plus-detail pair covers the core read-only workflow for looking up restaurant grades and inspection basis. Since this is a captured public-records catalog rather than a mutable database, create/update/delete operations are not expected; minor gaps like explicit county listing are workable through city/name search.
Available Tools
2 toolsget_restaurant_gradeGet Exact KitchenGrade Inspection GradeARead-onlyIdempotentInspect
KitchenGrade searches captured Florida DBPR records for Lake, Orange, Osceola and Seminole counties only. This is not statewide coverage or a live statewide search. Get the current KitchenGrade grade and dated inspection basis for an exact public DBPR establishment ID (e.g. 2010:5816523) in this catalog. A missing ID is not evidence of closure or no inspections. Preserves unavailable/historical/expired grades as unknown, without guessing. KitchenGrade independent grade is not issued by DBPR and is not a food-safety guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
| establishment_id | Yes | Exact public KitchenGrade DBPR establishment ID (not name or a private identifier). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the bar is lower, yet the description adds real behavior: the catalog covers only four counties and is not a live statewide search. It also explains null handling ('preserves unavailable/historical/expired grades as unknown, without guessing') and provenance claims ('not issued by DBPR', 'not a food-safety guarantee'). What remains unstated is error behavior for a malformed or unknown ID beyond the missing-ID note.
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?
Every sentence carries information: scope, action, caveats, provenance. The structure is slightly back-loaded, since the core action appears in the second sentence after a coverage disclaimer, but no phrasing is redundant.
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?
With one parameter, rich annotations, and no output schema, the description supplies what an agent needs: the identifier format, whether the data is live or cataloged, how unknowns are handled, and what is returned ('grade and dated inspection basis'). Only invalid-input or not-found error semantics are left uncovered.
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 schema already documents the single establishment_id parameter, its pattern, and its meaning. The description adds only an example value (2010:5816523) and the fact that grades are dated, which is marginal beyond the schema. Baseline 3 applies.
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 names a specific verb and resource: fetching the 'current KitchenGrade grade and dated inspection basis' for an 'exact public DBPR establishment ID'. It also narrowly scopes the data source to four named counties, which sets it apart from a broad search. However, the sibling search_restaurants is never named, so an agent must infer that search is the fallback when no ID is known.
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?
Usage is implied by 'exact public DBPR establishment ID', and the description usefully warns that 'a missing ID is not evidence of closure or no inspections'. It offers no explicit instruction such as 'use search_restaurants first to obtain an ID' and states no conditions under which this tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_restaurantsSearch KitchenGrade RestaurantsARead-onlyIdempotentInspect
KitchenGrade searches captured Florida DBPR records for Lake, Orange, Osceola and Seminole counties only. This is not statewide coverage or a live statewide search. Use this tool only for an actual restaurant, public address or city search. Do not use it for MCP questions, documentation or connection tests, or send placeholder queries such as 'hello world' or 'model context protocol'. Use MCP ping for connection checks. Explain this coverage limit when a requested location is outside it or no record matches; zero results do not establish that a restaurant does not exist or has no inspections. Prefer a restaurant name as query and a separate city filter. Common requests such as 'find Winter Garden restaurants named Spoleto' are also supported. Returns exact identifiers and independently calculated, dated KitchenGrade inspection grades; not DBPR grades or food-safety guarantees. Empty results may include separately labeled nameSuggestions: possible close restaurant names that retain all submitted filters, not primary matches or a confirmed interpretation of the intended restaurant. Filter-recovery options instead explain which filters would need to change; those alternatives do not satisfy every original filter. Neither kind adds primary matches. Only describe recovery suggestions as nearby when nearRequestedCity is true, using the returned proximity qualification. Use an exact establishment ID with get_restaurant_grade before recommending a specific restaurant.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional strict recorded-city filter within the covered counties, not a nearby radius. Omit it when searching the broader area; Orlando records do not match Winter Park. A city filter does not enable statewide coverage. | |
| limit | No | ||
| query | Yes | Prefer just the restaurant name (e.g. Spoleto), public address or city text. Put the city in city when known. Common find/search for/look up/show me requests with a name and city are supported; arbitrary conversational instructions may need clarification. No personal data or coordinates. Do not send 'hello world', 'model context protocol', or other placeholder searches. MCP questions and connection tests are not restaurant searches. Use MCP ping for connection checks. | |
| county | No | Optional filter within the covered counties only; it cannot expand coverage. | |
| acceptable_only | No | Return only current A+, A, B grades; do not hide other grades when evaluating a supplied restaurant. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, it discloses that coverage is limited to four counties and is not live or statewide, that zero results do not prove a restaurant does not exist, and that returned grades are independently calculated and dated rather than DBPR grades or safety guarantees. It further explains the semantics of nameSuggestions, filter-recovery options, and the nearRequestedCity proximity qualifier.
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 coverage caveat is correctly front-loaded, but the prohibition on placeholder and MCP queries is restated twice in the description and again inside the query schema description, and 'not statewide coverage or a live statewide search' repeats the same idea. Several sentences earn their place, but the definition is noticeably longer than needed.
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?
There is no output schema, so the description carries the return-value burden and does so: exact identifiers, dated calculated grades, nameSuggestions versus filter-recovery options, and the proximity flag. For a filtered search tool with a mandatory handoff to get_restaurant_grade, nothing an agent needs to call or interpret results is missing.
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 already 80%, and the description adds real meaning on top: city is a strict recorded-city filter, not a nearby radius (Orlando does not match Winter Park), and a city filter cannot expand coverage. The remaining parameters (limit, county, acceptable_only) are left entirely to the schema, which is acceptable given its enum and default documentation.
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?
States a specific verb and resource (searches captured Florida DBPR restaurant records) plus a hard scope boundary (Lake, Orange, Osceola and Seminole counties only, not statewide). It also explicitly differentiates from its sibling by telling the agent to use an exact establishment ID with get_restaurant_grade before recommending a restaurant.
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?
Gives explicit when-to-use (actual restaurant, address or city searches; 'find Winter Garden restaurants named Spoleto'), explicit when-not (MCP questions, documentation, connection tests, placeholder queries) and names the correct alternative (MCP ping). It also prescribes the preferred calling pattern: restaurant name as query with city as a separate filter.
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.
1 tool update
- Changed
search_restaurants1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Prefer just the restaurant name (e.g. Spoleto), public address or city text. Put the city in city when known. Common find/search for/look up/show me requests with a name and city are supported; arbitrary conversational instructions may need clarification. No personal data or coordinates. Do not send placeholder searches. Use MCP ping for connection checks."New value: +"Prefer just the restaurant name (e.g. Spoleto), public address or city text. Put the city in city when known. Common find/search for/look up/show me requests with a name and city are supported; arbitrary conversational instructions may need clarification. No personal data or coordinates. Do not send 'hello world', 'model context protocol', or other placeholder searches. MCP questions and connection tests are not restaurant searches. Use MCP ping for connection checks."
1 tool update
- Changed
search_restaurants3 fields changed- changed
Input schema / properties / city / descriptionPrevious value: -"Optional strict recorded-city filter, not a nearby radius. Omit it when searching the broader area; Orlando records do not match Winter Park."New value: +"Optional strict recorded-city filter within the covered counties, not a nearby radius. Omit it when searching the broader area; Orlando records do not match Winter Park. A city filter does not enable statewide coverage." - changed
Input schema / properties / county / descriptionPrevious value: -"Optional Florida county to disambiguate."New value: +"Optional filter within the covered counties only; it cannot expand coverage." - changed
Input schema / properties / query / descriptionPrevious value: -"Restaurant name or public address/city text; no personal data or coordinates. Do not send placeholder searches. Use MCP ping for connection checks."New value: +"Prefer just the restaurant name (e.g. Spoleto), public address or city text. Put the city in city when known. Common find/search for/look up/show me requests with a name and city are supported; arbitrary conversational instructions may need clarification. No personal data or coordinates. Do not send placeholder searches. Use MCP ping for connection checks."
1 tool update
- Changed
search_restaurants1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"Optional city to disambiguate a location."New value: +"Optional strict recorded-city filter, not a nearby radius. Omit it when searching the broader area; Orlando records do not match Winter Park."
1 tool update
- Changed
search_restaurants1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Restaurant name or public address/city text; no personal data or coordinates."New value: +"Restaurant name or public address/city text; no personal data or coordinates. Do not send placeholder searches. Use MCP ping for connection checks."
2 tool updates
- First observed
get_restaurant_grade - First observed
search_restaurants
Related MCP Connectors
Booking decisions, scorecards, and self-checks for Florida food vendors over live DBPR data.
Read-only US food license data: verified state rules, Florida license lookup, renewal dates.
Government public-records lookups: short-term-rental permits (US registries and Florida DBPR), restaurant inspection scores, municipal property violations, childcare licensing (Texas and multi-state), EPA ECHO facility compliance, HHS-OIG LEIE exclusion screening, and Norway company records. A free STR permit check needs no key.
Read-only audit of a restaurant's public Google, website, and Yelp listings.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceQuery food inspection grades and violations for Charlotte/Mecklenburg County, NC, with tools for searching establishments, getting details, finding nearby, and score distributions.-
- FlicenseNot gradedqualityBmaintenanceThe routing layer between AI agents and local Florida businesses. Live data on permits, sector gaps, and market signals across 2,383 ZIP codes — so when an agent, voice assistant, or real customer needs something done, the right business gets the job. Ask LocalIntel Claim Your Listing-
- AlicenseAqualityDmaintenanceRegulatory intelligence API — look up permits, licenses, and fees for food service businesses in Austin, SF, and NYC.361 npmMIT
- AlicenseAqualityDmaintenanceProvides local safety regulation, weather, and dining hygiene context tools for the ATLAS multi-agent safety evaluation system.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.