使用说明
Nipoppy MCP服务器
模型上下文协议(MCP)接口 尼帕比 神经影像数据集 框架。此服务器通过MCP公开允许AI代理的工具 以更慎重的方式与Nipoppy研究进行互动。
什么是Nipoppy?
Nipoppy是一个轻量级的标准化组织框架 神经影像临床数据集的处理。它跟随大脑 成像数据结构(BIDS)标准,并提供管理工具 数据集和处理管道。
什么是MCP?
模型上下文协议(MCP)是一种标准化的协议 允许AI应用程序(LLM)访问外部工具和资源 通过一致的界面。此服务器公开了以下工具 总结了Nipoppy研究的当前加工状态。
特性
该MCP服务器通过以下两种方式提供对Nipoppy神经影像数据集的全面访问 工具 和 资源:
MCP资源(自动上下文)
无需函数调用,AI代理即可自动获取上下文信息:
nipoppy://config-全局数据集配置和元数据nipoppy://manifest-数据集结构清单(参与者/会话/数据类型)nipoppy://status/curation-不同管理阶段的数据可用性nipoppy://status/processing-跨参与者/会议的管道完成状态nipoppy://pipelines/{pipeline_name}/{version}/config-单个管道配置nipoppy://pipelines/{pipeline_name}/{version}/descriptor-精品店管道描述符nipoppy://demographics-已去标识的参与者人口统计信息nipoppy://bids/description-BIDS数据集描述和元数据
MCP工具(按需功能)
主要工具(重构和增强)
get_participants_sessions-按数据阶段过滤的统一参与者/会话查询get_dataset_info-通过可配置的详细级别增强数据集概述navigate_dataset-具有智能路径解析的文件路径和配置访问
旧版工具(已弃用)
list_manifest_participants_sessions-使用get_participants_sessions(data_stage="all")相反list_manifest_imaging_participants_sessions-使用get_participants_sessions(data_stage="imaging")相反get_pre_reorg_participants_sessions-使用get_participants_sessions(data_stage="downloaded")相反get_post_reorg_participants_sessions-使用get_participants_sessions(data_stage="organized")相反get_bids_participants_sessions-使用get_participants_sessions(data_stage="bidsified")相反list_processed_participants_sessions-使用get_participants_sessions(data_stage="processed", ...)相反
安装
先决条件
- Python 3.10或更高版本
选项1:安装软件包
# Clone the repository
git clone https://github.com/nipoppy/mcp.git
cd mcp
# Install dependencies
pip install -e .
[待发布]选项2:Docker容器
您还可以使用GitHub容器注册表中的预构建Docker容器:
# Pull the latest version
docker pull ghcr.io/bcmcpher/nipoppy-mcp:latest
# Pull a specific version
docker pull ghcr.io/bcmcpher/nipoppy-mcp:v0.1.0
用法
运行MCP服务器
服务器可以根据您的用例以不同的模式运行:
1.STDIO模式(适用于Claude desktop等本地桌面应用程序)
# Set the dataset root (optional, defaults to current directory)
# Run the server
python -m nipoppy_mcp.server
[待定]2。Docker模式
# Run with local dataset mounted
docker run -v /path/to/your/nipoppy/dataset:/data ghcr.io/bcmcpher/nipoppy-mcp:latest
# Run with specific version and custom dataset path
docker run \
-v /path/to/dataset:/data \
-e NIPOPPY_DATASET_ROOT=/data \
ghcr.io/bcmcpher/nipoppy-mcp:v0.1.0
2.使用克劳德桌面/OpenCode进行配置
添加到您的Claude Desktop配置文件(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"nipoppy": {
"command": "python",
"args": ["-m", "nipoppy_mcp.server"]
}
}
}
使用工具和资源
连接到MCP兼容客户端后,您可以通过自动上下文和显式工具调用访问Nipoppy数据集信息。
设置数据集根:
服务器需要 NIPOPPY_DATASET_ROOT 为资源工作设置的环境变量:
export NIPOPPY_DATASET_ROOT=/path/to/your/nipoppy/dataset
查询示例:
数据集概述(使用工具)
- “获取有关此数据集的信息”
- “此数据集中有多少参与者和会话?”
- “安装了哪些管道,它们的状态如何?”
参与者/会话查询(使用工具)
- “列出数据集中的所有参与者和会话”
- “向我展示具有成像数据的参与者”
- “哪些参与者已经完成了fMRIPrep处理?”
- “获取BIDS转换数据的参与者”
导航和配置(使用工具)
- “导航到fMRIPrep输出目录”
- “显示最新MRIQC管道的配置”
- “获取衍生品目录的路径”
上下文访问(使用资源)
- 服务器通过资源自动提供上下文,因此您可以询问:
- “此数据集的全局配置是什么?”
- “显示数据集清单”
- “数据的管理状态如何?”
- “获取BIDS数据集描述”
管道信息(使用资源)
- “获取fMRIPrep 23.2.0版本的配置”
- “显示MRIQC管道的精品店描述符”
发展
运行测试
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Or run basic import tests
python -c "from nipoppy_mcp.server import mcp; print('✅ MCP server imports successfully')"
测试实施
重构的实现包括全面的错误处理和验证。测试:
# Test basic functionality
python -c "
from nipoppy_mcp.server import get_participants_sessions, get_dataset_info, navigate_dataset
print('✅ Refactored tools imported successfully')
# Test validation (these should raise appropriate errors)
get_participants_sessions('/fake/path', data_stage='invalid_stage')
navigate_dataset('/fake/path', path_type='invalid_type')
"
# Test resource functions
python -c "
from nipoppy_mcp.server import get_dataset_config, get_dataset_manifest
print('✅ Resource functions imported successfully')
"
项目结构
nipoppy-mcp/
├── nipoppy_mcp/
│ ├── __init__.py
│ └── server.py # Main MCP server implementation
│ # - 8 MCP resources (automatic context)
│ # - 3 refactored tools (unified interface)
│ # - 7 deprecated tools (backward compatibility)
├── tests/ # Test files
├── pyproject.toml # Project configuration
└── README.md
实现细节
重构后的服务器提供:
- 8 MCP资源:数据集元数据、配置和状态的自动上下文加载
- 3统一工具:用统一界面替换7个以前的专用工具
- 7废弃工具:保持与弃用警告的向后兼容性
- 严格验证:全面的错误处理和参数验证
- 类型安全:完整类型提示和结构化数据返回
迁移指南
对于从旧工具迁移的现有用户:
| 旧工具 | 新工具调用 |
|---|---|
list_manifest_participants_sessions() |
get_participants_sessions(data_stage="all") |
list_manifest_imaging_participants_sessions() |
get_participants_sessions(data_stage="imaging") |
get_pre_reorg_participants_sessions() |
get_participants_sessions(data_stage="downloaded") |
get_post_reorg_participants_sessions() |
get_participants_sessions(data_stage="organized") |
get_bids_participants_sessions() |
get_participants_sessions(data_stage="bidsified") |
list_processed_participants_sessions(name, ver, step) |
get_participants_sessions(data_stage="processed", pipeline_name=name, pipeline_version=ver, pipeline_step=step) |
示例用法
存储库包括 example_usage.py 演示重构后的功能:
# Set your dataset path
export NIPOPPY_DATASET_ROOT=/path/to/your/nipoppy/dataset
# Run the example
python example_usage.py
此脚本演示:
- 增强的数据集信息检索
- 按数据阶段统一参与者/会话过滤
- 数据集导航和路径解析
- 错误处理和验证
资源快速入门
要立即访问数据集信息(需要NIPOPPY_dataset_ROOT):
import os
os.environ['NIPOPPY_DATASET_ROOT'] = '/path/to/dataset'
from nipoppy_mcp.server import get_dataset_config
# Resources are available as direct function calls
config = get_dataset_config() # Auto-loads from environment variable
print(f"Dataset has {len(config['installed_pipelines'])} pipelines")
贡献
欢迎投稿!这是Brainhack 2026项目。请随时提交问题和拉取请求。
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
Docker镜像信息
当标记新版本时,Docker容器会自动构建并发布到GitHub容器注册表(GHCR):
- 注册表:
ghcr.io/bcmcpher/nipoppy-mcp - 建筑:多平台(linux/amd64、linux/arm64)
- 标签:
latest-指向最新版本v0.1.0-完整语义版本v0.1-次要版本v0-主要版本
从源头构建
# Build the Docker image locally
docker build -t nipoppy-mcp .
# Run the locally built image
docker run -v /path/to/dataset:/data nipoppy-mcp