PriceTracker GLP-1 MCP
Read-only MCP server for GLP-1 (semaglutide, tirzepatide) cash prices, price history and price index from PriceTracker GLP-1. No API key required.
Hosted MCP Server
npx add-mcp 'https://pricetrackerglp1.com/api/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
PriceTracker GLP-1 β MCP server
What GLP-1s really cost, checked every week, inside Claude, ChatGPT, Grok and Cursor.
A free, read-only Model Context Protocol server for PriceTracker GLP-1, the independent tracker of US telehealth GLP-1 prices. Your AI gets dated, source-linked prices instead of stale training data. Ask "What's the cheapest compounded tirzepatide month to month right now?" or "What does Zepbound cost self-pay at 5 mg?". The answer comes with the date each price was checked and a link to the page it came from.
- π Endpoint:
https://pricetrackerglp1.com/api/mcp(streamable HTTP) - π No account, no key, no sign-up. Read-only. Free.
- π Data: pricetrackerglp1.com/data, CC BY 4.0
Prices only. This server gives no medical or dosing advice. GLP-1 medications are prescription drugs, so talk to a licensed clinician. Compounded semaglutide and tirzepatide are lawful but not FDA-approved, and every compounded offer is labelled that way.
Tools
| Ask your AI⦠| Tool |
|---|---|
| "What does SnagRx charge for semaglutide?" Β· "Every Zepbound price you track" | search_glp1_prices |
| "Cheapest tirzepatide programs, month to month, no membership fee" | list_cheapest_glp1_programs |
| "Has CoreAge Rx changed its price?" Β· "Which GLP-1 prices moved this month?" | get_glp1_price_history |
| "What does Wegovy cost self-pay from Novo?" Β· "Zepbound cash price ladder" | get_manufacturer_cash_prices |
| "What's the GLP-1 Price Index this month?" Β· "Fair cash price for compounded semaglutide" | get_glp1_price_index |
| "Which programs do you track?" | list_glp1_programs |
Filters: drug (semaglutide, tirzepatide, orforglipron, wegovy, ozempic, zepbound, mounjaro, foundayo, compounded semaglutide, compounded tirzepatide, compounded, brand), provider (name or slug; partial names work), form (injection / oral), billing (month_to_month leaves out prepaid plans), no_membership.
Every response includes:
last_updatedplus acheckeddate on each price;data_sourceURLs;- the CC BY 4.0
license; affiliate_disclosureandnot_medical_advice;linksback to the matching pricetrackerglp1.com page: the program page, the seller check, cheapest-by-drug, the index and the changes feed.
Prices are all-in, meaning the advertised price plus any verified membership fee. For prepaid 3, 6 and 12-month plans, the amount billed up front is shown too.
Setup
Claude (web and desktop): Settings β Connectors β Add custom connector. Use the name PriceTracker GLP-1 and the URL https://pricetrackerglp1.com/api/mcp.
Claude Code
claude mcp add --transport http pricetracker-glp1 https://pricetrackerglp1.com/api/mcp
ChatGPT (developer mode) / Grok: add a custom MCP connector with the same URL. No auth is needed.
Cursor, Windsurf and other config-file clients
{ "mcpServers": { "pricetracker-glp1": { "url": "https://pricetrackerglp1.com/api/mcp" } } }
stdio-only clients (runs locally and reads the same public data)
{ "mcpServers": { "pricetracker-glp1": { "command": "npx", "args": ["-y", "pricetracker-glp1-mcp"] } } }
Self-host / embed
npm i pricetracker-glp1-mcp
npx pricetracker-glp1-mcp --http # streamable HTTP on $PORT (default 3000) at /mcp
// Next.js App Router: app/api/mcp/route.ts
import { handleMcpRequest } from "pricetracker-glp1-mcp/web";
export const POST = handleMcpRequest, GET = handleMcpRequest, OPTIONS = handleMcpRequest;
The handler is a stateless web-standard Request β Response function, so it runs on Vercel, Cloudflare Workers, Bun and Deno. Data comes from the public JSON files. In-memory caching lasts 15 minutes (PTG_CACHE_TTL_MS), and if the source is briefly unavailable the last good copy is served. The standalone server applies a per-IP rate limit (RATE_LIMIT_PER_MIN, default 60).
Data and method
| Source | Refresh | What it contains |
|---|---|---|
/data/glp1-prices.json | hourly recompute; seller pages re-read weekly | every offer, the index, per-molecule stats |
/data/glp1-price-changes.json | on each read | genuine price changes since 2026-08-20 |
/data/glp1-fair-cash-price.json | monthly method | median month-to-month price per product (3+ programs) |
/llms-full.txt | on publish | manufacturer self-pay ladders |
/price-index/YYYY-MM | monthly | index reports, frozen at publication |
Ranking is by verified all-in price. Ties go to the shorter commitment and then to the name. No program can pay for placement. See the methodology, sources and corrections.
Affiliate disclosure: PriceTracker GLP-1 earns a commission from some programs it lists. A commission never changes a price, a rank or a date (details).
Cite: PriceTracker GLP-1, pricetrackerglp1.com (CC BY 4.0).
Develop
npm install
npm test # 11 integration tests against the live data (HTTP + stdio clients)
npm start # http://localhost:3000/mcp
npx @modelcontextprotocol/inspector --cli http://localhost:3000/mcp --transport http --method tools/list
License
The code is MIT. The price data is Β© PriceTracker GLP-1, published under CC BY 4.0.