안전한 MCP 툴링을 활용한 HealthcareAI 구축하기
요약
의료 분야 AI 에이전트 구축 시 보안을 위해 MCP(Model Context Protocol)를 제어 경계로 활용하는 아키텍처를 제안합니다. 데이터베이스 직접 접근 대신 도메인 특화된 권한 부여된 툴을 사용하고, 중요 작업에는 초안-확인-실행 패턴을 적용해야 합니다.
핵심 포인트
- MCP 레이어를 통한 스키마 및 세션 권한 검증
- run_sql 등 광범위한 도구 대신 도메인 특화 도구 사용
- 위험 수준에 따른 도구 설계 및 읽기/쓰기 권한 분리
- 중요 임상 작업을 위한 초안-확인-실행 패턴 적용
- 추적 가능성을 위한 감사 로그 생성 및 데이터 비식별화
의료 분야의 AI 에이전트(AI agents)는 내부 시스템에 대한 무제한적인 접근 권한을 가져서는 안 됩니다.
즉, 다음과 같은 곳에 직접 접근해서는 안 된다는 의미입니다:
Qdrant
Neo4j
Postgres
...
HealthcareAI의 경우, 모든 기능은 좁고 권한이 부여된 MCP 툴(MCP tool)을 거쳐야 합니다.
핵심 아이디어
아키텍처는 다음과 같은 형태여야 합니다:
AI / CrewAI / Chat UI
↓
Permissioned MCP Tools
...
AI 레이어는 데이터베이스, 로그, 인프라 또는 병원 관리 API에 직접 접촉해서는 안 됩니다.
MCP 레이어가 제어 경계(control boundary)가 됩니다.
MCP 레이어는 다음을 검증합니다:
schema (스키마)
role (역할)
session authorization (세션 권한 부여)
...
안전한 도구의 예시
좋은 MCP 도구는 도메인 특화적(domain-specific)입니다.
rag.retrieve_context
guidelines.search
guidelines.get_citation
...
이러한 도구들은 가공되지 않은 시스템 접근 권한 대신 제어된 기능들을 노출합니다.
피해야 할 나쁜 도구
다음과 같은 도구는 피해야 합니다:
run_sql
run_cypher
execute_shell
...
이것들은 범위가 너무 넓습니다.
권한을 부여하기 어렵고, 감사(audit)하기 어려우며, 의료 환경에서는 위험합니다.
위험 수준의 중요성
서로 다른 HealthcareAI 도구들은 서로 다른 위험 수준을 가져야 합니다.
Low (낮음) → observability summaries (관측 가능성 요약)
Medium (중간) → RAG retrieval (RAG 검색), guideline lookup (가이드라인 조회), KG search (지식 그래프 검색)
High (높음) → appointment booking (예약 관리)
...
도구 설계는 이러한 위험을 반영해야 합니다.
읽기 전용(Read-only) 도구는 권한 부여만 필요할 수 있습니다.
쓰기(Write) 도구는 확인(confirmation)을 요구해야 합니다.
중요한 임상 작업(Critical clinical actions)은 의사의 확인을 요구해야 합니다.
초안-확인-실행(Draft-confirm-execute) 패턴
쓰기 워크플로(write workflows)의 경우, HealthcareAI는 다음을 사용해야 합니다:
draft (초안) → confirm (확인) → execute (실행)
예약 흐름 예시:
hms.appointment.create_draft
↓
사용자가 의사, 시설, 시간대, 모드를 확인
...
처방 흐름 예시:
clinical.prescription.create_draft
↓
clinical.prescription.safety_check
...
AI는 초안을 작성할 수 있습니다.
AI는 보조할 수 있습니다.
하지만 AI가 중요한 의료 작업을 조용히(silently) 실행해서는 안 됩니다.
감사 이벤트 예시
모든 MCP 호출은 감사 로그(audit log)를 생성해야 합니다.
{
"event": "rag.retrieve_context",
"query_hash": "...",
...
환자 컨텍스트(patient context)의 경우, 민감한 필드는 비식별화(redacted)되어야 합니다.
{
"event": "patient_context.get_deidentified_summary",
"patient_ref_hash": "...",
...
감사 로그(Audit logs)는 시스템을 추적 가능(traceable)하고 검토 가능(reviewable)하게 만듭니다.
MCP 툴 체크리스트 (MCP tool checklist)
HealthcareAI 기능을 추가하기 전에 다음 사항을 확인하십시오:
✅ 서버 소유자가 명확함
✅ 입출력 스키마(Input/output schema)가 엄격함
✅ 가공되지 않은(raw) SQL/Cypher/shell/filesystem/제한 없는 HTTP 사용 금지
...
최종 규칙 (Final rule)
HealthcareAI는 "시스템 접근 권한을 가진 AI"가 되어서는 안 됩니다.
대신 다음과 같아야 합니다:
제어된 책임(controlled responsibility)을 가진 AI
만약 특정 기능이 다음과 같이 안전하게 표현될 수 없다면:
MCP 서버 (MCP server)
+ 툴/리소스/프롬프트 (tool/resource/prompt)
+ 스키마 (schema)
...
그 기능은 아직 구현되어서는 안 됩니다.
이것이 더 안전한 헬스케어 AI 아키텍처(healthcare AI architecture)를 위한 토대입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기