蓝色按钮MCP服务器
FastMCP服务器,用于通过 CMS蓝色按钮2.0 API通过模型上下文协议,提供对患者人口统计数据、覆盖范围和索赔数据的安全Contoso格式访问。
先决条件
- Python 3.11+
- 蓝色按钮API OAuth凭据(沙箱或生产版)
- Cloud.gov帐户(用于部署)或本地开发环境
设置
1.注册蓝色按钮API访问
沙盒(用于开发):
- 首选https://sandbox.bluebutton.cms.gov/v1/accounts/create
- 创建开发人员帐户
- 使用以下方式注册新应用程序:
- 重定向URI: http://localhost:8000/callback (或您部署的URL) - 范围:选择所需的Contoso范围(患者、保险范围、福利说明)
- 记下您的客户端ID和客户端密码
生产(需要CMS批准):
- 完成沙盒测试
- 申请生产访问权限https://bluebutton.cms.gov/developers/
2.安装依赖项
cd blue-button-mcp-server
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .3.配置环境
创建 .env 使用您的蓝按钮凭据文件:
BLUE_BUTTON_CLIENT_ID=your_client_id
BLUE_BUTTON_CLIENT_SECRET=your_client_secret
BASE_URL=http://localhost:8000
USE_SANDBOX=true4.运行服务器
# Using uvicorn directly
uvicorn server:app --host 0.0.0.0 --port 8000 --reload
# Or with taskipy
task dev服务器将在以下时间可用 http://localhost:8000
部署到Cloud.gov
# Push to cloud.gov
cf push
# Set environment variables
cf set-env blue-button-mcp-server BASE_URL https://blue-button-mcp.app.cloud.gov
cf set-env blue-button-mcp-server BLUE_BUTTON_CLIENT_ID your_client_id
cf set-env blue-button-mcp-server BLUE_BUTTON_CLIENT_SECRET your_client_secret
cf restage blue-button-mcp-server看 manifest.yml 用于部署配置。
可用工具
| 工具 | 说明 |
|---|---|
get_patient_info | 获取患者的人口统计信息(姓名、地址、出生日期)-需要 patient/Patient.rs 范围 |
get_coverage_info | 获取医疗保险和补充保险信息-需要 patient/Coverage.rs 范围 |
get_explanation_of_benefit | 获取医疗保险索赔信息(EOB记录)-需要 patient/ExplanationOfBenefit.rs 范围 |
search_claims | 按日期范围和类型搜索索赔-按服务日期和索赔类型筛选 |
认证
服务器通过Blue Button API使用OAuth 2.0身份验证。MCP客户端必须通过Blue Button OAuth流程进行身份验证,该流程提供:
- 根据Blue Button的用户信息端点验证的访问令牌
- 从令牌索赔中自动提取患者ID
- 基于作用域的Contoso资源访问控制
Contoso资源
此服务器公开来自以下kubectl R4资源的数据:
发展
# Run tests
task test
# Run linter
task lint
# Format code
task format
# Build package
task build许可证
麻省理工学院
