内容
# OpenVDS MCP 服务器
一款MCP(模型上下文协议)服务器,通过自然语言查询实现对Bluware OpenVDS地震和体积数据的AI辅助访问。
## 概述
该MCP服务器连接大规模体积数据集(地震勘测、地物数据)与Claude等AI系统,实现:
- **自然语言数据发现**:使用普通语言查询勘测
- **智能数据提取**:AI辅助切片和体积提取
- **元数据分析**:自动勘测统计和质量评估
- **比较分析**:跨勘测比较和时间监测
## 功能
### 真实的OpenVDS集成
**所有数据访问均使用实际的OpenVDS Python API:**
- 使用`openvds.open()`打开真实的VDS文件
- 使用OpenVDS布局描述符提取实际的元数据
- 使用`requestVolumeSubset()`和NumPy数组提取真实数据
- 从实际的地震振幅数据中计算统计数据
- 在无VDS文件时,仅作为演示模式
### MCP资源
- 勘测元数据目录(从真实的VDS文件中提取)
- 服务器能力信息
- 数据结构文档
### MCP工具
- `extract_inline`:使用OpenVDS从地震勘测中提取内联切片
- `extract_crossline`:使用OpenVDS提取交叉线切片
- `extract_volume_subset`:使用OpenVDS提取体积子集
- `get_survey_info`:从VDS文件中获取详细的勘测元数据
- `list_available_surveys`:列出所有可用的勘测并进行筛选
### MCP提示
- `survey_discovery`:查找匹配特定条件的勘测
- `data_quality_check`:分析勘测的数据质量
- `extract_seismic_section`:提取特定的地震剖面
- `compare_surveys`:比较勘测之间的特征
## 安装
### macOS用户(推荐:Docker)
**macOS上没有OpenVDS Python轮。** 在macOS上运行此服务器的最简单方法是使用Docker:
1. **安装Docker Desktop for Mac**
2. **构建Docker镜像**:
```bash
./run-docker.sh
```
3. **配置Claude Desktop** - 请参阅[DOCKER.md](DOCKER.md)以获取完整的设置说明
**📖 Docker完整指南**:[DOCKER.md](DOCKER.md)
### Linux/Windows用户
#### 要求
- Python 3.11+
- OpenVDS Python SDK(在Linux/Windows上通过pip可用)
- MCP SDK
#### 设置
1. 安装依赖项:
```bash
pip install mcp openvds anthropic pydantic aiohttp
```
2. 在MCP客户端设置中配置服务器(例如Claude Desktop的`config.json`):
```json
{
"mcpServers": {
"openvds": {
"command": "python",
"args": ["src/openvds_mcp_server.py"],
"env": {
"VDS_DATA_PATH": "/path/to/vds/files"
}
}
}
}
```
3. 运行服务器:
```bash
python src/openvds_mcp_server.py
```
## 用法
### 演示模式(仅限备用)
服务器仅在**未找到VDS文件时**以演示模式运行。演示模式返回模拟响应,以测试MCP协议而无需真实数据。
### 使用真实VDS文件(生产使用)
**要使用真实的OpenVDS数据提取**,请将`VDS_DATA_PATH`环境变量设置为指向您的VDS数据目录:
```bash
export VDS_DATA_PATH="/data/seismic:/data/surveys"
python src/openvds_mcp_server.py
```
服务器将:
1. 扫描指定路径中的所有`.vds`文件
2. 使用OpenVDS布局API提取真实元数据
3. 提供具有真实振幅统计数据的实际数据提取
4. 从真实地震数据中计算质量指标
**注意**:在没有真实VDS文件的情况下,您可以测试MCP协议,但无法获取实际的地震数据。
### 示例查询
**发现勘测:**
```
"显示我所有2023年后在墨西哥湾获得的3D地震勘测"
```
**提取数据:**
```
"从墨西哥湾2023年勘测中提取内联2500"
```
**数据质量:**
```
"分析北海勘测的数据质量并识别任何问题"
```
**比较勘测:**
```
"比较二叠纪盆地2022年勘测与墨西哥湾2023年勘测"
```
## 架构
```
OpenVDS MCP 服务器
├── src/openvds_mcp_server.py # 主要MCP服务器实现
├── src/vds_client.py # OpenVDS集成层
├── config.json # MCP客户端配置
└── README.md # 文档
```
## 关键组件
### 服务器层(`openvds_mcp_server.py`)
实现MCP协议处理程序:
- 资源列表和读取
- 工具执行
- 提示模板
### VDS客户端层(`vds_client.py`)
提供OpenVDS集成:
- 勘测发现和元数据提取
- 数据切片提取
- 统计和质量分析
- 测试的演示模式
## 用例
- **数据发现**:对可用地震勘测的自然语言查询
- **智能提取**:AI辅助数据切片和体积选择
- **质量控制**:自动数据质量评估
- **报告生成**:自动勘测摘要报告
- **机器学习工作流集成**:为机器学习模型准备训练数据集
- **协作**:非技术利益相关者的自然语言接口
## 安全考虑
- 企业部署的身份验证和授权
- 大型数据请求的速率限制
- 云存储凭证的安全处理
- 数据访问的审计跟踪
## 未来增强
- 企业部署的OAuth身份验证
- 高级可视化集成
- 批处理能力
- 格式转换工具(SEG-Y等)
- 云存储集成(S3,Azure Blob)
- 频繁访问数据的缓存层
## 贡献
这是一个概念验证,演示MCP与地球物理数据的集成。欢迎贡献!
## 许可证
MIT许可证 - 有关详细信息,请参见LICENSE文件
## 参考
- [模型上下文协议](https://modelcontextprotocol.io/)
- [OpenVDS文档](https://osdu.pages.opengroup.org/platform/domain-data-mgmt-services/seismic/open-vds/)
- [Bluware VDS](https://www.bluware.com/)