Skip to main content
Glama

Find dispensing pharmacies

find_pharmacies
Read-onlyIdempotent

Find UK pharmacies that dispense cannabis-based medicines against a prescription a clinic has already issued. Use near (postcode or town) for nearest first with miles; filter by delivery, in-person collection and review score. Returns up to 25 pharmacies with slug, page URL, town, distance, delivery and collection, and review score. A pharmacy cannot prescribe. It does not return stock, prices, or which products a pharmacy holds: those are shown only to patients and professionals with access. For delivery prices and GPhC registration use get_listing, or compare_providers for several.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nearNoA UK postcode, outcode or town, e.g. "M1 1AE", "LS6" or "Bristol". Sorts nearest first and adds miles.
sortNodistance (default with `near`), az (default otherwise), za, city, rating.
limitNoHow many to return, 1-25. Default 10.
queryNoPharmacy name, matched as text. For a place use `near`.
deliversNoOnly pharmacies that deliver (most dispense UK-wide by post).
minRatingNoOnly pharmacies with patient reviews averaging 3+ or 4+.
collectionNoOnly pharmacies offering in-person collection.
radiusMilesNoOnly within this many miles of `near`. Ignored without `near`.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
totalYesHow many matched in all; narrow the query when this exceeds the results
resultsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • addedInput schema / properties / collection
      Added value: +{
      +  "description": "Only pharmacies offering in-person collection.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / delivers / description
      Previous value: -"Only pharmacies that offer delivery."New value: +"Only pharmacies that deliver (most dispense UK-wide by post)."
    • addedInput schema / properties / minRating
      Added value: +{
      +  "description": "Only pharmacies with patient reviews averaging 3+ or 4+.",
      +  "enum": [
      +    "3_plus",
      +    "4_plus"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / near
      Added value: +{
      +  "description": "A UK postcode, outcode or town, e.g. \"M1 1AE\", \"LS6\" or \"Bristol\". Sorts nearest first and adds miles.",
      +  "maxLength": 64,
      +  "minLength": 2,
      +  "type": "string"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Pharmacy name, town or postcode, matched as text (not by distance). Omit to list all."New value: +"Pharmacy name, matched as text. For a place use `near`."
    • addedInput schema / properties / radiusMiles
      Added value: +{
      +  "description": "Only within this many miles of `near`. Ignored without `near`.",
      +  "exclusiveMinimum": 0,
      +  "maximum": 500,
      +  "type": "number"
      +}
    • changedInput schema / properties / sort / description
      Previous value: -"az (default), za, or by town."New value: +"distance (default with `near`), az (default otherwise), za, city, rating."
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "az",
      -  "za",
      -  "city"
      -]New value: +[
      +  "distance",
      +  "az",
      +  "za",
      +  "city",
      +  "rating"
      +]
    • addedOutput schema / properties / results / items / properties / distanceMiles
      Added value: +{
      +  "description": "Miles from `near`; null when no place was given",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / results / items / required
      Previous value: -[
      -  "name",
      -  "slug",
      -  "url",
      -  "city",
      -  "postcode",
      -  "offersDelivery",
      -  "offersCollection",
      -  "rating"
      -]New value: +[
      +  "name",
      +  "slug",
      +  "url",
      +  "city",
      +  "postcode",
      +  "distanceMiles",
      +  "offersDelivery",
      +  "offersCollection",
      +  "rating"
      +]
  2. Changed6 schema fields changed
    • changedInput schema / properties / delivers / description
      Previous value: -"Only pharmacies that deliver."New value: +"Only pharmacies that offer delivery."
    • changedInput schema / properties / limit / description
      Previous value: -"Default 10."New value: +"How many to return, 1-25. Default 10."
    • changedInput schema / properties / query / description
      Previous value: -"Name, city or postcode."New value: +"Pharmacy name, town or postcode, matched as text (not by distance). Omit to list all."
    • addedInput schema / properties / query / maxLength
      Added value: +120
    • addedInput schema / properties / sort
      Added value: +{
      +  "description": "az (default), za, or by town.",
      +  "enum": [
      +    "az",
      +    "za",
      +    "city"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "note": {
      +      "type": "string"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "city": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "offersCollection": {
      +            "type": "boolean"
      +          },
      +          "offersDelivery": {
      +            "type": "boolean"
      +          },
      +          "postcode": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "rating": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "average": {
      +                    "type": "number"
      +                  },
      +                  "count": {
      +                    "type": "integer"
      +                  }
      +                },
      +                "required": [
      +                  "average",
      +                  "count"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Published patient reviews; null when there are none"
      +          },
      +          "slug": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "url": {
      +            "anyOf": [
      +              {
      +                "format": "uri",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Canonical Findabis page, absolute; null when the listing has no page"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "slug",
      +          "url",
      +          "city",
      +          "postcode",
      +          "offersDelivery",
      +          "offersCollection",
      +          "rating"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total": {
      +      "description": "How many matched in all; narrow the query when this exceeds the results",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "results",
      +    "total"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources