MCP 服务器

particlehealth

io.usefulapi/particlehealth
数据与分析 医疗健康 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Searches and retrieves patient clinical records across connected networks in FHIR, C-CDA, document, and flattened formats.

particle_create_query
Create clinical-record query (WRITE)
⚠️ WRITE: initiate a nationwide clinical-record retrieval for a patient. Returns a query_id — poll particle_get_query_status for progress. Endpoint: POST /api/v2/patients/{particle_patient_id}/query.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['particle_patient_id', 'purpose_of_use'], 'properties': {'hints': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Postal codes to hint where records may be found.'}, 'specialties': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Specialties to focus the query, e.g. ["ONCOLOGY"].'}, 'purpose_of_use': {'type': 'string', 'description': 'Purpose of use for the request, e.g. TREATMENT.'}, 'particle_patient_id': {'type': 'string', 'description': 'Particle-assigned patient id to run the query for.'}}}
particle_get_ccda
Get C-CDA document(s)
Retrieve the patient's C-CDA clinical document(s). May be large and returned as XML/text — parsed if JSON, otherwise passed through as-is. Endpoint: GET /api/v2/patients/{particle_patient_id}/ccda.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['particle_patient_id'], 'properties': {'particle_patient_id': {'type': 'string', 'description': 'Particle-assigned patient id.'}}}
particle_get_fhir
Get FHIR bundle
Retrieve the patient's complete clinical record as a FHIR searchset Bundle. Supports incremental sync and pagination. Endpoint: GET /api/v2/patients/{particle_patient_id}/fhir.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['particle_patient_id'], 'properties': {'_count': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page size (max resources per page).', 'exclusiveMinimum': 0}, '_since': {'type': 'string', 'description': 'RFC3339 timestamp; only return resources updated since then.'}, '_page_token': {'type': 'string', 'description': "Opaque token from a previous page's `link` to fetch the next page."}, 'particle_patient_id': {'type': 'string', 'description': 'Particle-assigned patient id.'}}}
particle_get_fhir_by_type
Get FHIR resources by type
Retrieve only one FHIR resource type for a patient (e.g. Condition, MedicationRequest, Observation) as a Bundle. Supports the same pagination as particle_get_fhir. Endpoint: GET /api/v2/patients/{particle_patient_id}/fhir/{type}.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['particle_patient_id', 'resource_type'], 'properties': {'_count': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Page size (max resources per page).', 'exclusiveMinimum': 0}, '_since': {'type': 'string', 'description': 'RFC3339 timestamp; only return resources updated since then.'}, '_page_token': {'type': 'string', 'description': "Opaque token from a previous page's `link` to fetch the next page."}, 'resource_type': {'type': 'string', 'description': 'FHIR resource type, e.g. Condition, MedicationRequest, Observation, AllergyIntolerance.'}, 'particle_patient_id': {'type': 'string', 'description': 'Particle-assigned patient id.'}}}
particle_get_flat
Get flattened clinical data
Retrieve the patient's clinical data in Particle's flattened (de-nested) format, easier to read than raw FHIR. Optionally filter to one domain. Endpoint: GET /api/v2/patients/{particle_patient_id}/flat.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['particle_patient_id'], 'properties': {'_since': {'type': 'string', 'description': 'RFC3339 timestamp; only return data updated since then.'}, 'domain': {'type': 'string', 'description': 'Filter to a single clinical domain, e.g. Condition, Medication, Encounter.'}, 'particle_patient_id': {'type': 'string', 'description': 'Particle-assigned patient id.'}}}
particle_get_patient
Get patient record
Fetch a single patient record by its Particle patient id. Endpoint: GET /api/v2/patients/{particle_patient_id}.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['particle_patient_id'], 'properties': {'particle_patient_id': {'type': 'string', 'description': 'Particle-assigned patient id (from submit/search).'}}}
particle_get_patient_documents
List patient documents
List the documents uploaded / available for a patient. Endpoint: GET /api/v1/documents/{patient_id}.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['patient_id'], 'properties': {'patient_id': {'type': 'string', 'description': 'Patient id whose documents to list.'}}}
particle_get_query_status
Get query status
Get the status of a clinical-record retrieval query (state, timing, demographics, files). Omit query_id to get the latest COMPLETE query. Endpoint: GET /api/v2/patients/{particle_patient_id}/query.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['particle_patient_id'], 'properties': {'query_id': {'type': 'string', 'description': 'Specific query id; omit for the latest COMPLETE query.'}, 'particle_patient_id': {'type': 'string', 'description': 'Particle-assigned patient id.'}}}
particle_search_network_participants
Search network participants
List the health-data network participants (organizations Particle can query). Optionally filter by state or zipcode, and page with continuation_token. Endpoint: GET /api/v1/networkparticipants (with /state/{state} and /zipcode/{zip} variants).
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'state': {'type': 'string', 'description': 'Two-letter US state code to filter participants, e.g. NY.'}, 'zipcode': {'type': 'string', 'description': '5-digit ZIP code to filter participants (ignored if `state` is set).'}, 'continuation_token': {'type': 'string', 'description': 'Token from a previous response to fetch the next page.'}}}
particle_search_patient
Search for a patient
Search for an existing patient by demographics (non-mutating). Returns an array of matching patient objects (or a 204 message when none match). Endpoint: POST /api/v2/patients/search.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['given_name', 'family_name', 'date_of_birth', 'gender', 'patient_id', 'address_city', 'address_state', 'postal_code'], 'properties': {'ssn': {'type': 'string', 'description': 'Social Security Number (optional; improves demographic match quality).'}, 'email': {'type': 'string', 'description': 'Patient email address.'}, 'gender': {'enum': ['MALE', 'FEMALE'], 'type': 'string', 'description': 'Administrative gender: MALE or FEMALE.'}, 'consent': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Consent objects, if required by your Particle data-sharing agreement.'}, 'telephone': {'type': 'string', 'description': 'Patient phone number.'}, 'given_name': {'type': 'string', 'description': "Patient's legal first / given name."}, 'patient_id': {'type': 'string', 'description': 'Your own external identifier for this patient (echoed back by Particle).'}, 'family_name': {'type': 'string', 'description': "Patient's legal last / family name."}, 'postal_code': {'type': 'string', 'description': '5-digit ZIP / postal code.'}, 'address_city': {'type': 'string', 'description': "City of the patient's home address."}, 'address_lines': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Street address lines, e.g. ["123 Main St"].'}, 'address_state': {'type': 'string', 'description': 'Two-letter US state code, e.g. NY.'}, 'date_of_birth': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Date of birth, YYYY-MM-DD.'}}}
particle_submit_patient
Submit (register) patient (WRITE)
⚠️ WRITE: register a new patient with Particle Health. Returns the patient with a system-generated particle_patient_id (use it for subsequent queries). Endpoint: POST /api/v2/patients.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['given_name', 'family_name', 'date_of_birth', 'gender', 'patient_id', 'address_city', 'address_state', 'postal_code'], 'properties': {'ssn': {'type': 'string', 'description': 'Social Security Number (optional; improves demographic match quality).'}, 'email': {'type': 'string', 'description': 'Patient email address.'}, 'gender': {'enum': ['MALE', 'FEMALE'], 'type': 'string', 'description': 'Administrative gender: MALE or FEMALE.'}, 'consent': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Consent objects, if required by your Particle data-sharing agreement.'}, 'telephone': {'type': 'string', 'description': 'Patient phone number.'}, 'given_name': {'type': 'string', 'description': "Patient's legal first / given name."}, 'patient_id': {'type': 'string', 'description': 'Your own external identifier for this patient (echoed back by Particle).'}, 'family_name': {'type': 'string', 'description': "Patient's legal last / family name."}, 'postal_code': {'type': 'string', 'description': '5-digit ZIP / postal code.'}, 'address_city': {'type': 'string', 'description': "City of the patient's home address."}, 'address_lines': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Street address lines, e.g. ["123 Main St"].'}, 'address_state': {'type': 'string', 'description': 'Two-letter US state code, e.g. NY.'}, 'date_of_birth': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Date of birth, YYYY-MM-DD.'}}}
已更改
particle_create_query
2026年10月2日 02:40
已更改
particle_submit_patient
2026年10月2日 02:40
已更改
particle_get_patient_documents
2026年10月2日 02:40
已更改
particle_search_network_participants
2026年10月2日 02:40
已更改
particle_get_ccda
2026年10月2日 02:40
已更改
particle_get_flat
2026年10月2日 02:40
已更改
particle_get_fhir_by_type
2026年10月2日 02:40
已更改
particle_get_fhir
2026年10月2日 02:40
已更改
particle_get_query_status
2026年10月2日 02:40
已更改
particle_search_patient
2026年10月2日 02:40
已更改
particle_get_patient
2026年10月2日 02:40
已添加
particle_create_query
2026年9月30日 02:40
已添加
particle_submit_patient
2026年9月30日 02:40
已添加
particle_get_patient_documents
2026年9月30日 02:40
已添加
particle_search_network_participants
2026年9月30日 02:40
已添加
particle_get_ccda
2026年9月30日 02:40
已添加
particle_get_flat
2026年9月30日 02:40
已添加
particle_get_fhir_by_type
2026年9月30日 02:40
已添加
particle_get_fhir
2026年9月30日 02:40
已添加
particle_get_query_status
2026年9月30日 02:40
已添加
particle_search_patient
2026年9月30日 02:40
已添加
particle_get_patient
2026年9月30日 02:40