Skip to main content
Glama

oncofiles

Tests Python MCP Claude ChatGPT License

您的医疗记录散落在 Gmail、Google Drive 和日历中。Oncofiles 可以读取并整理所有内容,并通过 AI 提供支持——让您可以在 Claude 或 ChatGPT 中以自然语言询问您的健康状况。

oncofiles.com | 演示仪表板 | 隐私政策

这是什么?

Oncofiles 是一个专为癌症患者及其护理人员构建的 MCP 服务器。它连接到您的 Google Drive、Gmail 和日历,读取您所有的医疗文档(化验结果、CT 扫描、病理报告、处方),并使它们可以通过任何 AI 聊天工具(Claude、ChatGPT 或任何 MCP 客户端)进行访问。

源于真实需求: 由一位正在照顾患癌妻子的护理人员创建。面对数百份文档、数十位医生以及不断变化的化验结果,Oncofiles 整理了这些混乱,让您可以专注于治疗,而不是寻找纸质文件。

姊妹项目: Oncoteam — 一个分析您 Oncofiles 数据的 AI 代理:跟踪化验趋势、搜索临床试验,并为您的肿瘤科医生准备问题。

您的数据,由您掌控: 所有内容都保留在您的 Google Drive 中。没有第三方数据处理。随时断开连接——您的文件永远属于您。

多患者支持 (v4.0+)

Oncofiles 支持在单个实例中管理多名患者。每位患者享有:

  • 完整的数据隔离 — 文档、化验、治疗事件、电子邮件和日历条目均针对患者进行范围限定

  • 独立的承载令牌 (Bearer Tokens) — 每位患者(或护理人员)拥有自己的 onco_* 令牌

  • 按患者 OAuth — Google Drive、Gmail 和日历均按患者进行授权

  • 仪表板患者选择器 — 在 Web 仪表板中切换患者

新患者入驻

  1. 仪表板向导: 打开仪表板,点击“+ 新患者”,并按照 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 以导入文档

功能特性

  • 76 个 MCP 工具,涵盖 14 个模块,实现全面的医疗数据管理

  • 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 Registry 中列出,名称为 io.github.peter-fusek/oncofiles

贡献

请参阅 CONTRIBUTING.md 获取指南。

许可证

MIT


幕后团队

核心成员

Peter Fusek — 首席执行官兼创始人

连续创业者和 AI 战略家。曾在 Tatra banka 工作 4 年。联合创立了 marketlocator(已出售给德国电信)。VÚB 银行首席执行官顾问。拥有 18 年以上构建技术产品的经验。

出于个人需求构建了 Oncofiles — 管理他妻子在数百份文档、数十位医生和不断变化的化验结果中的癌症治疗过程。

LinkedIn · peter.fusek@instarea.com

Peter Čapkovič — 首席技术官兼联合创始人

资深 IT 架构师,在企业银行 (VÚB) 拥有 20 多年经验。精通 .NET、Python、SQL 和系统架构。领导了所有 Instarea 产品的架构设计。

架构、开发、运营 — 一站式全包。

LinkedIn

公司简介

Instarea — 成立 18 年,已发布 23 款产品。从电信分析和企业客户 (Callinspector) 到移动优先金融科技 (InventButton)、大数据退出项目 (marketlocator → 德国电信)、物联网平台以及 AI 优先产品 (PulseShape, ReplicaCity, HomeGrif)。

Oncofiles 和 Oncoteam 是 Instarea 的最新力作 — 采用与交付银行、电信和数据行业企业级产品相同的工程准则构建。

拥有 10 多名经过验证的同步团队成员,涵盖前端、后端、集成、数据科学、UX/UI、市场营销和云运营。

“我们亲力亲为,以诚相待,如同家人,亦如工作。”

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