Skip to main content
Glama

oncofiles

Tests Python MCP Claude ChatGPT License

귀하의 의료 기록은 Gmail, Google Drive, Calendar에 흩어져 있습니다. Oncofiles는 이 모든 것을 읽고 정리하여 AI를 통해 제공하므로, Claude나 ChatGPT에서 건강 상태에 대해 자연스럽게 질문할 수 있습니다.

oncofiles.com | 데모 대시보드 | 개인정보 처리방침

이것은 무엇인가요?

Oncofiles는 암 환자와 간병인을 위해 구축된 MCP 서버입니다. Google Drive, Gmail, Calendar에 연결하여 모든 의료 문서(검사 결과, CT 스캔, 병리 보고서, 처방전 등)를 읽고, Claude, ChatGPT 또는 모든 MCP 클라이언트와 같은 AI 채팅을 통해 접근할 수 있게 합니다.

실제 필요에 의해 구축됨: 아내의 암 치료를 관리하던 간병인이 직접 만들었습니다. 수백 개의 문서, 수십 명의 의사, 끊임없이 변화하는 검사 결과 속에서 Oncofiles는 혼란을 정리하여 서류를 찾는 대신 치료에 집중할 수 있도록 돕습니다.

자매 프로젝트: Oncoteam — Oncofiles 데이터를 분석하는 AI 에이전트로, 검사 수치 추이를 추적하고, 임상 시험을 검색하며, 종양 전문의에게 질문할 내용을 준비합니다.

데이터 주권: 모든 데이터는 귀하의 Google Drive에 유지됩니다. 제3자 데이터 처리는 없습니다. 언제든지 연결을 해제할 수 있으며, 파일은 항상 귀하의 소유입니다.

다중 환자 지원 (v4.0 이상)

Oncofiles는 단일 인스턴스에서 여러 환자를 지원합니다. 각 환자는 다음을 제공받습니다:

  • 완벽한 데이터 격리 — 문서, 검사 결과, 치료 이벤트, 이메일 및 캘린더 항목은 환자별로 범위가 지정됩니다.

  • 개별 베어러 토큰(Bearer Token) — 각 환자(또는 간병인)는 고유한 onco_* 토큰을 가집니다.

  • 환자별 OAuth — Google Drive, Gmail, Calendar는 환자별로 승인됩니다.

  • 대시보드 환자 선택기 — 웹 대시보드에서 환자 간 전환이 가능합니다.

신규 환자 온보딩

  1. 대시보드 마법사: 대시보드를 열고 "+ New Patient"를 클릭한 후 4단계 마법사를 따릅니다.

  2. API: {patient_id, display_name}과 함께 POST /api/patients를 호출하면 베어러 토큰이 반환됩니다.

  3. GDrive 연결: /oauth/authorize/drive?patient_id=X를 방문하여 문서 동기화를 승인합니다.

  4. 첫 동기화 트리거: {patient_id}와 함께 POST /api/sync-trigger를 호출하여 문서를 가져옵니다.

주요 기능

  • 14개 모듈에 걸친 76개의 MCP 도구를 통한 포괄적인 의료 데이터 관리

  • 14개 문서 카테고리 — 검사 결과, 병리, 영상 의학, 유전학, 수술, 상담, 처방전 등

  • 검사 수치 추적 — 수치 저장, 추이 추적, 항암 프로토콜을 위한 주기별 안전성 검사

  • Google Drive 동기화 — 자동 OCR 보조 파일을 포함한 양방향 동기화

  • Gmail 및 캘린더 스캔 — 의료 관련 이메일 및 예약 자동 감지 및 분류

  • 임상 연구 — PubMed 및 ClinicalTrials.gov 검색, 연구 결정 기록

  • 치료 타임라인 — 항암 주기, 수술 및 기타 치료 이벤트 추적

  • 문서 버전 관리 — 전체 이력을 포함한 문서 수정 사항 추적

  • AI 기반 메타데이터 — 자동 요약, 태그 지정 및 구조화된 데이터 추출

  • 감사 로그 — 모든 도구 호출은 책임 추적을 위해 기록됨

아키텍처

┌─────────────────┐     MCP Protocol      ┌──────────────┐
│  Claude / GPT   │◄────────────────────►  │  Oncofiles   │
│  (AI Assistant)  │    streamable-http     │  MCP Server  │
└─────────────────┘                        └──────┬───────┘
                                                  │
                                    ┌─────────────┼─────────────┐
                                    │             │             │
                              ┌─────▼─────┐ ┌────▼────┐ ┌─────▼─────┐
                              │  SQLite /  │ │ Google  │ │ Anthropic │
                              │   Turso    │ │  Drive  │ │ Files API │
                              └───────────┘ └─────────┘ └───────────┘

스택: Python 3.12+ · FastMCP 3.1 · Pydantic · SQLite/Turso · Railway

빠른 시작

# Clone and install
git clone https://github.com/peter-fusek/oncofiles.git
cd oncofiles
uv sync --extra dev

# Run locally (stdio mode for Claude Desktop)
uv run oncofiles-mcp

# Run tests
uv run pytest

# Lint
uv run ruff check

환경 변수

# Required
DATABASE_PATH=data/oncofiles.db

# Optional — cloud database
TURSO_DATABASE_URL=libsql://...
TURSO_AUTH_TOKEN=...

# Optional — Google Drive sync
GOOGLE_DRIVE_FOLDER_ID=...
GOOGLE_OAUTH_CLIENT_ID=...
GOOGLE_OAUTH_CLIENT_SECRET=...

# Optional — remote access
MCP_TRANSPORT=streamable-http  # default: stdio
MCP_HOST=0.0.0.0
MCP_PORT=8080
MCP_BEARER_TOKEN=...

Claude Desktop 연결

Claude Desktop 설정(~/Library/Application Support/Claude/claude_desktop_config.json)에 추가하세요:

{
  "mcpServers": {
    "oncofiles": {
      "command": "uv",
      "args": ["run", "oncofiles-mcp"],
      "cwd": "/path/to/oncofiles"
    }
  }
}

ChatGPT 연결

Oncofiles는 ChatGPT의 MCP 통합(개발자 모드)과 함께 작동합니다. ChatGPT에서 인스턴스의 /mcp 엔드포인트와 베어러 토큰을 지정하세요.

Railway에 배포

포함된 Dockerfile은 Railway 배포 준비가 완료되어 있습니다:

  1. GitHub에 푸시

  2. Railway에서 저장소 연결

  3. 환경 변수 설정

  4. 푸시 시 Railway가 자동 배포

라이브 인스턴스: oncofiles.com

프로젝트 구조

src/oncofiles/
├── server.py           # FastMCP server, auth, routes, scheduler
├── database/           # Mixin-based DB layer (SQLite/Turso)
├── tools/              # 14 tool modules (76 tools)
│   ├── documents.py    # CRUD, search, view, versioning
│   ├── lab_trends.py   # Lab values, trends, safety checks
│   ├── clinical.py     # Treatment events, research log
│   ├── research.py     # PubMed, ClinicalTrials.gov search
│   └── ...
├── sync.py             # Bidirectional Google Drive sync
├── gmail_sync.py       # Medical email detection and import
├── calendar_sync.py    # Calendar event classification
├── enhance.py          # AI metadata extraction (Haiku)
├── patient_middleware.py # Per-patient token → context resolution
├── patient_context.py  # Patient clinical profile
└── models.py           # Pydantic models

MCP 레지스트리

MCP 레지스트리io.github.peter-fusek/oncofiles로 등록되어 있습니다.

기여

가이드라인은 CONTRIBUTING.md를 참조하세요.

라이선스

MIT


개발자 소개

팀원

Peter Fusek — CEO & 창립자

연쇄 창업가이자 AI 전략가. Tatra banka에서 4년 근무. marketlocator 공동 창립(Deutsche Telekom에 매각). VÚB Bank CEO 자문. 18년 이상 기술 제품 개발.

아내의 암 치료를 관리하며 수백 개의 문서, 수십 명의 의사, 끊임없이 변화하는 검사 결과를 다루어야 했던 개인적인 필요에 의해 Oncofiles를 구축함.

LinkedIn · peter.fusek@instarea.com

Peter Čapkovič — CTO & 공동 창립자

기업 금융(VÚB) 분야에서 20년 이상의 경력을 가진 수석 IT 아키텍트. .NET, Python, SQL 및 시스템 아키텍처 전문가. 모든 Instarea 제품의 아키텍처를 주도.

아키텍처, 개발, 운영을 총괄.

LinkedIn

회사 소개

Instarea — 18년의 역사, 23개의 제품 출시. 통신 분석 및 기업 고객(Callinspector)부터 모바일 우선 핀테크(InventButton), 빅데이터 매각(marketlocator → Deutsche Telekom), IoT 플랫폼, AI 우선 제품(PulseShape, ReplicaCity, HomeGrif)까지 다양한 분야를 다룸.

Oncofiles와 Oncoteam은 Instarea의 최신 프로젝트로, 금융, 통신 및 데이터 산업을 위한 엔터프라이즈급 제품을 제공해 온 동일한 엔지니어링 원칙으로 구축되었습니다.

프론트엔드, 백엔드, 통합, 데이터 과학, UX/UI, 마케팅 및 클라우드 운영 전반에 걸쳐 10명 이상의 검증된 팀원이 협력하고 있습니다.

*"우리는 가족과 일터에서처럼 우리 자신의 얼굴을 걸고 개인적인 책임감을 가지고 임합니다."

Instarea 제작 | EHDS 원칙 준수

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/peter-fusek/oncofiles'

If you have feedback or need assistance with the MCP directory API, please join our Discord server