LowerScript Prescription Prices
Server Details
Live Rx cash prices at nearby pharmacies in 8 US states + the free LowerScript card. Not insurance.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: find_drug resolves drug names, get_prices fetches live pharmacy prices, and get_card returns static card details. There is no overlap or ambiguity between them.
All tool names follow the same lowercase verb_noun pattern: find_drug, get_card, get_prices. The naming is consistent and predictable.
Three tools is well-scoped for the server's purpose: resolving a drug, getting prices, and providing the discount card. Each tool earns its place with no redundancy.
The tool set covers the full prescription price lookup workflow: identify the drug, retrieve live prices, and access the card details needed to use the discount. No obvious dead ends or missing operations for the stated purpose.
Available Tools
3 toolsfind_drugFind a drugARead-onlyIdempotentInspect
Resolve free-text drug wording (brand or generic, English or Spanish) to the canonical LowerScript/RxSense drug: its known dosage forms, strengths, and a typical fill quantity. Cost/availability lookup only — never a substitute drug, never a dose recommendation, never priced (use get_prices for a price). Returns a "try another name" message when nothing matches.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Drug name in English or Spanish, brand or generic (e.g. "metformin", "Ozempic", "amoxicilina"). | |
| language | No | Response language. Defaults to English. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behaviorais. The description adds valuable behavioral context beyond these: it returns a 'try another name' message on no match, resolves only to canonical drug data, and clarifies it is cost/availability lookup only. There is no contradiction with the annotations.
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 description is compact and front-loaded: the main action and output are in the first sentence, followed by exclusions and the alternative tool, then the failure-mode message. Every sentence earns its place with no filler or repetition of the schema.
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 adequately conveys what the tool returns: canonical drug data including dosage forms, strengths, and fill quantity, plus a fallback 'try another name' message. It also covers the key limitation (no pricing) and routes to get_prices, so an agent has enough context to invoke the tool correctly without missing critical behavior.
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 the query and language parameters are already fully documented in the input schema. The description does not add much parameter-specific detail beyond stating the tool handles brands/generics and English/Spanish, which the schema also covers. This meets the baseline for fully documented schema parameters.
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 ('Resolve') and resource ('free-text drug wording' to 'canonical LowerScript/RxSense drug'), and enumerates what the resolution yields: dosage forms, strengths, and typical fill quantity. It also explicitly differentiates itself from get_prices by stating it is 'never priced' and directs the agent there for pricing.
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 description gives clear when-to-use context: resolving brand/generic drug wording in English or Spanish. It also provides explicit exclusions — 'never a substitute drug, never a dose recommendation' — and names the alternative tool get_prices for price lookups, making the routing decision unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cardGet the LowerScript cardARead-onlyIdempotentInspect
The static LowerScript/SingleCare discount card: RxBIN/RxPCN/RxGRP codes, how to use it at the pharmacy counter, wallet-pass and card-page links, member support, and the exact compliance wording (not insurance, up to 80%). No lookup involved — always the same answer for a given language.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Card language / RxGRP network. Defaults to English. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context beyond annotations: the tool is deterministic ('always the same answer'), returns a fixed set of card details, and does not perform variable lookups, which reinforces the closed-world and read-only nature.
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 description is a single, information-dense sentence that front-loads the core purpose ('the static LowerScript/SingleCare discount card') and then lists specific card components. While compact and without filler, the long enumerative structure could be slightly easier to parse if split, so it doesn't earn a perfect 5.
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 simple static tool with no output schema, the description gives a thorough list of what the response will contain, covering the return value context well. Combined with annotations that cover safety and idempotency, and a schema that documents the only parameter, nothing essential is missing for an agent to invoke the tool correctly.
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 schema fully describes the single 'language' parameter with enum values and a default, so schema coverage is 100%. The description only references 'for a given language' without adding new meaning about the parameter, so it stays at the baseline for a fully documented 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?
The description clearly identifies the tool as returning 'the static LowerScript/SingleCare discount card' and enumerates its exact contents (BIN/PCN/GRP codes, usage instructions, links, support, compliance wording). It distinguishes itself from siblings by explicitly stating 'No lookup involved — always the same answer for a given language,' setting it apart from find_drug and get_prices.
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 description provides clear context for when to use the tool by emphasizing that it returns a static, predetermined answer and involves no lookup. It implicitly contrasts with lookup-based siblings like find_drug and get_prices, though it does not name them explicitly or give explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesGet pharmacy pricesARead-onlyIdempotentInspect
Live cash prices for one drug at nearby pharmacies (up to 10, cheapest first, full spread shown — not just the lowest), using the LowerScript/SingleCare discount network. Carries the LowerScript card codes, a wallet-pass link, and the lowerscript.com page for the same answer. One drug per call — no bulk lookups. Requires a 5-digit US ZIP in a state LowerScript currently serves (FL, TX, AZ, NC, SC, GA, IL, CA); city/state alone is not yet supported. Cost and pharmacy information only — refuses any clinical question (dose, safety, interactions, pregnancy, starting or stopping a medicine) with no price.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | 5-digit US ZIP code. Required for a price — city/state alone cannot be geocoded by this tool yet. | |
| city | No | Optional city name, for context only. Does not replace zip — a price lookup still needs a 5-digit ZIP. | |
| drug | Yes | Drug name, English or Spanish, brand or generic. | |
| form | No | Optional dosage form, e.g. "tablet", "capsule", "pen", "inhaler". | |
| state | No | Optional 2-letter US state, for context only. Does not replace zip. | |
| language | No | Response language. Defaults to English. | |
| quantity | No | Optional fill quantity. Defaults to a typical fill size for the drug's own form (e.g. 30 tablets; 1 pen/inhaler). | |
| strength | No | Optional strength, e.g. "500 mg". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds rich behavioral detail: it returns the full price spread (not just lowest), includes LowerScript card codes and a wallet-pass link, and explicitly refuses clinical questions. No contradiction with annotations.
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 description is long but front-loaded with the core purpose, then systematically covers constraints, coverage, and exclusions. Every sentence adds essential information; no filler. A minor redundancy with the schema's city description, but overall efficient.
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?
Given 8 parameters, no output schema, and rich annotations, the description covers behavior, return contents, state coverage, and refusal logic. It even states what is not supported (city/state geocoding) and the language option. An agent can confidently call this tool without additional context.
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 covers 100% of parameters with descriptions. The description adds meaningful constraints beyond schema, such as 'One drug per call' and reinforces the ZIP requirement while noting city/state are context-only. It also explains the quantity default behavior, which is useful and not fully in 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?
The description opens with 'Live cash prices for one drug at nearby pharmacies', a specific verb, resource, and scope. It clearly distinguishes itself from the sibling tools by stating what it does not do (bulk lookups, clinical questions), and names the discount network and coverage limits.
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 description gives explicit usage constraints: one drug per call, requires a 5-digit ZIP in served states, and states what it refuses (clinical questions). It does not name the sibling tools directly, but the scope limitations make it clear when not to use this tool.
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.
3 tool updates
- First observed
find_drug - First observed
get_card - First observed
get_prices
Related MCP Connectors
US Rx prices by pharmacy + free discount card; also US equivalents of foreign brands, 12 languages
Free US drug-price benchmarks from federal data (CMS NADAC): a benchmark, not a price anyone owes.
US drug price benchmarks — what a pharmacy PAYS and what Medicare PAYS OUT.
Search US hospital prices, compare costs, and find insurance-negotiated rates.
Related MCP Servers
- AlicenseAqualityCmaintenanceGives AI assistants live access to US prescription drug prices by pharmacy with observation dates, the free discount card, and vetted US equivalents of foreign-brand medicines, all through the Model Context Protocol.10MIT

costkits-mcpofficial
AlicenseAqualityBmaintenanceProvides live US healthcare cost data including procedure cost estimates, provider pricing, insurance coverage rules, and medical bill analysis using real hospital transparency and CMS data.1246 npmMIT- FlicenseNot gradedqualityCmaintenanceProvides unified access to drug formulary data from US ACA marketplace health insurance plans, enabling drug search, coverage details, restriction info, and plan comparison across thousands of plans.-
- AlicenseNot gradedqualityCmaintenanceEnables querying US drug price benchmarks, including retail pharmacy NADAC acquisition costs and Medicare Part B ASP payment limits, with cross-reference by NDC and HCPCS codes, plus 340B covered entity and contract pharmacy lookups.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.