Patient Data MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_patient_by_idA | Look up a single patient by their unique patient ID. Args: patient_id: The numeric ID of the patient (e.g. 1, 42, 200). Returns: The patient record, or a "not found" message. |
| list_patients_above_ageA | List all patients whose age is strictly greater than the given value. Args: age: The age threshold. Returns patients older than this number. Returns: A formatted list of matching patients, or a message if none match. |
| find_patients_by_diseaseA | Find all patients diagnosed with a specific disease. The search is case-insensitive. Args: disease: The disease name to search for (e.g. "Diabetes", "asthma"). Returns: A formatted list of matching patients. |
| list_all_diseasesA | List all unique diseases present in the patient dataset. Useful for discovering what diseases can be queried. Returns: A sorted list of disease names. |
| search_patients_by_nameA | Search for patients whose name contains the given text. The search is case-insensitive and supports partial matches. Args: name: Full or partial patient name to search for (e.g. "john", "Smith"). Returns: A formatted list of matching patients. |
| get_patient_statisticsA | Get summary statistics for the entire patient dataset. Includes total count, age statistics, gender breakdown, and disease distribution. Returns: A formatted statistical summary. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct query: by ID, by age, by disease, by name, list diseases, and overall statistics. There is no overlap in their purposes, even though several search patients in different ways.
Tool names use a mix of verbs: get, list, find, search. While all are snake_case and readable, the pattern is not consistent across the set (e.g., 'get_patient_by_id' vs 'find_patients_by_disease').
With 6 tools, the server is well-scoped for a read-only patient data querying purpose. Each tool covers a distinct and necessary operation without unnecessary bloat.
The set covers all obvious read-only query needs: lookup by ID, filtering by age, disease, name, listing available diseases, and summary statistics. Missing write operations (create/update/delete) may be out of scope, but a generic 'list all patients' could be a minor gap.