# MCP Architecture Guide for Hospitals & Health Systems: Connecting Hospital Operations to AI Agents

> Source: https://ibl.ai/solutions/hospital-health-systems/mcp-guide

Home / Hospital & Health Systems / MCP Guide

A practical walkthrough for CIOs, CNOs, COOs, and health system technology leadership.

See the Hospital & Health Systems AI overview for business context, or the general MCP architecture guide for a broader introduction to MCP.

---

## In this guide

1. The health system data problem
2. Inventory your systems
3. Build MCP servers for each system
4. Add an MCP broker
5. Connect agents
6. Example: Patient flow optimization across a health system
7. Example: Supply chain disruption response
8. Example: Quality event investigation
9. Security checklist for health systems
10. Next steps

## 1. The health system data problem

Health systems run on fragmented platforms across multiple facilities. Clinical data lives in Epic or Cerner. Staffing runs through Kronos or UKG. Supply chain uses GHX or Vizient. Revenue cycle sits in Waystar or R1 RCM. Quality reporting goes through RL Solutions or Quantros.

Nurse managers waste hours checking staffing levels in one system, bed availability in another, and supply status in a third. A CNO trying to understand ED boarding across the system has to pull data from bed management, staffing, and the EHR — three systems, three dashboards, three sets of numbers to reconcile.

**MCP (Model Context Protocol)** solves this by giving AI agents a standardized way to query each system through a thin API wrapper called an MCP server. Every MCP server runs on **your infrastructure** — inside your network, under your control. No PHI ever leaves your servers.

The result: a nurse manager, physician, or administrator asks a question in natural language, and the agent pulls the answer from whichever systems hold the relevant data — all within your air-gapped environment.

## 2. Inventory your systems

Before building anything, catalog the systems your health system relies on. Each system becomes a candidate for an MCP server.

| System | Category | Example Products | API Standard |
|--------|----------|-----------------|-------------|
| EHR | Clinical | Epic, Cerner/Oracle Health, Meditech, CPSI | HL7 FHIR |
| Workforce Management | Staffing | Kronos/UKG, Symplr, AMN Healthcare, ShiftWizard | REST |
| Supply Chain | Procurement | GHX, Vizient, Premier, Cardinal Health | REST / EDI |
| Revenue Cycle | Billing | Waystar, Availity, Change Healthcare, R1 RCM | REST / X12 |
| Patient Flow | Operations | TeleTracking, Capacity IQ, Epic Rover | REST / HL7 |
| Quality & Safety | Compliance | RL Solutions, Quantros, Midas+, Leapfrog | REST |
| Nurse Call | Communication | Hill-Rom, Rauland, West-Com | REST / HL7 |
| SSO / Identity | Security | Okta, Azure AD, SAML, badge-based auth | SCIM / REST |

Your health system may use different products — what matters is the category. Every category is a candidate for an MCP server that runs within your network.

## 3. Build MCP servers for each system

Each system gets a thin API wrapper — an MCP server — that exposes a small set of tools. The server translates natural-language-friendly tool calls into the system's native API.

**Critical:** Every MCP server runs within your health system's network, across all facilities. No PHI, staffing data, or operational intelligence ever transits through any third-party infrastructure.

Example — an Epic MCP server (via HL7 FHIR) might expose these tools:

```
# Epic MCP Server (HL7 FHIR) — runs on YOUR servers
tools:
  - get_patient_census(unit, facility)
  - get_bed_availability(unit, facility, bed_type)
  - get_discharge_readiness(unit, criteria)
  - get_patient_acuity(unit)
  - search_orders(patient_id, order_type, status)
```

A Kronos/UKG MCP server might expose:

```
# Kronos/UKG MCP Server — runs on YOUR servers
tools:
  - get_staffing_levels(unit, shift, facility)
  - get_shift_coverage(unit, date_range)
  - find_available_staff(role, shift, facility)
  - get_overtime_alerts(facility, threshold)
```

Each server is a standalone service. If Epic has a maintenance window, the staffing server still works. If you switch from Kronos to UKG, you replace one MCP server — agents don't change.

## 4. Add an MCP broker

The broker sits between agents and MCP servers. It routes requests, enforces access policies, and logs everything for HIPAA compliance, Joint Commission surveys, and CMS audits.

**Why a broker matters for health systems:** HIPAA's minimum necessary standard and Joint Commission requirements demand strict access controls across facilities. Only authorized personnel should access specific patient or operational data. The broker enforces this — every request is authenticated, authorized, and logged.

| Role | Can Access | Cannot Access |
|------|-----------|---------------|
| Chief Nursing Officer | System-wide staffing, quality metrics, all units | Individual patient records (unless clinical role) |
| Unit Nurse Manager | Their unit patients, staffing, supplies, quality | Other units' data, system financials |
| Charge Nurse | Current shift patients, staffing for their unit | Off-shift data, financial reports |
| Department Administrator | Department operations, budget, supply chain | Clinical patient data, other departments |

Every request through the broker generates an audit log entry: who asked, what they asked, which systems were queried, what was returned. These logs are exportable for Joint Commission surveys, CMS compliance reviews, and HIPAA audits.

## 5. Connect agents

Agents don't connect to Epic, Kronos, or GHX directly. They talk to the broker, which routes to the right MCP server based on the question.

```
Nurse Manager asks:
  "What's the current census on 4 North, and
   are we staffed appropriately for tonight's shift?"

Broker routes to:
  1. Epic MCP → get_patient_census("4_north", "main_campus")
  2. Kronos MCP → get_staffing_levels("4_north", "night", "main_campus")

Agent responds:
  "4 North current census: 28 of 32 beds occupied
   (87.5% occupancy). 3 patients pending discharge
   tomorrow AM.

   Tonight's staffing: 5 RNs, 2 CNAs scheduled.
   At 28 patients, your ratio is 5.6:1 (target 5:1).
   One additional RN would bring you to target.

   Float pool: 2 RNs available for tonight."

All data stayed within your network.
```

## 6. Example: Patient flow optimization across a health system

**Scenario:** The CNO needs to understand ED boarding across the system and identify capacity solutions.

```
CNO asks:
  "How many patients are boarding in EDs across
   all facilities, and where do we have bed
   availability to decompress?"

Agent flow:
  1. Epic MCP → get_patient_census(
       unit="ED", facility="all",
       filter="boarding > 4 hours"
     )
  2. Epic MCP → get_bed_availability(
       facility="all", bed_type="med-surg"
     )
  3. Kronos MCP → get_staffing_levels(
       unit="med-surg", shift="current",
       facility="all"
     )

Agent responds:
  "System-wide ED boarding: 23 patients across
   4 facilities.

   - Main Campus ED: 12 boarding (avg 6.2 hours)
   - West Campus ED: 6 boarding (avg 4.8 hours)
   - South Campus ED: 3 boarding (avg 3.1 hours)
   - North Campus ED: 2 boarding (avg 2.5 hours)

   Available med-surg beds:
   - South Campus: 8 beds, fully staffed
   - North Campus: 5 beds, fully staffed
   - West Campus: 2 beds, 1 RN short
   - Main Campus: 0 beds available

   RECOMMENDATION: Transfer 4-6 patients from
   Main Campus to South Campus (8 open beds,
   fully staffed, 12 minutes by transport).
   This would reduce Main Campus boarding by 50%."

All operational data within your network.
```

## 7. Example: Supply chain disruption response

**Scenario:** A supply chain director needs to manage a critical supply shortage across facilities.

```
Supply Chain Director asks:
  "We just got notice that our IV pump tubing
   supplier is on backorder for 3 weeks. What's
   our current inventory across facilities, and
   what are our options?"

Agent flow:
  1. GHX MCP → get_inventory(
       item="IV pump tubing",
       facility="all"
     )
  2. GHX MCP → search_alternatives(
       item="IV pump tubing",
       compatibility="Alaris IV pumps"
     )
  3. Epic MCP → get_usage_rate(
       item="IV pump tubing",
       date_range="last_30_days",
       facility="all"
     )

Agent responds:
  "IV pump tubing inventory across system:

   - Main Campus: 340 units (6.2 days at current
     usage of 55/day)
   - West Campus: 180 units (7.5 days at 24/day)
   - South Campus: 120 units (8.0 days at 15/day)
   - North Campus: 95 units (9.5 days at 10/day)

   Total system inventory: 735 units
   System daily usage: 104 units/day
   Days of supply: 7.1 days (backorder: 21 days)

   SHORTFALL: ~1,449 units needed to bridge
   the 3-week backorder.

   Alternative suppliers (Alaris-compatible):
   - Medline: 800 units available, ships 2 days.
     Cost: +12% over contract price.
   - B. Braun: 600 units available, ships 3 days.
     Cost: +8% over contract price.

   RECOMMENDATION: Order from both suppliers
   immediately. Redistribute current inventory
   to equalize days-of-supply across facilities."

Supply chain data never left your network.
```

## 8. Example: Quality event investigation

**Scenario:** A quality officer needs to investigate a patient fall event and identify contributing factors.

```
Quality Officer asks:
  "We had a patient fall on 3 West last night
   at 2:15 AM. Pull the relevant data for the
   root cause analysis."

Agent flow:
  1. Safety MCP → get_incident_report(
       unit="3_west",
       type="fall",
       datetime="2026-01-28T02:15"
     )
  2. Epic MCP → get_patient_summary(
       patient_id="from_incident"
     )
  3. Kronos MCP → get_staffing_levels(
       unit="3_west",
       shift="night",
       date="2026-01-28"
     )
  4. Epic MCP → get_fall_risk_assessment(
       patient_id="from_incident"
     )

Agent responds:
  "Fall event investigation — 3 West, 01/28/2026
   at 02:15 AM:

   Patient: 78-year-old female, admitted for
   pneumonia. Morse Fall Scale score: 55 (high risk).
   Fall precautions were ordered but bed alarm was
   not activated per nursing documentation.

   Staffing at time of fall:
   - 3 RNs for 24 patients (8:1 ratio, target 5:1)
   - 1 CNA (called off, not replaced)
   - Unit was 1 RN and 1 CNA below standard

   Contributing factors identified:
   1. High fall risk score with incomplete
      precaution implementation (bed alarm)
   2. Below-standard staffing (8:1 vs. 5:1 target)
   3. CNA call-off not backfilled
   4. Last rounding documented at 01:30 AM
      (45 minutes before fall)

   Patient outcome: No injury detected. X-ray
   negative. Physician notified at 02:20 AM.

   RECOMMENDATION: Include staffing levels and
   bed alarm compliance in RCA action items."

All investigation data within your network.
Full audit trail for Joint Commission.
```

## 9. Security checklist for health systems

Health system AI has unique security requirements driven by HIPAA, Joint Commission standards, CMS Conditions of Participation, and patient safety obligations.

- ✓ **All MCP servers on hospital infrastructure** — no cloud relay, no third-party processing. PHI never transits through any external system.
- ✓ **Air-gapped deployment available** — for facilities requiring maximum PHI protection, the entire AI infrastructure can run without internet connectivity.
- ✓ **Role-based access per HIPAA minimum necessary** — users only access the data needed for their specific role. Enforced automatically at the broker level across all facilities.
- ✓ **Full audit logs** — every agent interaction logged with who asked, what was queried, and what was returned. Exportable for Joint Commission surveys, CMS compliance, and HIPAA audits.
- ✓ **No BAA needed with AI vendor** — you own and operate everything. No third-party vendor processes or stores PHI, so no Business Associate Agreement is required.
- ✓ **Full code ownership** — you own the entire platform source code. Inspect, modify, and audit every line. No black-box vendor dependencies.
- ✓ **Encryption at rest and in transit** — all data encrypted within your network. TLS between components, AES-256 at rest.
- ✓ **AI assists clinical decisions, never replaces clinical judgment** — agents provide operational intelligence and decision support. Clinicians maintain full supervisory control over patient care decisions.

## 10. Next steps

Ready to connect your health system's operations to AI agents — within your network, with full code ownership?

1. **Free 30-minute assessment** — we'll map your systems, identify MCP server candidates, and outline the architecture. [Schedule now →](/contact)
2. **Calculate your costs** — see how ibl.ai compares to per-clinician health system AI tools. [AI Cost Calculator →](/solutions/hospital-health-systems/ai-cost-calculator)
3. **Check your readiness** — 5 questions, 2 minutes. [AI Readiness Assessment →](/solutions/hospital-health-systems/ai-readiness-assessment)
4. **Explore the Health Systems AI overview** — see all available agents and capabilities. [Hospital & Health Systems AI Solutions →](/solutions/hospital-health-systems)

---

**Also available:** MCP Architecture Guides for [Enterprise](/solutions/enterprise/mcp-guide), [Government](/solutions/government/mcp-guide), [Higher Education](/solutions/higher-education/mcp-guide), [K-12](/solutions/k-12/mcp-guide), [Legal](/solutions/legal/mcp-guide), [Financial Services](/solutions/financial-services/mcp-guide), and [Medical/Healthcare](/solutions/medical-healthcare/mcp-guide).

For a general introduction to MCP, see the [MCP Architecture Guide](/service/mcp-servers/guide).

---

*[View on ibl.ai](https://ibl.ai/solutions/hospital-health-systems/mcp-guide)*
