FineRx
REMOTE · WWW.FINERXFINDER.COM · 2 COMPONENTS · SCANNED SEP 20
US Rx prices by pharmacy + free discount card; also US equivalents of foreign brands, 12 languages
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2544 tokens (~195/item across 13 items; 10 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (90% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
How do I install the FineRx MCP server?
FineRx is a hosted endpoint at https://www.finerxfinder.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · www.finerxfinder.com
claude mcp add --transport http com-finerxfinder-finerx 'https://www.finerxfinder.com/mcp'
{
"mcpServers": {
"com-finerxfinder-finerx": {
"url": "https://www.finerxfinder.com/mcp"
}
}
} {
"servers": {
"com-finerxfinder-finerx": {
"type": "http",
"url": "https://www.finerxfinder.com/mcp"
}
}
} [mcp_servers.com-finerxfinder-finerx] url = "https://www.finerxfinder.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-finerxfinder-finerx": {
"type": "remote",
"url": "https://www.finerxfinder.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-finerxfinder-finerx --url 'https://www.finerxfinder.com/mcp' --transport streamable-http
mcp_servers:
com-finerxfinder-finerx:
url: "https://www.finerxfinder.com/mcp" {
"McpServers": {
"com-finerxfinder-finerx": {
"Transport": "http",
"Url": "https://www.finerxfinder.com/mcp"
}
}
} assistant mcp add com-finerxfinder-finerx -t streamable-http -u 'https://www.finerxfinder.com/mcp'
{
"mcpServers": {
"com-finerxfinder-finerx": {
"type": "http",
"url": "https://www.finerxfinder.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 9 Sept 26 +7
- Authorization: unverified → partial ▲ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “search_drugs” rewrote its description, which is the text the model reads security
- Tool “get_savings_card” rewrote its description, which is the text the model reads security
- Tool “get_drug” rewrote its description, which is the text the model reads security
- Tool “compare_prices” rewrote its description, which is the text the model reads security
- Tool coverage: 100% → 90% ▼ functional
- Tool coverage: 100% → 88% ▼ functional
- Schema quality: pass → fail ▼ functional
- First check of Capabilities: pass functional
- First check of Schema quality: 100 functional
- New prompt “us_equivalent” functional
- New prompt “price_and_card” functional
- New prompt “prescription_help” functional
- New resource “FineRx savings card widget” functional
- New resource “How FineRx works” functional
- New resource “FineRx savings card” functional
- Server version: 1.28.1 → 1.30.0 functional
- New tool “foreign_brands_for_drug” functional
- New tool “find_us_equivalent” functional
- New tool “get_savings_card” functional
- New tool “get_prescription_options” functional
- New tool “email_savings_card” functional
- “get_drug” added an optional parameter “locale” cosmetic
- “get_drug” added an optional parameter “channel” cosmetic
- “compare_prices” added an optional parameter “locale” cosmetic
- “compare_prices” added an optional parameter “channel” cosmetic
- 26 Aug 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +1
- Stability: 0.97 → pass security
- 23 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 7 Aug 26 0
- The server no longer declares the “experimental” capability functional
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://www.finerxfinder.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=www.finerxfinder.com | CN=YE1,O=Let's Encrypt,C=US | 10 Jul 2026 | 8 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 5e6881d8047fce5200501ccd56228e012dd |
| SANs: finerxfinder.com, www.finerxfinder.com | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of www.finerxfinder.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| finerxfinder.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=3600 |
| x-content-type-options | nosniff |
| referrer-policy | strict-origin-when-cross-origin |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://www.finerxfinder.com/mcp | Verified | 200 | |
| http (plaintext) | http://www.finerxfinder.com/mcp | HTTPS enforced | 301 | https://www.finerxfinder.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
compare_prices ~184
Compare FineRx prices for one package (an 11-digit NDC + quantity). Use when you know the exact package. Returns the offer matrix — for each pharmacy chain x savings program, the observed price and the date it was observed (observedAt) — plus ``savingsCard`` (the free discount card, its image, and the card price for this package when known). The cheapest offer is flagged isLowest. Get an ``ndc`` from get_drug's packages or the search flow. Do not call a price the lowest unless the offer says isLowest, and always give the observation date. Offer the card whenever you quote a price here.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| locale | string | – | – |
| ndc | string | yes | – |
| quantity | number | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
email_savings_card ~182
Email the free FineRx discount card to an address the person gave you. Use ONLY after the person has given an email address AND confirmed they want the card sent there — ask for both first, then set ``consent`` to true. The message contains the card and nothing else; FineRx does not store the address. Returns {"sent": true, "to": <masked address>} or {"sent": false, "error": ...}. On an error, say what happened and offer the image or the link instead. Do not call this without an explicit yes, do not guess or reuse an address, do not retry a refusal, and do not read the full address back to the person.
| Name | Type | Req | Description |
|---|---|---|---|
| consent | boolean | – | – |
| string | yes | – | |
| locale | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
find_nearby_pharmacies ~111
Find the nearest pharmacy locations to a US ZIP code, per chain. ``zip`` is a 5-digit US ZIP. Optional ``chains`` is a comma-separated list of chain codes (e.g. "walgreens,publix"); default is all chains. ``limit`` caps locations per chain. Coordinates are OpenStreetMap-sourced (ODbL).
| Name | Type | Req | Description |
|---|---|---|---|
| chains | – | – | – |
| limit | integer | – | – |
| zip | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
find_us_equivalent ~478
Find out what a medicine from another country is in the US, and what it costs. Use when the person names a medicine that is not a US product — a brand from home (No-Spa, Nurofen, Dolo-Neurobion, 999 Ganmaoling), a name in another script (Но-шпа, 泰诺), or an ingredient the US calls something else (paracetamol) — or asks "what is this called in the US?". Optional ``country`` picks between brands of the same name sold in different places; ``locale`` is a language code (leave it out and the host's own locale is used). Returns the reviewed entry: ``usClass`` (``same_inn`` = the same active ingredient is sold here, ``rx_alternative`` = it is not and the closest US options need a prescription, ``no_equivalent`` = nothing here matches), ``guidance`` (ONE vetted sentence, written to be quoted word for word), ``inn``, ``usGeneric``, ``usBrands``, ``rxStatus``, ``notes``, ``components``, ``usDrug`` (slug, lowest observed price and the date it was observed), ``savingsCard`` when there is a US drug to fill, ``pageUrl``, and ``otherMatches`` when the same brand name exists in more than one country. ``found`` is false when nothing matched. Next: quote ``guidance`` as written, then say ``guidanceDisclaimer``. With a ``usDrug``, call compare_prices (or get_drug) for its slug, give the price WITH its observation date, and offer the free card. Do not call the US drug the same product, do not suggest swapping one for the other, and for ``rx_alternative`` or ``no_equivalent`` do not name a substitute at all — send the person to a pharmacist or a doctor. Do not translate or reword ``guidance``; it is reviewed text.
| Name | Type | Req | Description |
|---|---|---|---|
| brand | string | yes | – |
| channel | string | – | – |
| country | – | – | – |
| locale | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
foreign_brands_for_drug ~213
Find what a US drug is called abroad — the reverse of find_us_equivalent. Use when the person has the US name and wants the home-country one ("what is lisinopril called in Mexico?"), or when naming a foreign brand would let them recognise the medicine you are describing. ``slug`` comes from search_drugs. Returns the reviewed brands that resolve to this drug: ``brand``, ``brandScript`` (the home-country spelling), ``countries``, ``inn`` and ``usClass``. Next: name the brands from the person's own country first. An ``rx_alternative`` entry is a DIFFERENT medicine US clinicians use for the same complaint — say so if you mention it. Brands with no US equivalent never appear here. Do not present any of these as interchangeable with the US drug, and do not tell anyone to buy or import one.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_dataset_info ~66
Get FineRx dataset coverage, freshness, and the attribution/disclaimer terms. Returns dataset counts (drugs, products, prices, chains, savings programs, pharmacy locations), the latest observation date, and the terms every consumer must honor (attribution + disclaimer).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
get_drug ~182
Get a FineRx drug's details: coverage stats, variants, and the savings card. Use when you have a slug from search_drugs. Returns overall stats (product/ package/chain/vendor counts, fromPrice, latest observation date), the list of variants (strength x form) each with a fromPrice, and ``savingsCard`` — the free discount card with its codes, image, and (when known) the card price with its observedAt date. ``locale`` is "en" or "es"; ``channel`` tags the links so we can see which assistant sent someone. Do not quote a price without its observation date, and offer the card whenever you quote one.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| locale | string | – | – |
| slug | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_prescription_options ~164
Explain the routes to filling a prescription, including having none yet. Use when the person says they have no prescription, asks how to get one, or says the brand costs too much. Optional ``drug`` is a slug from search_drugs. Returns three sections — havePrescription (steps), noPrescription (named telehealth / clinic options, each with the disclosure to read out when FineRx earns anything), brandCostly (options) — plus a Medicaid note. Read each option WITH its disclosure. Do not recommend a particular clinician, do not say what to take or at what dose, and do not frame any of this as medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| drug | – | – | – |
| locale | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_savings_card ~361
Get the free FineRx discount card: its codes, how to use it, how to save it. Use when you have just quoted a FineRx price, when someone asks how to pay less for a prescription, or when they ask for the card by name. Optional ``drug`` is a slug from search_drugs and adds that drug's card price when we have one; ``locale`` is a language code (leave it out and the host's own locale is used, else English); ``channel`` tags the links with who sent the person. Returns the card as JSON (the three codes to read at the pharmacy counter, what the card is and is not, the steps to use it, the sentence to say to the pharmacist, the ways to save it — image, print, link, email — an optional observed price with its date, an FAQ, the legal lines, and the UI labels) plus an image of the card. On a host that supports MCP Apps the same data is drawn as an interactive card in the conversation; that is a convenience, not a substitute, so STILL write the three codes in your own answer for the hosts and the people who cannot see it. Offer ONE way to save it: show the image, send the link, or email it. Do not present the card as insurance, do not promise a price, and do not call a price the lowest unless price.isLowest is true — otherwise repeat price.note as written. The card is free and needs no signup.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| drug | – | – | – |
| locale | – | – | – |
No output schema declared.
No examples provided.
search_drugs ~172
Search FineRx for drugs by name or localized alias. Returns candidate drugs with their slug (use it with get_drug), kind (generic/brand), and lowest observed public price (fromPrice). Use this first to resolve a drug name to a slug. ``foreignBrands`` carries any home-country medicine brand that matched the same text (Нурофен, No-Spa, Dolo-Neurobion) with its active ingredient and the US generic it maps to. When ``results`` is empty and ``foreignBrands`` is not, the person named a medicine from another country: call find_us_equivalent for the reviewed answer rather than guessing at one.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| query | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
What is the FineRx MCP server?
FineRx is an MCP server listed in the public MCP registry as com.finerxfinder/finerx. US Rx prices by pharmacy + free discount card; also US equivalents of foreign brands, 12 languages. This page covers its hosted endpoint (https://www.finerxfinder.com/mcp).
Is the FineRx MCP server safe to use?
FineRx scores 85 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the FineRx MCP server expose?
FineRx exposes 10 tools: search_drugs, get_drug, compare_prices, find_nearby_pharmacies, get_dataset_info, and 5 more. Their descriptions and schemas cost roughly 2,113 tokens of context every time the server is loaded.
Does the FineRx MCP server require authentication?
No. We connected to FineRx without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the FineRx MCP server still maintained?
FineRx is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.