particlehealth

Query Particle Health patient records across connected clinical networks.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
99%
命名の品質
78%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'particle_search_network_participants' name length outside 3-30 rangeparticle_search_network_participants 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,343トークン数(ツール定義)
~1.8 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.83%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "particlehealth": {
      "url": "https://particlehealth.usefulapi.io/mcp"
    }
  }
}

リモートエンドポイント

https://particlehealth.usefulapi.io/mcpstreamable-http

できること

ツール一覧

ツール(11)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢particle_get_patient(particle_patient_id)

Fetch a single patient record by its Particle patient id. Endpoint: GET /api/v2/patients/{particle_patient_id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "particle_patient_id": {
      "type": "string",
      "description": "Particle-assigned patient id (from submit/search)."
    }
  },
  "required": [
    "particle_patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢particle_search_patient(given_name, family_name, date_of_birth, gender, patient_id, ...)

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",
  "properties": {
    "given_name": {
      "type": "string",
      "description": "Patient's legal first / given name."
    },
    "family_name": {
      "type": "string",
      "description": "Patient's legal last / family name."
    },
    "date_of_birth": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of birth, YYYY-MM-DD."
    },
    "gender": {
      "type": "string",
      "enum": [
        "MALE",
        "FEMALE"
      ],
      "description": "Administrative gender: MALE or FEMALE."
    },
    "patient_id": {
      "type": "string",
      "description": "Your own external identifier for this patient (echoed back by Particle)."
    },
    "address_city": {
      "type": "string",
      "description": "City of the patient's home address."
    },
    "address_state": {
      "type": "string",
      "description": "Two-letter US state code, e.g. NY."
    },
    "postal_code": {
      "type": "string",
      "description": "5-digit ZIP / postal code."
    },
    "address_lines": {
      "description": "Street address lines, e.g. [\"123 Main St\"].",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "email": {
      "description": "Patient email address.",
      "type": "string"
    },
    "telephone": {
      "description": "Patient phone number.",
      "type": "string"
    },
    "ssn": {
      "description": "Social Security Number (optional; improves demographic match quality).",
      "type": "string"
    },
    "consent": {
      "description": "Consent objects, if required by your Particle data-sharing agreement.",
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    }
  },
  "required": [
    "given_name",
    "family_name",
    "date_of_birth",
    "gender",
    "patient_id",
    "address_city",
    "address_state",
    "postal_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢particle_get_query_status(particle_patient_id, query_id)

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",
  "properties": {
    "particle_patient_id": {
      "type": "string",
      "description": "Particle-assigned patient id."
    },
    "query_id": {
      "description": "Specific query id; omit for the latest COMPLETE query.",
      "type": "string"
    }
  },
  "required": [
    "particle_patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢particle_get_fhir(particle_patient_id, _since, _count, _page_token)

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",
  "properties": {
    "particle_patient_id": {
      "type": "string",
      "description": "Particle-assigned patient id."
    },
    "_since": {
      "description": "RFC3339 timestamp; only return resources updated since then.",
      "type": "string"
    },
    "_count": {
      "description": "Page size (max resources per page).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "_page_token": {
      "description": "Opaque token from a previous page's `link` to fetch the next page.",
      "type": "string"
    }
  },
  "required": [
    "particle_patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢particle_get_fhir_by_type(particle_patient_id, resource_type, _since, _count, _page_token)

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",
  "properties": {
    "particle_patient_id": {
      "type": "string",
      "description": "Particle-assigned patient id."
    },
    "resource_type": {
      "type": "string",
      "description": "FHIR resource type, e.g. Condition, MedicationRequest, Observation, AllergyIntolerance."
    },
    "_since": {
      "description": "RFC3339 timestamp; only return resources updated since then.",
      "type": "string"
    },
    "_count": {
      "description": "Page size (max resources per page).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "_page_token": {
      "description": "Opaque token from a previous page's `link` to fetch the next page.",
      "type": "string"
    }
  },
  "required": [
    "particle_patient_id",
    "resource_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢particle_get_flat(particle_patient_id, _since, domain)

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",
  "properties": {
    "particle_patient_id": {
      "type": "string",
      "description": "Particle-assigned patient id."
    },
    "_since": {
      "description": "RFC3339 timestamp; only return data updated since then.",
      "type": "string"
    },
    "domain": {
      "description": "Filter to a single clinical domain, e.g. Condition, Medication, Encounter.",
      "type": "string"
    }
  },
  "required": [
    "particle_patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢particle_get_ccda(particle_patient_id)

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",
  "properties": {
    "particle_patient_id": {
      "type": "string",
      "description": "Particle-assigned patient id."
    }
  },
  "required": [
    "particle_patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢particle_search_network_participants(state, zipcode, continuation_token)

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",
  "properties": {
    "state": {
      "description": "Two-letter US state code to filter participants, e.g. NY.",
      "type": "string"
    },
    "zipcode": {
      "description": "5-digit ZIP code to filter participants (ignored if `state` is set).",
      "type": "string"
    },
    "continuation_token": {
      "description": "Token from a previous response to fetch the next page.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢particle_get_patient_documents(patient_id)

List the documents uploaded / available for a patient. Endpoint: GET /api/v1/documents/{patient_id}.

入力スキーマ

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "description": "Patient id whose documents to list."
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴particle_submit_patient(given_name, family_name, date_of_birth, gender, patient_id, ...)

⚠️ 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",
  "properties": {
    "given_name": {
      "type": "string",
      "description": "Patient's legal first / given name."
    },
    "family_name": {
      "type": "string",
      "description": "Patient's legal last / family name."
    },
    "date_of_birth": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of birth, YYYY-MM-DD."
    },
    "gender": {
      "type": "string",
      "enum": [
        "MALE",
        "FEMALE"
      ],
      "description": "Administrative gender: MALE or FEMALE."
    },
    "patient_id": {
      "type": "string",
      "description": "Your own external identifier for this patient (echoed back by Particle)."
    },
    "address_city": {
      "type": "string",
      "description": "City of the patient's home address."
    },
    "address_state": {
      "type": "string",
      "description": "Two-letter US state code, e.g. NY."
    },
    "postal_code": {
      "type": "string",
      "description": "5-digit ZIP / postal code."
    },
    "address_lines": {
      "description": "Street address lines, e.g. [\"123 Main St\"].",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "email": {
      "description": "Patient email address.",
      "type": "string"
    },
    "telephone": {
      "description": "Patient phone number.",
      "type": "string"
    },
    "ssn": {
      "description": "Social Security Number (optional; improves demographic match quality).",
      "type": "string"
    },
    "consent": {
      "description": "Consent objects, if required by your Particle data-sharing agreement.",
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    }
  },
  "required": [
    "given_name",
    "family_name",
    "date_of_birth",
    "gender",
    "patient_id",
    "address_city",
    "address_state",
    "postal_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴particle_create_query(particle_patient_id, purpose_of_use, hints, specialties)

⚠️ 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",
  "properties": {
    "particle_patient_id": {
      "type": "string",
      "description": "Particle-assigned patient id to run the query for."
    },
    "purpose_of_use": {
      "type": "string",
      "description": "Purpose of use for the request, e.g. TREATMENT."
    },
    "hints": {
      "description": "Postal codes to hint where records may be found.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "specialties": {
      "description": "Specialties to focus the query, e.g. [\"ONCOLOGY\"].",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "particle_patient_id",
    "purpose_of_use"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 11 件