Skip to main content
Glama

Server Details

Find methadone and buprenorphine treatment near you.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: exact provider retrieval by slug, text/place/category search, aggregate statistics, and list endpoints for categories, places, and sources. The only potential overlap is get_listing vs search_listings, but one is exact lookup and the other is discovery, so boundaries are clear.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: get_*, list_*, search_*. The singular get_listing is a natural exception because it returns one provider.

Tool Count5/5

Six tools are well-scoped for a read-only directory API. Each covers a distinct discovery or metadata need without redundant endpoints.

Completeness4/5

The surface covers search, detail retrieval, category/place facets, aggregate statistics, and source provenance, which is strong for a read-only public data server. Minor gaps include no explicit browse-all listings endpoint and no single-category or single-place detail endpoint, though these can likely be worked around with existing list/search tools.

Available Tools

6 tools
get_listingA
Read-onlyIdempotent
Inspect

Get one published opioid treatment provider by its slug.

NameRequiredDescriptionDefault
slugYesThe listing slug.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is fully covered by structured data. The description does add one genuine behavioral fact beyond annotations: only published providers are returned, so unpublished slugs are out of scope. It omits what happens on a miss (error vs empty) and says nothing about the returned shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb and resource, with the lookup key trailing. There is no filler and nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with full annotation coverage and no output schema, the description is nearly sufficient: it conveys scope and the lookup key. The remaining gap is miss/error behavior for an unpublished or nonexistent slug, which an agent would want to know before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema constrains the slug with a pattern and length bounds, so the schema does the heavy lifting. The description only restates that the slug identifies the provider, adding no format or sourcing guidance beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and a precisely scoped resource (one published opioid treatment provider) plus the lookup key (slug). The singular 'one' implicitly contrasts with the plural search_listings sibling, but that sibling is never named, so differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'by its slug' conveys the precondition: you need an exact slug in hand, which routes an agent here only when it already has an identifier rather than search criteria. However, no alternative is named and no exclusion is stated (e.g., use search_listings when you only have a name or category).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statsA
Read-onlyIdempotent
Inspect

Get the number of published opioid treatment providers, places and categories, and when the data last changed.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, read-only, idempotent, non-destructive, closed-world operation. The description adds useful behavioral context beyond that by clarifying the data scope as 'published' and by disclosing that the result includes when the data last changed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that names the counts and the freshness indicator without filler. Every part of the sentence contributes to identifying the tool's output intent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only stats tool with rich annotations and no output schema, the description is largely complete: it identifies the counted entities and the last-changed timestamp. It could be slightly stronger by indicating the response structure, but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden on the description. The baseline score of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: retrieving counts of published opioid treatment providers, places, and categories, plus the last data change time. It is clearly an aggregate-stats tool rather than a listing/search tool, though it does not explicitly name sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description: use this tool when aggregate counts and freshness are needed. However, it gives no explicit when-to-use guidance, no exclusions, and does not directly compare itself with list_categories, list_places, or the other siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_categoriesA
Read-onlyIdempotent
Inspect

List categories with their opioid treatment provider counts.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds the useful return-shape hint (categories carry provider counts) but says nothing about result size, ordering, or whether empty categories appear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb and resource, with the provider-count detail appended where it belongs. Nothing wasted and nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-argument read-only listing with no output schema and no annotations gaps, the description covers what is returned well enough to call it correctly. Minor residual gap is that nothing explains ordering or how counts are scoped (national vs. filtered), though no filters exist here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there is nothing for the description to disambiguate; the schema is trivially complete at 100% coverage. Baseline for zero-param tools applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verb ('List') plus resource ('categories'), and it adds the distinguishing payload detail that each category comes with an opioid treatment provider count. It does not explicitly contrast with the nearby list_places / list_sources siblings, so an agent must infer the distinction from the resource name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: no statement of when to pick this over list_places or list_sources, and no prerequisites or exclusions. For a zero-parameter enumeration tool the intent is fairly self-evident, which keeps it at minimum-viable rather than failing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_placesA
Read-onlyIdempotent
Inspect

List countries, regions and cities that have opioid treatment providers.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already disclose that this is a read-only, idempotent, non-destructive, closed-world operation. The description adds useful scope by clarifying that only places with opioid treatment providers are returned, but it does not describe ordering, return structure, or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted language. It states the resource and the key filtering condition immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, no-parameter, read-only list tool with strong annotations, the description is largely complete. It tells the agent what is returned at a high level, though it could be slightly richer by noting whether the result is hierarchical or flat.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

This tool has zero parameters, so parameter semantics are not a meaningful burden. The baseline for a no-parameter tool is 4, and there is no parameter information that the description needs to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'List,' with a well-defined resource: countries, regions, and cities that have opioid treatment providers. It clearly distinguishes the tool's subject matter from siblings like list_categories and list_sources, though it does not explicitly name alternatives for disambiguation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the description: retrieve geographic locations that have providers. However, there is no explicit guidance on when to choose this over search_listings or other sibling tools, and no stated exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sourcesA
Read-onlyIdempotent
Inspect

List where the opioid treatment provider data comes from, with the license and refresh of each source.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered structurally. The description adds that each returned source carries license and refresh fields, which is useful since there is no output schema, but it says nothing about ordering, count, or whether the list is static.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that identifies the resource first and the returned fields second, with zero filler. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with full annotation coverage, the description supplies the one thing structured data does not: what each record contains (license, refresh). Only minor gaps remain, such as ordering or whether sources are fixed, which an agent can discover on first call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to explain; baseline 4 applies. The description correctly implies no filtering options are available.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and a specific resource (data provenance / 'where the opioid treatment provider data comes from'), plus the per-source payload (license and refresh). None of the siblings (get_listing, get_stats, list_categories, list_places, search_listings) could be confused with a source-attribution listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the mention of license and refresh signals this is the tool for attribution/compliance questions, but there is no explicit 'use this when...' or exclusion against siblings. No alternatives are named, though the zero-parameter shape makes selection low-risk.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_listingsB
Read-onlyIdempotent
Inspect

Search published opioid treatment providers by text, place and category.

NameRequiredDescriptionDefault
qNoSearch text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches.
cityNoCity slug, from /places.
sortNo`relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first.
limitNoItems per page.
cursorNo`page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`.
regionNoRegion slug, from /places.
countryNoISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400.
categoryNoCategory slug, from /categories. A parent slug also matches its children.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, destructive=false and closed-world, so the safety profile is fully covered. The description adds one genuinely new fact, that only 'published' providers are returned, but says nothing about result paging behavior or fallback semantics (typo/fuzzy matching) beyond what the schema states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource and facets come first. It is perhaps terse to a fault, but nothing in it is wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 optional parameters and no output schema, the description leans entirely on the well-documented input schema. It never mentions result shape, pagination via `page.nextCursor`, or that slug parameters require lookups from sibling tools, leaving meaningful gaps for a search endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the `sort` enum semantics and the `cursor` resend rule, so the schema carries the parameter burden and baseline is 3. The description's grouping of 'text, place and category' loosely maps to the q/city/region/country/category families but adds no format or precedence detail of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Search') and resource ('published opioid treatment providers') plus the three facets (text, place, category) the query can use. This clearly separates it from get_listing (single fetch) and list_categories/list_places (lookup lists). It stops short of naming those siblings alongside itself, but the boundary is obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by text, place and category' implies how to drive the tool, and 'published' hints at a scope restriction on results. However, there is no explicit statement of when to use this instead of get_listing or when to pre-fetch slugs via /places and /categories, so usage must be inferred.

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. 6 tool updates
    • First observedget_listing
    • First observedget_stats
    • First observedlist_categories
    • First observedlist_places
    • First observedlist_sources
    • First observedsearch_listings

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources