地震数据访问MCP服务器

通过自然语言查询和AI辅助,实现对大规模地震与体积数据的发现、提取和质量分析,服务于地质科学家和工程师的勘探数据处理场景。

  • by raghujayan
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 raghujayan/openvds-mcp-server

使用说明

An MCP (Model Context Protocol) server that enables AI-assisted access to Bluware OpenVDS seismic and volumetric data through natural language queries.

Built so geoscientists and engineers can explore massive seismic surveys conversationally — asking questions in plain English instead of writing data-access code.

Overview

This MCP server bridges large-scale volumetric datasets (seismic surveys, geophysical data) with AI systems like Claude, enabling:

  • Natural Language Data Discovery: Query surveys using plain English
  • Intelligent Data Extraction: AI-assisted slice and volume extraction
  • Metadata Analysis: Automated survey statistics and quality assessment
  • Comparative Analysis: Cross-survey comparisons and temporal monitoring

Features

OpenVDS Integration

All data access goes through the OpenVDS Python API:

  • VDS file opening with openvds.open()
  • Metadata extraction using OpenVDS layout descriptors
  • Data extraction using requestVolumeSubset() with NumPy arrays
  • Statistics calculated from actual seismic amplitude data

MCP Resources

  • Survey metadata catalogs (extracted from real VDS files)
  • Server capabilities information
  • Data structure documentation

MCP Tools

  • extract_inline: Extract inline slices from seismic surveys using OpenVDS
  • extract_crossline: Extract crossline slices using OpenVDS
  • extract_volume_subset: Extract volumetric subsets using OpenVDS
  • get_survey_info: Get detailed survey metadata from VDS files
  • list_available_surveys: List all available surveys with filtering

MCP Prompts

  • survey_discovery: Find surveys matching specific criteria
  • data_quality_check: Analyze data quality for a survey
  • extract_seismic_section: Extract specific seismic sections
  • compare_surveys: Compare characteristics between surveys

Installation

macOS Users (Recommended: Docker)

OpenVDS Python wheels are not available for macOS. The easiest way to run this server on macOS is using Docker:

  1. Install Docker Desktop for Mac
  2. Build the Docker image:
./run-docker.sh
  1. Configure Claude Desktop - See DOCKER.md for complete setup instructions

📖 Full Docker Guide: DOCKER.md

Linux/Windows Users

Requirements

  • Python 3.11+
  • OpenVDS Python SDK (available via pip on Linux/Windows)
  • MCP SDK

Setup

  1. Install dependencies:
pip install mcp openvds anthropic pydantic aiohttp
  1. Configure the server in your MCP client settings (e.g., Claude Desktop config.json):
{
  "mcpServers": {
    "openvds": {
      "command": "python",
      "args": ["src/openvds_mcp_server.py"],
      "env": {
        "VDS_DATA_PATH": "/path/to/vds/files"
      }
    }
  }
}
  1. Run the server:
python src/openvds_mcp_server.py

Usage

With Real VDS Files

Set the VDS_DATA_PATH environment variable to point to your VDS data directories:

export VDS_DATA_PATH="/data/seismic:/data/surveys"
python src/openvds_mcp_server.py

The server will:

  1. Scan all .vds files in the specified paths
  2. Extract real metadata using OpenVDS layout API
  3. Provide actual data extraction with real amplitude statistics
  4. Calculate quality metrics from real seismic data

Demo Mode

If no VDS files are found, the server runs in demo mode with simulated responses so you can test the MCP protocol without real data.

Example Queries

Discover Surveys:

"Show me all 3D seismic surveys acquired in the Gulf of Mexico after 2023"

Extract Data:

"Extract inline 2500 from the Gulf of Mexico 2023 survey"

Data Quality:

"Analyze the data quality of the North Sea survey and identify any issues"

Compare Surveys:

"Compare the Permian Basin 2022 survey with the Gulf of Mexico 2023 survey"

Architecture

OpenVDS MCP Server
├── src/openvds_mcp_server.py  # Main MCP server implementation
├── src/vds_client.py          # OpenVDS integration layer
├── config.json                # MCP client configuration
└── README.md                  # Documentation

Key Components

Server Layer (openvds_mcp_server.py)

Implements MCP protocol handlers:

  • Resource listing and reading
  • Tool execution
  • Prompt templates

VDS Client Layer (vds_client.py)

Provides OpenVDS integration:

  • Survey discovery and metadata extraction
  • Data slice extraction
  • Statistics and quality analysis
  • Demo mode for testing

Use Cases

  • Data Discovery: Natural language queries for available seismic surveys
  • Intelligent Extraction: AI-assisted selection of data slices and volumes
  • Quality Control: Automated data quality assessments
  • Report Generation: Automated survey summary reports
  • ML Workflow Integration: Preparing training datasets for ML models
  • Collaboration: Natural language interface for non-technical stakeholders

Security Considerations

For production deployments, consider:

  • Authentication and authorization
  • Rate limiting for large data requests
  • Secure handling of cloud storage credentials
  • Audit trails for data access

Future Enhancements

  • OAuth authentication for enterprise deployments
  • Advanced visualization integration
  • Batch processing capabilities
  • Format conversion tools (SEG-Y, etc.)
  • Cloud storage integration (S3, Azure Blob)
  • Caching layer for frequently accessed data

Contributing

This is a proof-of-concept demonstrating MCP integration with geophysical data. Contributions welcome!

License

MIT License - See LICENSE file for details

References