soberbars
Server Details
Find alcohol-free bars and bottle shops by city.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 6 tools
Each tool has a distinct purpose: get_listing fetches a single venue by slug, search_listings searches venues, list_categories/list_places/list_sources enumerate different resources, and get_stats provides aggregates. There is no overlap in action or resource type, so an agent can easily select the right tool.
All tool names follow a strict verb_noun pattern in snake_case (get_*, list_*, search_*). The convention is used uniformly across all six tools with no deviations.
Six tools are well-scoped for a read-only directory API covering venues, categories, places, sources, and stats. Each tool earns its place and there is neither redundancy nor a missing core operation.
The surface covers single-item retrieval, search, and enumeration of all related resources, which handles typical discovery workflows. Minor gaps like retrieving a specific place or category by identifier are absent, but agents can work around this via the list tools.
Available Tools
6 toolsget_listingARead-onlyIdempotentInspect
Get one published alcohol-free venue by its slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The listing slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds one meaningful behavioral detail beyond them — 'published' implies drafts/unpublished venues are excluded — but says nothing about error behavior (slug not found) or return shape.
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?
One sentence, front-loaded with verb and resource, zero filler. Nothing can be trimmed without losing the lookup-key or 'published' qualifier.
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?
For a single-parameter, non-destructive lookup with full annotation coverage and no output schema, the description is nearly sufficient. The only gaps are the not-found/error behavior on an unknown slug and any hint at the returned listing fields.
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 description coverage is 100% with a single 'slug' parameter already documented, patterned and length-bounded in the schema. 'By its slug' merely restates the parameter, so the baseline 3 applies — the description adds no format or constraint detail beyond the schema.
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 (Get), a precise resource (one published alcohol-free venue), and the lookup key (by its slug). It implicitly contrasts with the sibling search_listings (single-item retrieval vs search), but does not name any sibling explicitly.
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 only implied: 'by its slug' signals a direct key-based lookup as opposed to a search, which is the natural distinction from search_listings. There is no explicit when-to-use statement, no mention of the alternative tool, and no note about what to do when the slug is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statsARead-onlyIdempotentInspect
Get the number of published alcohol-free venues, places and categories, and when the data last changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds useful behavioral context by disclosing the exact aggregate content returned, including a last-changed timestamp, which matters since no output schema exists.
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?
A single front-loaded sentence with no filler; every clause names a distinct piece of information the tool returns.
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?
For a no-parameter read-only stats tool the description is largely sufficient, naming both the counts and the freshness timestamp in the absence of an output schema. It could be marginally stronger by noting the return format (e.g. numeric counts, timestamp shape), but nothing essential 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?
The tool takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies. No parameter-level guidance is needed or missing.
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 states a specific verb and resource set ('Get the number of published alcohol-free venues, places and categories') plus a temporal metric ('when the data last changed'). It is inherently distinct from the list_*/search_* siblings, though it never names them explicitly.
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 only implied: an agent can infer this is for aggregate counts rather than enumerating entities, which separates it from get_listing and search_listings. There is no explicit when-to-use/when-not statement or reference to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesARead-onlyIdempotentInspect
List categories with their alcohol-free venue counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds one piece of behavioral context — that results are paired with alcohol-free venue counts — but says nothing about ordering, empty categories, or refresh/rate behavior.
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?
A single sentence, front-loaded with the verb and resource, and the qualifying detail is appended rather than padded. Nothing here is redundant with the schema or annotations, so 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?
With no output schema, the description carries the burden of hinting at the return shape; it names categories and venue counts but not the actual fields (id, name), sorting, or whether zero-count categories appear. Adequate for a trivial read-only enumerator, but not fully self-contained.
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?
There are zero parameters, so the baseline is 4 and there is no per-parameter meaning the description could or should supply. No syntax or format detail is needed for an argument-free call.
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 ('List categories') and adds scope detail ('with their alcohol-free venue counts'), so the agent immediately knows what comes back. It does not, however, explicitly distinguish itself from siblings like get_stats or list_sources, so it stops short of a 5.
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 only implied by the tool name and the returned 'venue counts' framing; there is no explicit when-to-use, when-not-to-use, or alternative named. For a zero-argument enumerator the intended use is fairly self-evident, which keeps this at a minimum-viable 3 rather than a 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_placesARead-onlyIdempotentInspect
List countries, regions and cities that have alcohol-free venues.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety and determinism profile is fully covered by structured data. The description's only addition is the result-scoping constraint (only places with alcohol-free venues), which is useful but does not disclose return shape, ordering, or size limits.
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?
A single sentence that front-loads the verb and resource and adds exactly one qualifying clause. No filler, no repetition of the tool name, nothing to trim.
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?
For a zero-parameter, read-only list tool with annotations covering safety and no output schema to explain, this is nearly complete. The remaining gap is that it does not say what a returned place looks like or whether the list is exhaustive, which an agent would need in order to chain into search_listings.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool is 4. The description correctly spends no effort restating an empty schema.
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?
It pairs a specific verb ("List") with a concrete resource and enumerates the granularity (countries, regions, cities), plus a scoping qualifier ("that have alcohol-free venues"). That is enough to tell it apart from get_stats or search_listings, but it never names or contrasts the closest siblings (list_categories, list_sources), so the differentiation is implicit rather than stated.
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 domain qualifier "that have alcohol-free venues" implies the tool is a discovery step for finding places worth searching within, which is a usable hint. However, there is no explicit when-to-use, no mention of search_listings as the follow-up, and no stated exclusions, so the agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesARead-onlyIdempotentInspect
List where the alcohol-free venue data comes from, with the license and refresh of each source.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds what content comes back (license and refresh per source), which is useful context, but says nothing about ordering, pagination, or caching behavior.
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?
A single front-loaded sentence that names the resource and the two data points returned, with no filler or repetition.
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?
For a zero-argument, read-only lookup with no output schema, the description is sufficient: it tells the agent what the tool covers and roughly what it yields. It could be stronger by noting that no filtering or arguments are accepted.
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 tool takes zero parameters and the schema coverage is 100%, so there is nothing for the description to disambiguate. Baseline 4 for a parameterless tool 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 gives a specific verb ('List') and resource ('where the alcohol-free venue data comes from'), which is clearly distinct from the sibling resources (categories, places, listings). It stops short of naming any sibling alternative explicitly, but the resource is unambiguous.
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?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative is named. Usage is only implied: an agent can infer this tool answers provenance/licensing questions rather than venue search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_listingsARead-onlyIdempotentInspect
Search published alcohol-free venues by text, place and category.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches. | |
| city | No | City slug, from /places. | |
| sort | No | `relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first. | |
| limit | No | Items per page. | |
| cursor | No | `page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`. | |
| region | No | Region slug, from /places. | |
| country | No | ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400. | |
| category | No | Category slug, from /categories. A parent slug also matches its children. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld=false, so the safety profile is covered. The description adds only the 'published' visibility scope; it says nothing about pagination behavior or result caps beyond what the schema implies.
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?
A single front-loaded sentence with no filler or restated name. It is tight, though its brevity means it carries little beyond the headline 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?
With 8 optional params, 100% schema coverage, rich annotations and no output schema, the structured fields carry most of the load and the description need not explain returns. It is largely adequate, though a hint about result volume or pagination would round it out.
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 description coverage is 100%, so every parameter (q, city, region, country, category, sort, limit, cursor) is fully documented in the schema. The description's 'text, place and category' loosely maps to those facets but adds no syntax or format detail beyond it, so the 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?
States a specific verb and resource ('Search ... venues') and adds a meaningful scope qualifier ('published alcohol-free'). However it never names or contrasts with siblings like get_listing or list_categories, so differentiation is left to inference.
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?
'by text, place and category' implies which facets drive a search, giving implicit usage context. There is no explicit when-to-use guidance, no statement of when to prefer list_categories/list_places over searching, and no exclusions.
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.
6 tool updates
- First observed
get_listing - First observed
get_stats - First observed
list_categories - First observed
list_places - First observed
list_sources - First observed
search_listings
Related MCP Connectors
Human-verified directory of non-alcoholic bars: 1,500+ venues in 70 cities, rated and re-checked.
Find gluten-free and celiac-friendly restaurants, bakeries and cafés in any city, on a map.
Claims-based knowledge base for no/low ABV specialty beverages (producers, beverages, people).
Related MCP Servers
- AlicenseAqualityCmaintenanceSearch 12,338 curated, SAMHSA-sourced addiction treatment facilities across all 50 US states.4MIT

Find Sauna Plungeofficial
AlicenseAqualityAmaintenanceCold plunge, sauna and contrast-therapy venues across 23 US metros (548 venues). Every published water temperature and price is read from the venue's own pages and returned with its source URL, capture date and verbatim quote; every record carries the date it was last checked. Absent fields mean "not published", never zero. Five read-only tools: search_venues, get_venue, list_cities, get_city_stat5MIT- -
- AlicenseAqualityDmaintenanceEnables discovery and scoring of independent local businesses by inverting algorithmic rankings that favor chains, using Google Places API with an opinionated independence-scoring engine.5Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.