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.pyPre-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.serverUse 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 cwdpath 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 files
- list_datasets- Show all loaded datasets
- query_dataset- Get comprehensive dataset information
- get_schema- Extract detailed schema information
- list_components- Show available data arrays/components
- get_component_info- Get detailed component information
- get_statistics- Calculate statistics for components
- visualize_dataset- Launch interactive 3D viewer
- suggest_visualizations- Get visualization recommendations
- remove_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.