Read Photon Health patients, prescriptions, orders, pharmacies and medications; screen interactions.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get one treatment catalog by id with its treatments and prescription templates (quantity, refills, days supply, directions). Photon GraphQL: catalog.
Catalog id (from list_catalogs).
Get one treatment catalog by id with its treatments and prescription templates (quantity, refills, days supply, directions). Photon GraphQL: catalog.
| Argument | Type | Description |
|---|---|---|
| catalog_id* | string | Catalog id (from list_catalogs). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"catalog_id"
],
"properties": {
"catalog_id": {
"type": "string",
"minLength": 1,
"description": "Catalog id (from list_catalogs)."
}
}
}Get one fill (a single dispensing of a prescription within an order) by id: state (SCHEDULED, NEW, SENT, CANCELED), requested/filled times, medication, prescription and order. Photon GraphQL: fill.
| Argument | Type | Description |
|---|---|---|
| fill_id* | string | Photon fill id (fil_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"fill_id"
],
"properties": {
"fill_id": {
"type": "string",
"minLength": 1,
"description": "Photon fill id (fil_…)."
}
}
}Find the medication matching a package NDC (11-digit National Drug Code). Photon GraphQL (clinical API): medicationFromNdc.
| Argument | Type | Description |
|---|---|---|
| package_ndc* | string | Package NDC. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"package_ndc"
],
"properties": {
"package_ndc": {
"type": "string",
"pattern": "^[0-9-]{10,13}$",
"description": "Package NDC."
}
}
}Get one order by id: state, patient, pharmacy, address, fulfillment status/tracking and its fills. Photon GraphQL: order.
| Argument | Type | Description |
|---|---|---|
| order_id* | string | Photon order id (ord_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string",
"minLength": 1,
"description": "Photon order id (ord_…)."
}
}
}Get the Photon organization these API keys belong to: id, name, type, NPI, address and contact details. Photon GraphQL (clinical API): organization.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get one patient by Photon id, with allergies, medication history, preferred pharmacies, and their prescriptions and orders (ids + states). Photon GraphQL: patient.
| Argument | Type | Description |
|---|---|---|
| patient_id* | string | Photon patient id (pat_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"patient_id"
],
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"description": "Photon patient id (pat_…)."
}
}
}Get one pharmacy by Photon id: name, NPI, NCPDP, address, phone, fax and fulfillment types. Photon GraphQL: pharmacy.
| Argument | Type | Description |
|---|---|---|
| pharmacy_id* | string | Photon pharmacy id (phr_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"pharmacy_id"
],
"properties": {
"pharmacy_id": {
"type": "string",
"minLength": 1,
"description": "Photon pharmacy id (phr_…)."
}
}
}Get one prescription by id: state, prescriber, patient, medication (with RxCUI/NDC codes), quantity, refills and fills remaining, days supply, directions, notes, diagnoses, dates and fills. Photon GraphQL: prescription.
| Argument | Type | Description |
|---|---|---|
| prescription_id* | string | Photon prescription id (rx_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"prescription_id"
],
"properties": {
"prescription_id": {
"type": "string",
"minLength": 1,
"description": "Photon prescription id (rx_…)."
}
}
}List the organization's treatment catalogs (the medications it prescribes) with their treatments and prescription templates. Photon GraphQL: catalogs.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the dispense units Photon accepts on a prescription (e.g. Each, Milliliter, Tablet). Photon GraphQL: dispenseUnits.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the packages (package NDCs) of a PRODUCT-level medication from list_medication_products. Photon GraphQL: medicationPackages.
| Argument | Type | Description |
|---|---|---|
| medication_id* | string | Medication id of a PRODUCT (from list_medication_products). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"medication_id"
],
"properties": {
"medication_id": {
"type": "string",
"minLength": 1,
"description": "Medication id of a PRODUCT (from list_medication_products)."
}
}
}List the prescribable products (strength + form) of a DRUG-level medication from search_medications. Photon GraphQL: medicationProducts.
| Argument | Type | Description |
|---|---|---|
| medication_id* | string | Medication id of a DRUG concept (from search_medications). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"medication_id"
],
"properties": {
"medication_id": {
"type": "string",
"minLength": 1,
"description": "Medication id of a DRUG concept (from search_medications)."
}
}
}List pharmacy orders, filterable by patient and state (ROUTING, PENDING, PLACED, COMPLETED, CANCELED, ERROR). Each has the pharmacy, delivery address, fulfillment (type, state, carrier, tracking number) and fills. Photon GraphQL: orders.
| Argument | Type | Description |
|---|---|---|
| after | string | Cursor: the id of the last item of the previous page. |
| first | integer | Page size (forward pagination). |
| state | string | Order state. |
| patient_id | string | Only this patient's orders (pat_…). |
| patient_name | string | Filter by patient name. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Cursor: the id of the last item of the previous page."
},
"first": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (forward pagination)."
},
"state": {
"enum": [
"ROUTING",
"PENDING",
"PLACED",
"COMPLETED",
"CANCELED",
"ERROR"
],
"type": "string",
"description": "Order state."
},
"patient_id": {
"type": "string",
"description": "Only this patient's orders (pat_…)."
},
"patient_name": {
"type": "string",
"description": "Filter by patient name."
}
}
}List the organization's patients (id, external id, name, date of birth, sex, contact, address), optionally filtered by name. Photon GraphQL: patients.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by patient name (partial match). |
| after | string | Cursor: the id of the last item of the previous page. |
| first | integer | Page size (forward pagination). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Filter by patient name (partial match)."
},
"after": {
"type": "string",
"description": "Cursor: the id of the last item of the previous page."
},
"first": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (forward pagination)."
}
}
}List the organization's prescriptions, filterable by patient, prescriber and state (ACTIVE, EXPIRED, DEPLETED, CANCELED). Each has the medication, quantity, refills/fills remaining, directions, diagnoses and fills. Photon GraphQL: prescriptions.
| Argument | Type | Description |
|---|---|---|
| after | string | Cursor: the id of the last item of the previous page. |
| first | integer | Page size (forward pagination). |
| state | string | Prescription state. |
| patient_id | string | Only this patient's prescriptions (pat_…). |
| patient_name | string | Filter by patient name. |
| prescriber_id | string | Only prescriptions written by this prescriber (Photon user id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Cursor: the id of the last item of the previous page."
},
"first": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (forward pagination)."
},
"state": {
"enum": [
"ACTIVE",
"EXPIRED",
"DEPLETED",
"CANCELED"
],
"type": "string",
"description": "Prescription state."
},
"patient_id": {
"type": "string",
"description": "Only this patient's prescriptions (pat_…)."
},
"patient_name": {
"type": "string",
"description": "Filter by patient name."
},
"prescriber_id": {
"type": "string",
"description": "Only prescriptions written by this prescriber (Photon user id)."
}
}
}List the organization's users (prescribers and staff): id, name, email, NPI, credentials and roles — use an id as prescriber_id in list_prescriptions. Photon GraphQL (clinical API): users.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by user name. |
| page_num | integer | Page number (1-based). |
| page_size | integer | Page size (default 50, max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Filter by user name."
},
"page_num": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number (1-based)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (default 50, max 100)."
}
}
}Screen proposed medications for a patient against drug-drug and drug-allergy (and diagnosis) interactions, using the patient's allergies, medication history and existing prescriptions. READ-ONLY: nothing is written or prescribed. Returns alerts with type (DRUG, ALLERGEN, CONDITION), severity (MINOR, MODERATE, MAJOR), a description and the involved medications/allergens. Photon GraphQL (clinical API): prescriptionScreen.
| Argument | Type | Description |
|---|---|---|
| patient_id* | string | Photon patient id (pat_…). |
| treatment_ids* | array | Medication/treatment ids to screen (med_…, from search_medications or a catalog). |
| diagnosis_codes | array | Optional ICD-10 codes to screen against, e.g. ['I10']. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"patient_id",
"treatment_ids"
],
"properties": {
"patient_id": {
"type": "string",
"minLength": 1,
"description": "Photon patient id (pat_…)."
},
"treatment_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Medication/treatment ids to screen (med_…, from search_medications or a catalog)."
},
"diagnosis_codes": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 20,
"description": "Optional ICD-10 codes to screen against, e.g. ['I10']."
}
}
}Search Photon's allergen list by name (fuzzy), e.g. to map a patient's reported allergy to an allergen id/RxCUI. Photon GraphQL: allergens.
| Argument | Type | Description |
|---|---|---|
| name* | string | Allergen name, e.g. 'penicillin'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Allergen name, e.g. 'penicillin'."
}
}
}Search prescribable medical equipment/supplies (e.g. glucose test strips) by name. Photon GraphQL: medicalEquipment.
| Argument | Type | Description |
|---|---|---|
| name | string | Equipment name (partial). |
| after | string | Cursor: the id of the last item of the previous page. |
| first | integer | Page size (forward pagination). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Equipment name (partial)."
},
"after": {
"type": "string",
"description": "Cursor: the id of the last item of the previous page."
},
"first": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (forward pagination)."
}
}
}Search Photon's medication database by drug name (partial) or code (RxCUI, NDC or SKU). Returns DRUG-level concepts with RxCUI/NDC codes, schedule, controlled flag, strength and form; drill down with list_medication_products / list_medication_packages. Photon GraphQL: medications.
| Argument | Type | Description |
|---|---|---|
| code | string | RxCUI, NDC or SKU. |
| name | string | Drug name (partial), e.g. 'amoxicillin'. |
| after | string | Cursor: the id of the last item of the previous page. |
| first | integer | Page size (forward pagination). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"type": "string",
"description": "RxCUI, NDC or SKU."
},
"name": {
"type": "string",
"description": "Drug name (partial), e.g. 'amoxicillin'."
},
"after": {
"type": "string",
"description": "Cursor: the id of the last item of the previous page."
},
"first": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (forward pagination)."
}
}
}Search pharmacies by name and/or near a location (latitude/longitude + radius in miles), by fulfillment type (PICK_UP = retail, MAIL_ORDER). Returns NPI, NCPDP, address, phone, fax. Photon GraphQL: pharmacies.
| Argument | Type | Description |
|---|---|---|
| name | string | Pharmacy name (partial). |
| type | string | Fulfillment type (Photon's default is PICK_UP). |
| first | integer | Page size (forward pagination). |
| offset | integer | Number of results to skip (offset pagination). |
| latitude | number | Search center latitude. |
| longitude | number | Search center longitude. |
| radius_miles | integer | Search radius in miles (with latitude/longitude). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Pharmacy name (partial)."
},
"type": {
"enum": [
"PICK_UP",
"MAIL_ORDER"
],
"type": "string",
"description": "Fulfillment type (Photon's default is PICK_UP)."
},
"first": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (forward pagination)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of results to skip (offset pagination)."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Search center latitude."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Search center longitude."
},
"radius_miles": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Search radius in miles (with latitude/longitude)."
}
}
}