GoodRx MCP Server
# @striderlabs/mcp-goodrx
A Model Context Protocol (MCP) connector for the GoodRx prescription discount service. Enables AI assistants to search for drug prices, find pharmacies, and retrieve discount coupons using GoodRx.
## Overview
This MCP connector uses Playwright browser automation to interact with GoodRx, providing real-time prescription drug pricing and discount coupon data.
## Installation
```bash
npm install @striderlabs/mcp-goodrx
```
Or install Playwright browsers after installation:
```bash
npx playwright install chromium
```
## Tools
### `goodrx_search_drug`
Search for a prescription drug on GoodRx to find available pricing information, forms, and dosages.
**Parameters:**
- `drug_name` (string, required) - Name of the drug (generic or brand name)
- `dosage` (string, optional) - Dosage form (e.g., "10mg", "500mg tablet")
- `quantity` (number, optional) - Number of pills/units
### `goodrx_get_prices`
Get GoodRx discount prices for a drug at nearby pharmacies.
**Parameters:**
- `drug_name` (string, required) - Name of the drug
- `dosage` (string, optional) - Dosage (e.g., "10mg")
- `quantity` (number, default: 30) - Number of pills
- `zip_code` (string, optional) - ZIP code to search near
- `form` (string, optional) - Drug form (tablet, capsule, etc.)
### `goodrx_get_coupon`
Get a GoodRx discount coupon for a specific drug at a pharmacy. Returns BIN, PCN, Group, and Member ID needed at checkout.
**Parameters:**
- `drug_name` (string, required) - Name of the drug
- `pharmacy` (string, optional) - Pharmacy name (e.g., "CVS", "Walgreens")
- `dosage` (string, optional) - Dosage (e.g., "10mg")
- `quantity` (number, default: 30) - Number of pills
- `zip_code` (string, optional) - ZIP code for the pharmacy location
### `goodrx_find_pharmacies`
Find pharmacies near a location that accept GoodRx discount coupons.
**Parameters:**
- `zip_code` (string, required) - ZIP code to search near
- `pharmacy_name` (string, optional) - Filter by pharmacy chain name
- `radius_miles` (number, default: 10) - Search radius in miles
### `goodrx_compare_prices`
Compare drug prices across multiple pharmacies to find the best deal using GoodRx.
**Parameters:**
- `drug_name` (string, required) - Name of the drug to compare
- `dosage` (string, optional) - Dosage (e.g., "10mg")
- `quantity` (number, default: 30) - Number of pills
- `zip_code` (string, optional) - ZIP code for comparison
- `pharmacies` (string[], optional) - Specific pharmacies to compare (e.g., ["CVS", "Walgreens", "Rite Aid"])
- `form` (string, optional) - Drug form (tablet, capsule, etc.)
## Usage with Claude Desktop
Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"goodrx": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-goodrx"]
}
}
}
```
## Usage with MCP CLI
```bash
npx @striderlabs/mcp-goodrx
```
## Example Queries
Once connected, you can ask your AI assistant:
- "What is the cheapest price for Lisinopril 10mg near 90210?"
- "Find pharmacies near ZIP code 10001 that accept GoodRx"
- "Get me a GoodRx coupon for Metformin at CVS"
- "Compare prices for Atorvastatin 20mg at pharmacies near me"
## Technical Details
- Uses Playwright with headless Chromium for browser automation
- Implements session management with singleton browser instance
- Anti-detection measures including custom user agent and navigator property overrides
- Graceful shutdown handling for SIGINT/SIGTERM
## Requirements
- Node.js >= 18
- Playwright Chromium browser (installed via `npx playwright install chromium`)
## License
MIT
## Author
Strider Labs <hello@striderlabs.ai>
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: compare_prices focuses on price comparison across pharmacies, find_pharmacies locates nearby pharmacies, get_coupon retrieves discount coupon details, get_prices provides pricing at nearby pharmacies, and search_drug searches for drug information. There is no overlap or ambiguity between these functions.
All tools follow a consistent 'goodrx_verb_noun' pattern (e.g., goodrx_compare_prices, goodrx_find_pharmacies), using snake_case and starting with the server prefix. This uniformity makes the tool set predictable and easy to understand.
With 5 tools, this server is well-scoped for its purpose of accessing GoodRx drug pricing and pharmacy services. Each tool serves a specific, necessary function without redundancy, making the count appropriate and manageable.
The tool set covers core GoodRx workflows: searching drugs, finding pharmacies, getting prices, comparing prices, and obtaining coupons. A minor gap is the lack of tools for managing user accounts or prescription history, but the essential operations for price comparison and coupon retrieval are fully covered.