A Model Context Protocol (MCP) server for scientific data introspection and visualization. Provides comprehensive analysis of VTK datasets with format-specific metadata extraction and interactive 3D visualization.
- 10 MCP Tools for complete dataset analysis
- Format-Adaptive Metadata - Specialized handlers for VTI, VTU, VTP formats
- Interactive 3D Visualization using Trame/VTK
- Memory-Efficient Architecture with automatic cleanup
- Comprehensive Component Analysis with detailed statistics
# Clone or navigate to the project directory
cd data-mcp
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On macOS/Linux
# .venv\Scripts\activate # On Windows
# Install dependencies
pip install -r requirements.txt
pip install -e .
# Test MCP server functionality
python examples/walkthrough/demo_mcp_usage.py
Pre-generated VTK files in examples/sample_data/
:
gaussian_simple.vti
- 3D structured grid (20Γ15Γ12)wave_pattern.vti
- Wave pattern data
# Launch 3D viewer (opens at localhost:8080)
python -c "
from src.data_mcp.viewers.vtk_viewer import VTKViewer
VTKViewer.show_file('examples/sample_data/gaussian_simple.vti')
"
# Start the MCP server (requires MCP client to connect)
python -m data_mcp.server
Use the provided mcp_client_config.json
to connect MCP-compatible clients:
{
"mcpServers": {
"data-mcp": {
"command": "python",
"args": ["-m", "data_mcp.server"],
"cwd": "/Users/patrick.oleary/code/AI Experiments/data-mcp",
"env": {}
}
}
}
- Claude Desktop - Anthropic's desktop application
- Custom MCP applications - Built with MCP client libraries
- Development tools - IDEs and testing frameworks with MCP support
- Copy the config to your MCP client's configuration directory
- Update the
cwd
path to match your project location - Restart your MCP client to register the server
- Access via client - The server will appear as "data-mcp" with 10 available tools
# Test all 10 MCP tools with detailed output
python examples/walkthrough/manual_tool_test.py
# Test format-specific metadata adaptation
python examples/walkthrough/test_format_adaptation.py
# Full MCP workflow testing
python tests/integration/test_full_mcp_workflow.py
# Real MCP client connection test
python tests/integration/test_real_mcp_client.py
upload_dataset
- Load and register dataset fileslist_datasets
- Show all loaded datasetsquery_dataset
- Get comprehensive dataset informationget_schema
- Extract detailed schema informationlist_components
- Show available data arrays/componentsget_component_info
- Get detailed component informationget_statistics
- Calculate statistics for componentsvisualize_dataset
- Launch interactive 3D viewersuggest_visualizations
- Get visualization recommendationsremove_dataset
- Remove dataset from memory
from data_mcp.formats.vtk_factory import VTKHandlerFactory
from data_mcp.core.dataset import Dataset
from data_mcp.viewers.vtk_viewer import VTKViewer
# Load dataset with format-specific handler
handler = VTKHandlerFactory.create_handler("path/to/file.vti")
dataset = Dataset("path/to/file.vti", handler)
dataset.introspect()
# Get comprehensive information
info = dataset.get_info()
components = dataset.list_components()
stats = dataset.get_statistics("temperature")
# Launch interactive viewer (convenience method)
VTKViewer.show_file("path/to/file.vti") # Opens at localhost:8080
# Or create viewer with dataset
viewer = VTKViewer(dataset=dataset)
viewer.show()
Connect via MCP client and use these tools:
- Upload datasets, query metadata, analyze components
- Get format-specific information (VTI/VTU/VTP)
- Launch interactive 3D visualizations
- Calculate detailed statistics
- BaseVTKHandler - Common VTK functionality
- VTKImageDataHandler (.vti) - Structured grids with spacing/dimensions
- VTKUnstructuredGridHandler (.vtu) - Irregular meshes with cell analysis
- VTKPolyDataHandler (.vtp) - Surface meshes with topology analysis
- VTKHandlerFactory - Automatic handler selection by file extension
Currently supports VTK formats with format-specific metadata:
.vti
- ImageData (regular grids, voxel data).vtu
- UnstructuredGrid (irregular meshes, FEM data).vtp
- PolyData (surface meshes, CAD data)
- Automatic cleanup after dataset introspection
- Stored component data for efficient access
- Handler recycling to prevent memory bloat
data-mcp/
βββ README.md # Project documentation
βββ MCP_WALKTHROUGH.md # Comprehensive walkthrough guide
βββ pyproject.toml # Python packaging configuration
βββ requirements.txt # Dependencies
βββ src/data_mcp/ # Main package
β βββ server.py # MCP server implementation
β βββ core/ # Core functionality
β β βββ dataset.py # Dataset abstraction with cleanup
β β βββ introspector.py # Dataset analysis engine
β β βββ schema.py # Schema representation
β β βββ visualizer.py # Visualization engine
β βββ formats/ # Format handlers (inheritance system)
β β βββ base.py # Base format handler interface
β β βββ vtk_base.py # Base VTK handler
β β βββ vtk_imagedata.py # VTI handler (structured grids)
β β βββ vtk_unstructured.py # VTU handler (irregular meshes)
β β βββ vtk_polydata.py # VTP handler (surface meshes)
β β βββ vtk_factory.py # Handler factory
β βββ viewers/ # Trame-based visualization
β β βββ vtk_viewer.py # VTK 3D viewer
β βββ utils/ # Utilities
β βββ file_utils.py # File handling
βββ examples/ # Usage examples
β βββ basic_usage.py # Basic programmatic usage
β βββ walkthrough/ # Walkthrough examples
β β βββ demo_mcp_usage.py # Basic MCP demo
β β βββ manual_tool_test.py # All 10 tools test
β β βββ test_format_adaptation.py # Format adaptation demo
β βββ sample_data/ # Sample VTK files
β βββ gaussian_simple.vti # 3D structured grid
β βββ wave_pattern.vti # Wave pattern data
βββ tests/ # Test suite
βββ integration/ # Integration tests
βββ test_formats/ # Format handler tests
- β 10/10 MCP Tools Working (100% success rate)
- β Format-Adaptive Metadata for VTI/VTU/VTP files
- β Memory-Efficient Architecture with automatic cleanup
- β Interactive 3D Visualization via Trame/VTK
- β Production-Ready for scientific data workflows
- MCP_WALKTHROUGH.md - Complete step-by-step walkthrough
- examples/walkthrough/ - Hands-on examples and demos
- USAGE_GUIDE.md - Basic usage guide
This project demonstrates a production-ready MCP server with:
- Format-adaptive metadata extraction
- Memory-efficient architecture
- Comprehensive testing suite
- Interactive visualization capabilities
For extending to new formats, follow the inheritance pattern established in the VTK handlers.
MIT License - see LICENSE file for details.