npm package: @striderlabs/mcp-goodrx
Description: MCP connector for GoodRx prescription discount service
Author: Strider Labs
Latest version: 1.0.1

# @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>