NetCDF Explorer MCP服务器
一个简单而强大的MCP(消息通信协议)服务器,用于探索、分析NetCDF格式文件并与之交互。旨在通过直观的API和高效的数据处理简化NetCDF数据管理。
概述
NetCDF(网络通用数据表)是一种广泛用于存储科学数据的格式。此MCP服务器提供了一个简化的界面来处理NetCDF文件,提供列出文件、检查结构、提取数据和分析变量的基本功能,同时通过智能采样高效地处理大型数据集。
特性
- 📁 文件发现:列出所有NetCDF文件(
.nc,.cdf,.netcdf,.nc4)在指定的目录中。 - 🔍 结构检查:检索NetCDF文件的详细元数据,包括维度、变量、属性和全局属性。
- 📊 数据提取:读取支持灵活切片的可变数据(例如。,
lat: "0:10:2"提取子集)。 - 🧠 智能采样:自动对大型数据集进行采样,以防止内存溢出,并具有可配置的元素限制。
- ⏰ 时间序列分析:使用可选的自定义位置坐标从空间变量中提取时间数据。
- 🔎 搜索功能:按关键字查找变量和属性,简化复杂文件中的导航。
- 📋 变量摘要:生成人类可读的变量摘要,包括维度、数据类型和属性。
安装
先决条件
- Python≥3.13
通过pip安装
pip install nc-mcp从源代码安装
- 克隆存储库:
git clone https://github.com/HanchaoLi/nc-mcp.git
cd nc-mcp- 安装依赖项(使用
uv为了更快地进行依赖关系管理):
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Sync dependencies
uv sync --all-groups快速开始
启动服务器
python -m nc_mcp_server.mainapi参考
核心功能
| 功能 | 说明 | 参数 |
|---|---|---|
list_netcdf_files | 列出目录中的所有NetCDF文件。 | directory (str):搜索路径(默认值: .). |
get_netcdf_info | 返回NetCDF文件的元数据和结构(维度、变量、属性)。 | file_path (str):NetCDF文件的路径。 |
get_variable_data | 从特定变量中提取数据(支持切片和采样)。 | file_path (str), variable_name (str), slices (dict,可选), max_elements (int,默认值:1000)。 |
search_variables | 在变量和属性中搜索关键字(不区分大小写)。 | file_path (str), search_term (str)。 |
extract_timeseries | 从空间变量中提取时间序列数据。 | file_path (str), variable_name (str), location (dict,可选:空间坐标,如 {"lat": 10, "lon": 20}). |
测试
运行测试套件以验证功能:
uv run pytest tests/ -v测试包括:
- 文件发现逻辑
- NetCDF结构解析
- 切片数据提取
- 大型数据集的采样
- 无效输入的错误处理
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
链接
- 首页:
- 仓库:
- 问题追踪:
- PyPI: https://pypi.org/project/nc-mcp/
作者
李
