Skip to main content
Glama

Server Details

DEA registration & controlled-substance authority tracking for prescribers — read-only demo.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct query type: export, summary, expiring list, expired list, and search. There is no overlap in purpose, and an agent should easily select the correct tool for a given task.

Naming Consistency4/5

Most tools follow a consistent snake_case verb_noun pattern (export_registration_report, get_authority_summary, search_registrations). The naming is mostly consistent, though list_cannot_prescribe deviates by using a verb phrase as the object rather than a simple noun.

Tool Count5/5

Five tools is well-scoped for a focused reporting/monitoring server. Each tool covers a distinct query need without redundancy or bloat.

Completeness4/5

The set covers the main read-only workflows: listing expiring registrations, identifying expired ones, searching, summarizing, and exporting reports. There is a minor gap in lacking a dedicated 'get single registration detail' tool, but search likely fulfills that need.

Available Tools

5 tools
export_registration_reportAInspect

Export the full controlled substance registration report as CSV text (prescriber, registration, expiry, status, reminder history).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It states the output format (CSV text) and the included fields, which is useful. However, it does not disclose potential side effects (e.g., whether this is a read-only operation), performance implications (e.g., large data volume), or any authentication/authorization requirements. The description is adequate but lacks depth on behavioral traits beyond the basic output.

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, concise sentence that front-loads the action ('Export the full controlled substance registration report') and specifies the format and content. Every word earns its place, with no redundancy or filler. It is appropriately sized for a parameterless tool.

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?

Given the tool has no parameters and no output schema, the description is largely complete for an agent to understand what the tool does and what it returns. The only minor gap is the lack of explicit behavioral context (e.g., read-only nature, potential size), but for a simple export tool, the description covers the essential information. Sibling tools are listed, providing some context for differentiation.

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, and the schema description coverage is 100% (empty properties). The description adds value by explaining what the report contains and the format, which is the only meaningful semantic information for a parameterless tool. Since there are no parameters to document, the baseline of 4 is appropriate, and the description effectively communicates the tool's output.

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?

The description clearly states the tool's function: exporting a full controlled substance registration report as CSV text. It specifies the resource (controlled substance registration report), the format (CSV text), and the included fields (prescriber, registration, expiry, status, reminder history). This distinguishes it from sibling tools like get_authority_summary or search_registrations, which are more focused on summaries or searching.

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

Usage Guidelines4/5

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

The description implies usage for obtaining a complete export of registration data, which is distinct from the sibling tools that provide summaries or filtered views. However, it does not explicitly state when to use this tool versus alternatives, such as 'use search_registrations for filtered queries' or 'use get_authority_summary for a summary.' The context is clear enough for an agent to infer the primary use case, but explicit exclusions or alternatives are missing.

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

get_authority_summaryAInspect

Get the controlled substance authority summary: totals for tracked registrations, renewals not started, expired, due in 30 days, and awaiting issue.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Without annotations, the description carries the burden of behavioral disclosure. It clearly indicates this is a read-only operation (retrieves a summary) and specifies the exact categories included, which avoids surprises. However, it doesn't detail return format or whether any state is affected, but for a read-only summary, this is sufficient.

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, focused sentence that front-loads the main purpose (get summary) and then lists the specific contents. No wasted words; it precisely describes what the tool does without unnecessary detail.

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, no-output-schema tool, the description is complete enough to understand the tool's role. It lists all summary categories, which is the key information an agent needs to invoke it correctly. Minor gaps like explanation of each category's definition could exist, but they are well implied by the names.

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 no parametersached, and schema coverage is 100% (it acknowledges no properties). The description compensates by explaining what data the summary contains, which adds meaning beyond the empty schema. Since there are no parameters, this meets the need adequately.

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 clearly states the tool retrieves a controlled substance authority summary and enumerates the included totals (tracked registrations, renewals not started, expired, due in 30 days, awaiting issue). This is a specific resource with a clear purpose, though it doesn't explicitly differentiate from siblings; the listed contents help distinguish it implicitly.

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 description implies this is for getting a high-level summary rather than detailed searches (like search_registrations) or specific expiring registrations (get_registrations_expiring). However, it doesn't explicitly state when to use this tool versus alternatives, nor does it mention any conditions like required permissions.

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

get_registrations_expiringAInspect

List controlled substance registrations expiring within the next N days (default 90), including state CSRs and mid-level registrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook-ahead window in days (default 90).

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It adds useful context: it includes state CSRs and mid-level registrations, and sets a default 90-day window. However, it does not explicitly state that it is read-only, nor does it mention return format, pagination, or any side effects. It implies a read operation via 'List' but leaves significant behavior unspecified.

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 redundant words. It states the verb, resource, scope, and a key default. Every word earns its place.

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?

For a simple one-parameter tool with no output schema, the description covers the purpose and the default window adequately. However, it omits any detail about the response structure (e.g., what fields are returned), which is often needed for an agent to correctly consume the output. Given the absence of an output schema, this is a notable but not critical gap.

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% — the schema already describes the 'days' parameter as 'Look-ahead window in days (default 90)'. The description repeats this default without adding new meaning. Per the baseline rule for high schema coverage, a score of 3 is appropriate.

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 precise resource ('controlled substance registrations expiring within the next N days'), and further clarifies scope by mentioning 'including state CSRs and mid-level registrations'. This clearly distinguishes it from sibling tools like search_registrations (general lookups) and export_registration_report (exports).

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 description implies usage: if you need expiring registrations, use this tool. However, it does not explicitly state when not to use it or name alternatives (e.g., search_registrations for broader queries). Context is clear but exclusions are absent, so it falls at 'implied usage' level.

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

list_cannot_prescribeAInspect

List prescribers whose DEA registration or state controlled substance license has expired — the practitioners who cannot legally write controlled prescriptions right now.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the burden. 'List' implies read-only behavior Agency, but it does not describe output contents, ordering, or how it treats prescribers with no license at all.

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, focused sentence stating the exact entity and condition; no filler or boilerplate.

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 listing tool, the description gives enough context to select it: a list of prescribers with lapsed controlled-substance credentials. It does not enumerate expected return fields, but the empty schema makes invocation trivial.

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 input schema has no documented parameters, but the description clarifies the conceptually important filter (expired credentials), so there is no ambiguity about required inputs.

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 action ('List') on a specific resource ('prescribers') with a precise criterion ('DEA registration or state controlled substance license has expired') and the practical consequence ('cannot legally write controlled prescriptions right now').

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

Usage Guidelines4/5

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

The description gives clear context for when the tool applies (currently expired credentials). It does not explicitly name sibling tools or exclusion criteria, so it loses the top score on explicit routing.

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

search_registrationsAInspect

Search controlled substance registrations by prescriber name, registration type, or location. Returns matching records with expiry date and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoText to match against prescriber or registration (case-insensitive; shorthand like "CSL" or "DEA number" works). Omit to list everything.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool returns matching records with expiry and status, but it does not explicitly declare that the operation is read-only, nor does it disclose potential side effects, permissions, or rate limits. The behavior implied is safe, but not explicitly stated, leaving the agent to infer safety from the verb 'search'.

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?

Two sentences with no redundant words. The purpose is front-loaded, and the return information is concise. Every word contributes to understanding the tool, making it an example of efficient structure.

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 single-parameter search tool with no output schema, the description covers the essential invocation details: what it searches, what it returns. The parameter schema fills the remaining gaps (omit to list everything). It does not mention pagination or limits, but these are not critical for a simple search tool in this context, so the description is largely complete.

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 schema already documents the query parameter with 100% coverage, including case-insensitivity and shorthand examples. The description adds meaning by specifying that the query can match 'prescriber name, registration type, or location', which clarifies the search scope beyond the schema's 'prescriber or registration'. This additional semantic detail earns a score above the baseline of 3.

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?

The description states a clear purpose: 'Search controlled substance registrations by prescriber name, registration type, or location.' This specifies the verb, resource, and search dimensions, distinguishing it from siblings like get_registrations_expiring (expiring records) or export_registration_report (export). It is unambiguous and directly conveys what the tool does.

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 description implies usage for general searching but does not explicitly say when to use this tool instead of alternatives, nor does it mention exclusions or alternative tools. There is no guidance on when to prefer a sibling tool, so usage context is only implicit.

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. 5 tool updates
    • Changedexport_registration_report1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedget_authority_summary1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedget_registrations_expiring2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist_cannot_prescribe1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedsearch_registrations2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 5 tool updates
    • First observedexport_registration_report
    • First observedget_authority_summary
    • First observedget_registrations_expiring
    • First observedlist_cannot_prescribe
    • First observedsearch_registrations

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Source-provenanced US federal healthcare provider data over MCP. Resolve any NPI or CCN across NPPES, OIG LEIE, SAM.gov, state Medicaid exclusions, CMS PECOS, Care Compare, and Open Payments — every field carries a 14-field provenance contract, and an "excluded or compromised anywhere" check runs on every lookup.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Read-only MCP server providing a validated public preview of behavioral-health NPIs newly present in CMS pending first-time Medicare enrollment files, including state/specialty counts and official methodology.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only access to public U.S. healthcare market-intelligence datasets, including catalogs, schemas, metadata, checksums, and artifact URLs. It supports CMOs, analysts, researchers, and AI agents in discovering and consuming governed market observations without patient-level data.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Provides safe read-only access to synthetic healthcare data via FHIR R4, enabling AI assistants to search patients, retrieve vitals, and summarize conditions using a public sandbox.
    4
    7 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources