MCP server exposing FineRx drug-price data to AI agents (thin client over the FineRx public REST API).
Project description
FineRx MCP server
Give an AI assistant live access to FineRx drug-price data — the same catalog, package, price-comparison, and nearest-pharmacy data shown on the FineRx website — through the Model Context Protocol.
finerx-mcp is a thin client over the FineRx public REST API
(/api/public/v1). It has no direct database access and inherits the public
API's authentication and rate limits, so it adds zero extra attack surface.
Tools
| Tool | What it does |
|---|---|
search_drugs(query, limit=10) |
Find drugs by name/alias → candidates with slugs + from-prices |
get_drug(slug) |
A drug's stats + strength/form variants |
compare_prices(ndc, quantity) |
Offer matrix (chain × savings program × price × observation date) |
find_nearby_pharmacies(zip, chains?, limit=3) |
Nearest store locations per chain around a ZIP |
get_dataset_info() |
Dataset coverage, freshness, and attribution/disclaimer terms |
Every result embeds a one-line disclaimer and, wherever a price appears, an
observedAt date. No tool ever returns hidden vendors or an operator reference
price.
Prerequisites
- A FineRx developer API key (format
frx_live_...). Request one by emailing partners@finerxfinder.com — see https://finerxfinder.com/developers. uvinstalled (providesuvx).
Configuration
The server reads two environment variables:
| Variable | Required | Default | Notes |
|---|---|---|---|
FINERX_API_KEY |
yes | — | Your frx_live_... key |
FINERX_API_BASE |
no | https://finerxfinder.com/api/public/v1 |
Point at another host for local testing |
Install & run
Run directly with uvx (no manual install needed):
FINERX_API_KEY=frx_live_xxxxxxxx uvx finerx-mcp
The server speaks MCP over stdio by default.
Remote (HTTP) mode
The same tools can be served over Streamable HTTP — the transport that connector catalogs (ChatGPT Apps, Claude connectors, Gemini, Grok) consume, so a user adds FineRx by URL with no local install. Set the transport (and, for a hosted deployment, the bind host/port):
FINERX_API_KEY=frx_live_xxxx \
FINERX_MCP_TRANSPORT=streamable-http \
FINERX_MCP_HOST=0.0.0.0 FINERX_MCP_PORT=9000 \
uvx finerx-mcp
# → endpoint at http://<host>:9000/mcp
Defaults stay stdio, so existing Claude Desktop/Code/Cursor configs are
unaffected. The HTTP endpoint calls the same public REST API with the server's
FINERX_API_KEY, so hosting it exposes no data beyond the already-public API.
Claude Desktop
Add to your claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"finerx": {
"command": "uvx",
"args": ["finerx-mcp"],
"env": {
"FINERX_API_KEY": "frx_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Restart Claude Desktop; the FineRx tools appear in the tools menu.
Claude Code
claude mcp add finerx --env FINERX_API_KEY=frx_live_xxxx -- uvx finerx-mcp
Or add it to .mcp.json in your project:
{
"mcpServers": {
"finerx": {
"command": "uvx",
"args": ["finerx-mcp"],
"env": { "FINERX_API_KEY": "frx_live_xxxxxxxx" }
}
}
}
Local development
Run against a local FineRx stack (e.g. the dev proxy on :8080):
export FINERX_API_KEY=frx_live_... # a key you created via the CLI
export FINERX_API_BASE=http://localhost:8080/api/public/v1
uv run --project packages/finerx-mcp finerx-mcp
A smoke test that drives one tool call end-to-end lives at
scripts/smoke_mcp.py in the FineRx repo.
Terms
Data is provided under the FineRx public API terms: attribution required ("Prices via FineRx"), prices are observed estimates (not guaranteed or insured prices) and may be out of date, and nothing here is medical advice. Pharmacy location coordinates are © OpenStreetMap contributors (ODbL).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file finerx_mcp-1.2.0.tar.gz.
File metadata
- Download URL: finerx_mcp-1.2.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90f4e4f50f431bceb33f72a670e947490bc125c8b1ad157731d743eed7df5cc4
|
|
| MD5 |
fe3557d1a545a0104929b6b487429608
|
|
| BLAKE2b-256 |
5da7af44923125d4d076cd7ca672861f6f36cf7c5202a48639d86a819e2db8ff
|
File details
Details for the file finerx_mcp-1.2.0-py3-none-any.whl.
File metadata
- Download URL: finerx_mcp-1.2.0-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d6ab6d8037756e1398620e9f44cdc2b73ad715efb16571c9a62818512e9f608
|
|
| MD5 |
0aecdf57d1ff750e23685d0e246a03f1
|
|
| BLAKE2b-256 |
94af29128292da5cc30c2d9dd85f134adcae08c6d4afe616aec4ff77971f6ecd
|