内容
# mcp-nv-reason-cxr-3b
一个 [FastMCP](https://github.com/jlowin/fastmcp) 服务器,暴露 **NV-Reason-CXR-3B** — 一个胸部X光片推理模型 — 作为MCP工具,通过Prefect Horizon部署。图像预处理在本地CPU上运行;GPU推理被调度到一个 **Modal** 无服务器端点,因此容器不需要GPU或模型权重。
**部署的MCP端点:** `https://mcp-nv-reason-cxr-3b.fastmcp.app/mcp`
客户端连接到该MCP端点;服务器反过来调用 **Modal端点** (`MODAL_ENDPOINT_URL`) 进行推理。
## 工具
| 工具 | 描述 | 返回值 |
|------|-------------|---------|
| `analyze_cxr` | 带有逐步推理的一般放射学分析(异常,支持设备,检查结果) | 推理链,答案,原始文本 |
| `reason_cxr` | 针对特定临床问题的目标推理 | 推理链,答案,原始文本 |
| `health` | 存活探针 | 状态 |
两个分析工具都返回一个JSON对象,包含推理链,简洁的答案,原始模型输出和研究用途免责声明。失败报告一个原因(验证)或错误(运行时)。
### 参数
- `image_b64` — base64胸部X光片(JPEG或PNG),最小64×64。缩小到1280px最长边后调度。
- `image_id` — 用于跟踪的标识符。
- `prompt` — 临床问题。`reason_cxr`需要一个;`analyze_cxr`默认为一般异常和支持设备检测。
## 配置
| 变量 | 必需 | 描述 |
|----------|----------|-------------|
| `MODAL_ENDPOINT_URL` | 是 | Modal基准URL,例如 `https://<workspace>--cxr-reasoning-fastapi-app.modal.run` |
| `FASTMCP_DOCKET_URL` | 否 | 用于后台任务的Redis URL(`rediss://…`) |
## 连接
将任何MCP客户端指向托管端点:
```json
{
"mcpServers": {
"nv-reason-cxr-3b": {
"url": "https://mcp-nv-reason-cxr-3b.fastmcp.app/mcp"
}
}
}
```
## 运行
要自我托管:
```bash
# Docker
docker build -t cxr-mcp .
docker run -p 8080:8080 \
-e MODAL_ENDPOINT_URL=https://<your-modal-endpoint>.modal.run \
cxr-mcp
# 本地
pip install -r requirements.txt
export MODAL_ENDPOINT_URL=https://<your-modal-endpoint>.modal.run
python server.py
```
多阶段`python:3.11-slim`构建,作为非root用户运行,暴露端口8080。通过无状态HTTP提供服务,带有JSON响应;请求正文最多64 MB。
## 免责声明
仅限研究和教育使用。不是医疗设备;输出不得用于临床诊断或治疗决策。
## 许可证
Apache License 2.0 — 请参阅 [LICENSE](LICENSE)。