Skip to main content
Glama

LowerScript Prescription Prices

Server Details

Live Rx cash prices at nearby pharmacies in 8 US states + the free LowerScript card. Not insurance.

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
Uptime
99.8% over 24 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: find_drug resolves drug names without pricing, get_card returns static discount card info, and get_prices provides live cash prices. The descriptions explicitly reinforce boundaries (e.g., find_drug says 'use get_prices for a price').

Naming Consistency4/5

All names follow a snake_case verb_noun pattern, but the verb varies ('find' vs 'get'). This is a minor deviation that remains readable and predictable enough.

Tool Count5/5

Three tools are well-scoped for a prescription discount service: one to resolve drugs, one for static card details, and one for live prices. Each earns its place without redundancy.

Completeness4/5

The core workflow (resolve drug, get card info, fetch prices) is fully covered. Minor gaps exist, such as no dedicated tool for listing supported states or pharmacies, but these are handled inline by existing tools or descriptions.

Available Tools

4 tools
compare_canadaCompare Canadian and U.S. prices
Read-onlyIdempotent
Inspect

Use this when someone asks about buying prescription medicine from Canada, Canadian pharmacy prices versus U.S. prices, or what the October 22, 2026 change (the end of the "de minimis" shipping exemption) means for a Canadian mail-order refill. Give 1 to 5 medicine names (brand or generic, English or Spanish, any capitalization) from LowerScript's list of medicines people buy from Canada plus the caller's 5-digit ZIP in a state LowerScript serves (FL, TX, AZ, NC, SC, GA, IL, CA). For each medicine it returns the Canadian last-listed price exactly as captured (price, pack, strength, origin, source pharmacy, capture date; shipping not included), today's lowest LowerScript cash price near the ZIP for the brand and the generic when the exact same strength and quantity is priced (pharmacy and as-of date), a verdict (lower_here, lower_canada, same, compare_packs or no_price) computed only on exact matches and never scaled across strengths or packs, whether the medicine is on the Medicare-negotiated list, and links to the state's Canada page, the medicine's brand page (Florida example) and the price check. Names not on the list come back in not_found with a pointer to the price check. One internal price lookup per call. Cost information only: it refuses clinical questions (dose, safety, interactions, starting or stopping a medicine). LowerScript is a prescription discount program, not insurance.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipYes5-digit US ZIP code in FL, TX, AZ, NC, SC, GA, IL or CA. Used to find today's LowerScript prices nearby and to link the right state page.
langNoResponse language. Defaults to English.
drugsYes1 to 5 medicine names, brand or generic (e.g. "Eliquis", "apixaban", "Januvia"). Matching is case- and accent-insensitive against the Canada comparison list.
find_drugFind a drugA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesDrug name in English or Spanish, brand or generic (e.g. "metformin", "Ozempic", "amoxicilina").
languageNoResponse language. Defaults to English.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 cardA
Read-onlyIdempotent
Inspect

The static LowerScript 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoCard language / RxGRP network. Defaults to English.

TDQS

A4.2/5.0
Behavior4/5

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 real value beyond that: it is "static," involves "no lookup," and is deterministic ("always the same answer for a given language"), reinforcing the idempotent hint with concrete behavior.

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?

It is a single front-loaded sentence led by the resource, with the determinism caveat closing it out. Dense but every clause maps to a distinct piece of returned content, with little waste.

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?

With no output schema, the description carries the burden of describing returns and does so thoroughly: codes, usage instructions, links, support, and exact compliance wording. Combined with rich annotations and a single optional parameter, nothing an agent needs to call it correctly is missing.

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%, so the language enum and English default are already documented in the schema. The description only gestures at language via "for a given language"/RxGRP and adds no syntax beyond the schema, so baseline 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?

The description names a specific resource and enumerates its contents (RxBIN/RxPCN/RxGRP codes, pharmacy-counter instructions, wallet-pass/card-page links, member support, compliance wording), so an agent knows exactly what it gets back. It also marks this as a static card distinct from lookups, separating it 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.

Usage Guidelines4/5

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

"No lookup involved — always the same answer for a given language" tells the agent this is a deterministic static fetch needing no user-specific input, which is clear usage context. It stops short of explicit when-to-use/when-not routing, but the sibling tools (find_drug, get_prices) are functionally distinct, so alternatives are not really in play.

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

get_pricesGet pharmacy pricesA
Read-onlyIdempotent
Inspect

Live cash prices for one drug at nearby pharmacies (up to 10, cheapest first, full spread shown — not just the lowest), using the LowerScript discount network (RxSense). 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipYes5-digit US ZIP code. Required for a price — city/state alone cannot be geocoded by this tool yet.
cityNoOptional city name, for context only. Does not replace zip — a price lookup still needs a 5-digit ZIP.
drugYesDrug name, English or Spanish, brand or generic.
formNoOptional dosage form, e.g. "tablet", "capsule", "pen", "inhaler".
stateNoOptional 2-letter US state, for context only. Does not replace zip.
languageNoResponse language. Defaults to English.
quantityNoOptional fill quantity. Defaults to a typical fill size for the drug's own form (e.g. 30 tablets; 1 pen/inhaler).
strengthNoOptional strength, e.g. "500 mg".

TDQS

A4.4/5.0
Behavior4/5

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

Adds real context beyond the annotations: it discloses the upstream network (LowerScript/RxSense), that results include card codes, a wallet-pass link and a lowerscript.com page, that the full price spread is shown rather than just the cheapest, and that it hard-refuses clinical questions. Safety profile is already covered by readOnlyHint/idempotentHint, so remaining gaps like auth or rate limits are minor.

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?

Three dense, front-loaded sentences that each carry information; the cheapest-first/not-just-lowest behavior and the state list are the kind of detail an agent needs. Slightly long, but no sentence is wasted.

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?

With no output schema, the description does the work of explaining the return payload (prices spread, card codes, wallet link, web page) and the hard prerequisites (valid served-state ZIP). An agent has everything needed to call it correctly and to know when it will refuse.

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?

Schema coverage is 100%, so the baseline is 3, but the description usefully enumerates the eight served states (FL, TX, AZ, NC, SC, GA, IL, CA) — a constraint not present in the schema — and reinforces the ZIP-over-city/state rule. It adds genuine meaning 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?

States a specific verb+resource (live cash prices for one drug at nearby pharmacies) plus scope detail (up to 10, cheapest first, full spread). An agent can immediately distinguish this from find_drug (name resolution) and get_card (card retrieval).

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?

Gives explicit constraints: one drug per call, no bulk lookups, requires a 5-digit ZIP in a served state, city/state alone unsupported, and refuses clinical questions. It does not explicitly point to find_drug for resolving an unknown drug name, which is the one routing gap.

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. 1 tool update
    • Addedcompare_canada
  2. 3 tool updates
    • First observedfind_drug
    • First observedget_card
    • First observedget_prices

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Gives 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.
    10
    3,344 PyPI
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    12
    43 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides 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.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to search for real-time prescription drug prices, find local pharmacies, and retrieve discount coupons through the GoodRx service. It uses Playwright browser automation to provide drug comparisons and checkout details like BIN and PCN codes.
    5
    17 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources