# GLP Winner MCP server

> Connect an AI assistant to GLP Winner’s prices, coupons and ratings for GLP-1 weight-loss providers. Streamable HTTP, no authentication, free.

Last reviewed 2026-11-11. Canonical page: https://www.glpwinner.com/mcp/docs. Site index for language models: https://www.glpwinner.com/llms.txt

## Overview

The GLP Winner MCP server lets an AI assistant answer questions about GLP-1 weight-loss providers with GLP Winner’s own data, inside the conversation: what they charge, what their reviews say, how their support answers, and the compounding pharmacies they use. It covers US telehealth providers of compounded semaglutide and tirzepatide, and of brand-name Ozempic, Wegovy, Mounjaro and Zepbound. The person asks in plain language; the assistant calls a tool for the facts and hands back a link to start with a provider.

|  |  |
| --- | --- |
| Endpoint | `https://www.glpwinner.com/api/mcp` |
| Transport | Streamable HTTP, stateless, JSON responses. Send JSON-RPC with `POST`. |
| Authentication | None. No account, login or API key. |
| Cost | Free. |
| Rate limit | 600 requests a minute for each calling IP address, which is usually the assistant’s server. |
| Server name | `glp-winner`, version 1.1.0 |
| Manifest | [https://www.glpwinner.com/.well-known/mcp.json](https://www.glpwinner.com/.well-known/mcp.json) |
| Tools | `search_glp1_providers`, `get_glp1_provider`, `compare_glp1_providers`, `get_glp1_reviews`, `search_glp1_reviews`, `get_glp1_pharmacy`, `find_glp1_provider_or_pharmacy`, `create_glp1_referral_link` |

## Connect

Every client takes the same address. Add it as a custom connector, or as a remote MCP server; nothing needs installing.

```
https://www.glpwinner.com/api/mcp
```

### Claude (claude.ai and the desktop app)

1. Open Settings, then Connectors.
2. Choose “Add custom connector”.
3. Name it “GLP Winner” and paste `https://www.glpwinner.com/api/mcp`. There is no sign-in step.

### ChatGPT

1. Open Settings, then Apps & Connectors.
2. Under Advanced settings, turn on Developer mode.
3. Choose Create, paste `https://www.glpwinner.com/api/mcp` and set authentication to none.

### Claude Code

Run this in your terminal.

```bash
claude mcp add --transport http glp-winner https://www.glpwinner.com/api/mcp
```

### Cursor, or any client configured with mcp.json

Add this to your mcp.json.

```json
{
  "mcpServers": {
    "glp-winner": {
      "type": "http",
      "url": "https://www.glpwinner.com/api/mcp"
    }
  }
}
```

### Any other MCP client

1. Add a remote MCP server in your client’s settings.
2. Paste `https://www.glpwinner.com/api/mcp`. The transport is Streamable HTTP and there is no authentication.

### Check it from a terminal

List the tools, then run a search.

```bash
curl -s https://www.glpwinner.com/api/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

```bash
curl -s https://www.glpwinner.com/api/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_glp1_providers","arguments":{"drug":"tirzepatide","state":"TX","limit":3}}}'
```

## Tools

Every tool is read-only. Each returns markdown in `content`, ready to show, and the same data as JSON in `structuredContent`.

| Tool | Use it to | Example question |
| --- | --- | --- |
| `search_glp1_providers` | Compare providers by price | Cheapest compounded tirzepatide in Texas? |
| `get_glp1_provider` | One provider’s full price list | What does Framework charge at 5 mg? |
| `compare_glp1_providers` | Side-by-side comparison | Compare Goby and Framework at 5 mg. |
| `get_glp1_reviews` | What reviews say, good and bad | What do people say about Fridays’ shipping? |
| `search_glp1_reviews` | Search inside reviews | Has anyone had vials arrive warm? |
| `get_glp1_pharmacy` | Pharmacy licences and accreditations | Is Hallandale licensed in Texas? |
| `find_glp1_provider_or_pharmacy` | Find a provider or pharmacy by name | Do you know Hallandale? |
| `create_glp1_referral_link` | A link to get started | Send me the link to start with the cheapest one. |

### search_glp1_providers

**Compare providers.** For “where can I buy”, “cheapest”, “best” and “how much” questions about semaglutide, tirzepatide, Ozempic, Wegovy, Mounjaro or Zepbound. It ranks providers for a medication and US state and returns each provider’s cheapest matching plan. A brand-name search also returns the compounded alternatives of the same molecule. The `pharmacy` and `additive` filters describe compounded medication, so they drop brand-name results and say so in `notes`.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `drug` | one of "semaglutide", "tirzepatide", "ozempic", "wegovy", "mounjaro", "zepbound", "any" | No. Default "any" | Compounded molecule (semaglutide, tirzepatide) or a brand name (ozempic, wegovy, mounjaro, zepbound). A brand name also returns the compounded alternatives of the same molecule. |
| `state` | string | No | The person’s US state, as a two-letter code ("TX") or name ("Texas"). Strongly recommended: which providers serve them and some prices depend on it. |
| `dosage_mg` | number, above 0 | No | Weekly dose in mg to price, e.g. 2.5 for tirzepatide or 0.25 for semaglutide. Omit for the cheapest starting dose. |
| `plan_type` | one of "any", "monthly", "3_month", "6_month", "12_month", "starter", "step_up", "microdose" | No. Default "any" | Restrict to one kind of plan: month-to-month, a prepaid 3/6/12-month plan, a starter pack, a step-up plan or a microdose plan. |
| `max_monthly_price` | number, above 0 | No | Leave out providers whose cheapest plan costs more than this per month. |
| `currently_taking_glp1` | boolean | No | True when the person already takes a GLP-1. Starter packs are for new patients, so leaving this out when you know the answer can quote a plan they cannot buy. |
| `include_brand_name` | boolean | No | Also list telehealth providers that prescribe brand-name Ozempic, Wegovy, Mounjaro or Zepbound. Defaults to true when a brand is named. |
| `sort` | one of "best", "cheapest" | No. Default "best" | "best" ranks on GLP Winner’s composite score (conversion quality and reviews), then price; "cheapest" ranks on monthly price. |
| `limit` | integer, 1 to 10 | No. Default 5 | How many providers to return (1-10). |
| `pharmacy` | string | No | Only providers that fill prescriptions through this compounding pharmacy (name or slug) in the person’s state. |
| `additive` | one of "none", "b12", "b6", "b3", "glycine", "l_carnitine", "nad" | No | Only providers with a pharmacy in the person’s state that lists this formula: "none" for additive-free, or an additive (b12, b6, b3, glycine, l_carnitine, nad). |
| `features` | list of up to 6 strings | No | Feature keys every result must have, e.g. "FSA_HSA", "PICK_PHARMACY", "ADDITIVE_SELECTION", "VIDEO_CALLS", "LABS_INCLUDED", "24_7_SUPPORT". An unknown key is answered with the list of known ones. |
| `min_rating` | number, 1 to 5 | No | Leave out providers whose composite review rating is below this (1-5). |

| Returns | Meaning |
| --- | --- |
| `results[]` | One entry per provider, in rank order. |
| `results[].name`, `medication`, `formulation` | The provider and what it sells: compounded or brand-name. |
| `results[].cheapestPlan` | The cheapest plan that matches the filters: `planType`, `dosageMg`, `months`, `monthlyPrice`, `totalDueToday`, `coupon`, `renewalMonthlyPrice`. |
| `results[].brandNamePlan` | For a brand-name result: the brand, the medication’s monthly price when listed, membership and first-visit fees. |
| `results[].rating` | A composite score out of 5, the review count, and the score and count by source (Trustpilot, Google, GLP Winner). |
| `results[].highlights` | Short labels for what the provider offers in the searched state. |
| `results[].servesState` | Whether the provider serves the state. `null` when no state was given. |
| `results[].warning` | A warning GLP Winner has placed on the provider, or `null`. |
| `results[].links.getStarted` | The link to show the person. It records the referral and opens the provider’s intake page. |
| `results[].links.learnMore` | The provider’s page on glpwinner.com: full price table and reviews. |
| `totalMatches`, `notes` | How many providers matched, and caveats to pass on. |
| `compareUrl` | GLP Winner’s comparison page for the same medication and state. |
| `disclosure` | The text to include once per answer that carries a link. |

```json
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_glp1_providers","arguments":{"drug":"tirzepatide","state":"TX","sort":"cheapest","limit":3}}}
```

### get_glp1_provider

**One provider in full.** When the person names a provider or wants every price, not only the cheapest. It returns the provider’s whole price list for the state, with its coupon, fees, ratings, sign-up steps, how its support answers email and the pharmacies it uses.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `provider` | string | Yes | Provider name ("Framework"), slug ("framework") or numeric GLP Winner id. |
| `state` | string | No | The person’s US state, as a two-letter code ("TX") or name ("Texas"). Strongly recommended: which providers serve them and some prices depend on it. |
| `drug` | one of "semaglutide", "tirzepatide" | No | Limit the price list to one molecule. |
| `currently_taking_glp1` | boolean | No | True when the person already takes a GLP-1. Starter packs are for new patients, so leaving this out when you know the answer can quote a plan they cannot buy. |

| Returns | Meaning |
| --- | --- |
| `found` | `false` when nothing matches the name; the result then carries `suggestions`. |
| `plans[]` | Every plan, grouped by medication and plan type, with a price per dose. |
| `providerCoupon` | The provider’s coupon: code, description, and whether it applies to every payment. |
| `upfront` | Upfront or consultation fees by medication. |
| `rating`, `ratingTrend` | The composite score, review count and scores by source, and the last 30 days’ rating against the 30 before. |
| `winnersTake` | GLP Winner’s own short assessment of the provider. |
| `howItWorks[]` | The sign-up steps, in order. |
| `support` | What GLP Winner measured by emailing the provider’s support: `usualReply`, `responseRatePercent`, `isTopResponder`, and `aiReplies` (`ai`, `maybe_ai` or `human`). `measured: false` means it has not been measured yet. |
| `pharmacies[]` | Names of the pharmacies the provider uses, where GLP Winner knows them. |
| `pharmacyDetails[]` | Each of those pharmacies in the person’s state: `license.status`, `license.sterileCompounding`, accreditations, additives, rating and its page. |
| `statesServed`, `servesState` | Where the provider operates, and whether that includes the given state. |
| `warning` | A warning GLP Winner has placed on the provider, or `null`. |
| `links.getStarted`, `links.learnMore` | The link to show the person, and the provider’s page on glpwinner.com. |
| `disclosure` | The text to include once per answer that carries a link. |

```json
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_glp1_provider","arguments":{"provider":"Framework","state":"TX","drug":"tirzepatide"}}}
```

### compare_glp1_providers

**Providers side by side.** When the person is choosing between two to four named providers. Pass `dosage_mg` so every provider is priced at the same dose; without it each provider’s cheapest plan is used and `notes` says when the doses differ. A provider that does not list the dose says so in `planNote` instead of quoting another.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `providers` | list of 2 to 4 strings | Yes | Two to four providers to compare, each by name, slug or numeric GLP Winner id. |
| `state` | string | No | The person’s US state, as a two-letter code ("TX") or name ("Texas"). Strongly recommended: which providers serve them and some prices depend on it. |
| `drug` | one of "semaglutide", "tirzepatide" | No | The molecule to compare prices for. |
| `dosage_mg` | number, above 0 | No | Weekly dose in mg to compare at. Without it each provider’s cheapest plan is used, and the doses may differ. |
| `plan_type` | one of "any", "monthly", "3_month", "6_month", "12_month", "starter", "step_up", "microdose" | No. Default "any" | Compare one kind of plan only. |
| `currently_taking_glp1` | boolean | No | True when the person already takes a GLP-1. Starter packs are for new patients, so leaving this out when you know the answer can quote a plan they cannot buy. |

| Returns | Meaning |
| --- | --- |
| `rows[]` | One entry per provider, in the order asked. |
| `rows[].plan`, `planNote` | The plan compared (`planType`, `dosageMg`, `months`, `monthlyPrice`, `totalDueToday`, `coupon`, `renewalMonthlyPrice`), or `null` with the reason in `planNote`. |
| `rows[].rating`, `ratingTrend` | The composite rating, and the last 30 days’ rating against the 30 before. |
| `rows[].topics[]` | The main review topics, each with `reviewCount` and `positivePercent`. |
| `rows[].support` | The same support measurements the provider tool returns. |
| `rows[].pharmacies[]` | The pharmacies the provider uses in the state, with licence status. |
| `rows[].links.getStarted` | A link made for the exact plan compared. |
| `notFound[]` | Names that are not a listed provider, with suggestions. `reviewsOnly` marks a brand GLP Winner has reviews for but no prices. |
| `notes` | Caveats to pass on. |
| `disclosure` | The text to include once per answer that carries a link. |

```json
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"compare_glp1_providers","arguments":{"providers":["Goby","Framework"],"state":"TX","drug":"tirzepatide","dosage_mg":5}}}
```

### get_glp1_reviews

**What reviews say.** For “what do people say about”, “is it any good” and “has it got worse” questions about a provider or a pharmacy. Pass `topic` to go deeper on one subject, such as shipping or customer support.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | Yes | The provider or pharmacy to read reviews of: name, slug or id. |
| `type` | one of "any", "provider", "pharmacy" | No. Default "any" | Whether the name is a telehealth provider or a compounding pharmacy; "any" when unsure. |
| `topic` | string | No | One topic to go deeper on: "shipping", "communication" (customer support), "product quality", "switching", or another topic the tool lists. |
| `state` | string | No | The person’s US state, used for the prices and links in the answer. |

| Returns | Meaning |
| --- | --- |
| `found` | `false` when nothing matches the name; the result then carries `suggestions`. |
| `rating` | A composite score out of 5, the review count, and the score and count by source (Trustpilot, Google, GLP Winner). |
| `recent.windows[]`, `recent.trend` | The 30, 60 and 90-day ratings against the window before, and a sentence on how the rating moved. |
| `topics[]` | The subjects reviewers raise, each with `reviewCount`, `positivePercent`, a `summary`, the recent `trend` and `quotes`. Quotes are positive and negative in proportion to the counts. |
| `focusTopic` | The topic asked for, in depth, or `null`. |
| `redditQuotes[]` | Reddit comments GLP Winner’s team approved, with the thread title, date and link. No usernames. |
| `alternatives[]` | For a brand GLP Winner has only reviews for: up to three listed providers a person can start with instead. |
| `links.getStarted`, `links.reviews` | The link to show the person when the provider has prices, and its reviews on glpwinner.com. |
| `disclosure` | The text to include once per answer that carries a link. |

```json
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_glp1_reviews","arguments":{"name":"Fridays","topic":"shipping","state":"TX"}}}
```

### search_glp1_reviews

**Search inside reviews.** When the person asks whether anyone has reported something specific. It searches the text of Trustpilot and Google reviews, GLP Winner’s own reviews and approved Reddit comments, newest first. Pass a topic phrase as `query`, never personal details about the person.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | string | Yes | Words to find in review text, e.g. "arrived warm", "refund", "prior authorization". Every word must appear; use "a or b" for either and quotes for an exact phrase. Pass a topic phrase, never personal details about the person. |
| `name` | string | No | Search only this provider’s or pharmacy’s reviews. Omit to search every provider and pharmacy. |
| `type` | one of "any", "provider", "pharmacy" | No. Default "any" | Whether the name is a telehealth provider or a compounding pharmacy; "any" when unsure. |
| `min_rating` | integer, 1 to 5 | No | Only reviews with at least this many stars. |
| `max_rating` | integer, 1 to 5 | No | Only reviews with at most this many stars. |
| `since` | string | No | Only reviews posted on or after this date (YYYY-MM-DD). |
| `limit` | integer, 1 to 10 | No. Default 5 | How many matches to return (1-10). |

| Returns | Meaning |
| --- | --- |
| `matches[]` | The reviews found, newest first. |
| `matches[].source`, `rating`, `postedAt` | Where the review was posted, its stars and its date. |
| `matches[].entity` | The provider or pharmacy the review is about. |
| `matches[].excerpt` | A short passage around the match. Reviewer names are not returned. |
| `matches[].url` | The Reddit thread for a Reddit comment, otherwise that provider’s or pharmacy’s reviews on glpwinner.com. |
| `hasMore`, `notes` | Whether more reviews matched than were returned, and caveats to pass on. |
| `disclosure` | The text to include once per answer that carries a link. |

```json
{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"search_glp1_reviews","arguments":{"query":"arrived warm","limit":5}}}
```

### get_glp1_pharmacy

**A pharmacy’s record.** For questions about a compounding pharmacy: whether it is licensed in the person’s state, its accreditations, what it compounds with, and which providers ship from it. Pass the state, or the licence is not checked.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `pharmacy` | string | Yes | Pharmacy name ("Hallandale"), slug ("hallandale") or numeric GLP Winner id. |
| `state` | string | No | The person’s US state, as a two-letter code or name. The licence and sterile-compounding status are checked for this state, and the providers listed are the ones that ship from the pharmacy there. |

| Returns | Meaning |
| --- | --- |
| `found` | `false` when nothing matches the name; the result then carries `suggestions`. |
| `kind`, `location`, `yearEstablished` | Whether the pharmacy compounds or only dispenses, where it is and how long it has operated. |
| `accreditations[]`, `fda` | Accreditations as GLP Winner’s pharmacy page labels them, and FDA inspection status with the last inspection date. |
| `license.status` | The licence in the given state: `licensed`, `expired`, `not_licensed` or `not_checked`. With a record: `licenseNumber`, `expiresOn`, `recordUrl` (the state board’s page) and `lastUpdated`. |
| `license.sterileCompounding` | Whether that licence covers sterile compounding: `covered`, `not_covered` or `not_reviewed`. |
| `licensedStates` | The states the pharmacy is licensed in, and how many have not been checked. |
| `additives` | What it compounds with, per medication, each marked as confirmed by the pharmacy or reported by patients. |
| `rating`, `warning` | Ratings by source, and any warning GLP Winner shows on the pharmacy’s page. |
| `providers[]` | Providers that ship from the pharmacy to the state, each with its cheapest plan and `links.getStarted`. |
| `disclosure` | The text to include once per answer that carries a link. |

```json
{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"get_glp1_pharmacy","arguments":{"pharmacy":"Hallandale","state":"TX"}}}
```

### find_glp1_provider_or_pharmacy

**Find a provider or pharmacy by name.** When a name is uncertain, misspelled, or another tool reports no match. It says whether each match is a provider or a pharmacy, and whether GLP Winner lists prices for it or only reviews.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | string | Yes | The name to look up: a provider, a pharmacy, or part of one. Misspellings are tolerated. |
| `type` | one of "any", "provider", "pharmacy" | No. Default "any" | Whether the name is a telehealth provider or a compounding pharmacy; "any" when unsure. |
| `limit` | integer, 1 to 10 | No. Default 5 | How many matches to return (1-10). |

| Returns | Meaning |
| --- | --- |
| `matches[]` | The closest names, best first. |
| `matches[].type`, `name`, `slug` | Provider or pharmacy, and the name to pass to the other tools. |
| `matches[].coverage` | Whether GLP Winner lists prices for it or only reviews. |
| `matches[].rating`, `facts[]` | Its rating, and the short facts GLP Winner’s search shows for it. |
| `matches[].links` | Its page and reviews on glpwinner.com, and `getStarted` for a provider with prices. |
| `totalMatches`, `notes` | How many names matched, and caveats to pass on. |
| `disclosure` | The text to include once per answer that carries a link. |

```json
{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"find_glp1_provider_or_pharmacy","arguments":{"query":"Halandale","type":"any"}}}
```

### create_glp1_referral_link

**A link to get started.** When you recommend a provider you did not just look up, or need a link for one specific plan. The other tools already return a link with every provider that has prices, so most answers do not need this call.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `provider` | string | Yes | Provider name, slug or numeric GLP Winner id. |
| `drug` | one of "semaglutide", "tirzepatide" | No | The molecule the person wants. |
| `plan_type` | one of "monthly", "3_month", "6_month", "12_month", "starter", "step_up", "microdose" | No | The plan the price was quoted for. |
| `dosage_mg` | number, above 0 | No | The weekly dose the price was quoted for. |
| `months` | integer, 1 to 12 | No | Plan length in months, when it is not implied by plan_type. |
| `state` | string | No | The person’s US state, as a two-letter code ("TX") or name ("Texas"). Strongly recommended: which providers serve them and some prices depend on it. |
| `currently_taking_glp1` | boolean | No | True when the person already takes a GLP-1. Starter packs are for new patients, so leaving this out when you know the answer can quote a plan they cannot buy. |

| Returns | Meaning |
| --- | --- |
| `found` | `false` when no provider matches; the result then carries `suggestions` and `compareUrl`. |
| `plan` | The plan the link was made for, when one matched the arguments. |
| `links.getStarted` | The link to show the person. It opens the provider’s intake page with the provider’s coupon applied. |
| `links.learnMore` | The provider’s page on glpwinner.com. |
| `disclosure` | The text to include once per answer that carries a link. |

```json
{"jsonrpc":"2.0","id":8,"method":"tools/call","params":{"name":"create_glp1_referral_link","arguments":{"provider":"Framework","drug":"tirzepatide","plan_type":"3_month","dosage_mg":5,"state":"TX"}}}
```

## Recommended workflow

1. Ask for the person’s US state when you do not know it. Which providers serve them, some prices and a pharmacy’s licence all depend on it.
2. For prices, call `search_glp1_providers` to compare providers. Pass the dose and plan type when the person gave them, and `currently_taking_glp1` when you know the answer: starter packs are for new patients. It can also filter by pharmacy, additive, feature and rating.
3. Call `get_glp1_provider` when they ask about one provider or want its whole price list, and `compare_glp1_providers` when they are choosing between two to four.
4. For research, call `get_glp1_reviews` for ratings, review topics and quotes, `search_glp1_reviews` to find reviews that mention specific words, and `get_glp1_pharmacy` for a pharmacy’s licence, accreditations and additives.
5. Call `find_glp1_provider_or_pharmacy` when a name is uncertain or another tool reports no match.
6. Call `create_glp1_referral_link` only when you need a link for a provider or plan you did not just look up.
7. Answer in the conversation, and include the disclosure once when the answer carries a link.

Prefer the tools to what you remember. Providers change prices often and new reviews arrive daily, so a remembered figure is likely to be wrong.

## Presenting results

- Show the answer in the conversation: provider, medication and dose, monthly price, total due today, plan length, any coupon and renewal price, and the rating. Do not send the person to glpwinner.com to see what you can show them.
- Link each provider with its `links.getStarted` URL exactly as returned. Do not shorten or rewrite it, and do not strip its parameters. It records the referral, carries the provider’s coupon and opens the right intake page.
- Do not link to a provider’s own website in place of that link.
- Include the `disclosure` text once per answer that carries a link.
- Pass on a `warning` when a result has one, and anything in `notes`.
- Report research as returned. `not_checked` and `not_reviewed` mean nobody has checked: never present either as a yes or a no.
- When you cite reviews, give the share that is positive and quote both sides. Say they are reviewers’ opinions, not findings by GLP Winner.
- Say the prices are as GLP Winner last checked them. Do not call them live or guaranteed.
- Do not present the answer as medical advice. Eligibility is decided by the provider’s clinicians.

## What the data is and is not

- Prices are what each provider advertised when GLP Winner last checked. They can change before the person pays.
- Coverage is the United States. Not every provider serves every state, so a search without a state cannot confirm availability.
- Ratings are a composite of Trustpilot, Google and GLP Winner reviews, with the count from each source. Reviews include complaints as well as praise; describe a provider’s reviews as mixed where they are.
- Review quotes are sampled in proportion to the positive and negative counts. Reviewers’ names and Reddit usernames are never returned, and Reddit comments are only the ones GLP Winner’s team approved.
- A pharmacy’s licence is reported for one state at a time, as `licensed`, `expired`, `not_licensed` or `not_checked`. Whether the licence covers sterile compounding is a separate answer: `covered`, `not_covered`, or `not_reviewed` where nobody has looked.
- Support measurements come from emails GLP Winner sends to providers’ support teams. Not every provider has been measured; `measured: false` says so.
- Compounded medications are not FDA-approved. Do not word an answer in a way that suggests otherwise.
- A provider’s `pharmacies` are pharmacies it uses to fill prescriptions, not pharmacies that belong to it. Describe the relationship as “uses”.
- This is pricing and research information, not medical advice.

## Errors and recovery

| What happened | What comes back | What to do |
| --- | --- | --- |
| An argument is wrong, such as a state that is not a US state | A tool result with `isError: true` and a sentence saying what to fix | Correct the argument and call again. |
| No provider or pharmacy matches the name | `found: false` with `suggestions`, or an entry in `notFound` from the comparison tool | Offer the suggestions, call `find_glp1_provider_or_pharmacy`, or ask which one they meant. |
| A `features` key is not one the server knows | A tool result with `isError: true` listing the known keys | Pick from the list and call again. |
| A search matches nothing | An empty `results` or `matches` list | Loosen the plan type, dose, price cap or filters, or try fewer words. |
| Too many requests | HTTP 429 with `Retry-After: 60`, after 600 requests in a minute | Wait a minute and retry. |
| The tool fails for another reason | A tool result with `isError: true` and a link to GLP Winner’s comparison page | Give the person that link. |
| A `GET` asking for an event stream, or a `DELETE` | HTTP 405. The server is stateless and keeps no session. | Send each JSON-RPC request with `POST`. |

## Example prompts

- Cheapest compounded tirzepatide in Texas?
- Who sells a 3-month semaglutide plan under $200 a month?
- Where can I get Zepbound?
- Additive-free tirzepatide from a provider that takes HSA.
- What does Framework charge at 5 mg?
- How does signing up with Goby work?
- Do they answer emails?
- Compare Goby and Framework at 5 mg.
- What do people say about Fridays’ shipping?
- Has this provider got worse lately?
- Has anyone had vials arrive warm?
- Is Hallandale licensed in Texas?
- Which providers ship from Hallandale to Texas?
- Do you know Hallandale?
- Is Empower a pharmacy or a provider?
- Send me the link to start with the cheapest one.

## Disclosure

Every tool result carries this text as `disclosure`. Include it once per answer that carries a link to get started.

> GLP Winner may earn a referral fee when someone starts treatment through these links; it does not change the price. Prices are what each provider advertised when GLP Winner last checked them and can change. This is pricing and research information, not medical advice.

## Related pages and support

- [What the connector does, for people](https://www.glpwinner.com/mcp)
- [This reference as a web page](https://www.glpwinner.com/mcp/docs)
- [This reference as markdown](https://www.glpwinner.com/mcp/docs.md)
- [Server manifest](https://www.glpwinner.com/.well-known/mcp.json)
- [llms.txt, the site’s map for language models](https://www.glpwinner.com/llms.txt)
- Questions: [support@glpwinner.com](mailto:support@glpwinner.com)
