Skip to main content
Glama

Drug Prices

B340 Contract Pharmacies

b340_contract_pharmacies
Read-onlyIdempotent

List the contract pharmacies a 340B covered entity dispenses through, or work backwards from a pharmacy chain to the covered entities it serves. Returns pharmacy name, city, state, contract begin date and termination date. Answers how large a hospital 340B pharmacy network is, which chains a health center contracts with, and how many 340B relationships a chain like Walgreens or CVS holds in a state.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows, default 25, max 200.
stateNoRestrict to pharmacies in this state ("TX" or "Texas").
id340bNoThe covered entity, e.g. "DSH340075H". Give this or `pharmacy`.
pharmacyNoMatch part of a pharmacy name, e.g. "Walgreens". Give this or `id340b`.
include_terminatedNoInclude contracts whose termination date has passed. Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds non-obvious behavior: it returns pharmacy name/city/state/contract begin and termination dates, and it can act as a reverse lookup from pharmacy chain to covered entities.

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?

Three sentences, each earning its place: the first defines the operation and reverse mode, the second states the return fields, and the third gives concrete questions it answers. No filler or duplication of schema details.

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

Completeness5/5

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

Combined with the fully described schema and annotations, the description is enough for an agent to select and call the tool correctly. It covers the two access patterns, return fields, and motivating use cases, and no output schema is needed because the return fields are named directly.

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?

Input schema covers 100% of parameters with descriptions, so the baseline is 3. The description's references to 'covered entity' and 'pharmacy chain' reinforce the id340b and pharmacy parameters, but it doesn't add syntax or format details beyond the schema.

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 names a specific verb ('List') and resource, and immediately clarifies the two supported directions: covered entity → pharmacies and pharmacy chain → covered entities. This makes it easy to distinguish from sibling tools like b340_covered_entities even without opening the schema.

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?

It gives concrete use cases ('how large a hospital 340B pharmacy network is', 'which chains a health center contracts with', 'how many 340B relationships a chain like Walgreens or CVS holds') that tell the agent when to invoke it. It stops short of explicitly contrasting it with sibling tools such as b340_covered_entities, so it loses the fifth point.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.