Skip to main content
Glama

MVG Störung MCP Server (inofficial)

by rmoriz
Creative Commons Zero v1.0 Universal
PROJECT_SUMMARY.md4.87 kB
# MVG Störung MCP Server - Project Summary ## 🎯 Project Overview Successfully created a Model Context Protocol (MCP) server that provides cached access to Munich Public Transport (MVG) disruption data using the https://github.com/rmoriz/mvg_stoerung data source. ## ✅ Key Features Implemented ### 1. **Data Source Integration** - ✅ Uses official MVG API: `https://www.mvg.de/api/bgw-pt/v3/messages` - ✅ Filters for INCIDENT type messages only - ✅ Enhances data with human-readable timestamps - ✅ Handles various data structures and edge cases ### 2. **Caching System** - ✅ **10+ minute cache duration** (configurable, default: 10 minutes) - ✅ Automatic cache expiration and refresh - ✅ Force refresh capability - ✅ Cache status monitoring and reporting - ✅ In-memory caching with timestamp tracking ### 3. **MCP Server Implementation** - ✅ Full MCP protocol compliance - ✅ Three tools: `get_mvg_incidents`, `search_incidents`, `get_cache_status` - ✅ Two resources: `mvg://incidents`, `mvg://cache-info` - ✅ Async/await architecture for performance - ✅ Proper error handling and logging ### 4. **Search & Filter Capabilities** - ✅ Search by query text (title, description, line labels) - ✅ Filter by specific transport lines (U6, S1, etc.) - ✅ Case-insensitive search - ✅ Multiple search criteria support ## 📁 Project Structure ``` mvg_stoerung_mcp/ ├── mvg_mcp_server.py # Main MCP server implementation ├── requirements.txt # Python dependencies ├── pyproject.toml # Project configuration ├── README.md # Comprehensive documentation ├── USAGE.md # Usage examples and guide ├── start_server.sh # Easy startup script ├── mcp_config.json # MCP client configuration ├── test_server.py # Comprehensive test suite ├── example_client.py # Example MCP client ├── venv/ # Python virtual environment └── PROJECT_SUMMARY.md # This summary ``` ## 🚀 Quick Start ```bash # Start the server ./start_server.sh # Or manually source venv/bin/activate python3 mvg_mcp_server.py ``` ## 🧪 Testing Results - ✅ **MVG API Access**: Successfully connects to MVG API - ✅ **Data Processing**: Correctly filters and enhances incident data - ✅ **Cache Functionality**: 10-minute caching works as expected - ✅ **MCP Protocol**: Full protocol compliance verified - ✅ **Error Handling**: Robust error handling for network issues **Test Results from Live API:** - Retrieved 231 total messages - Found 4 current incidents - Cache system operational - All dependencies installed successfully ## 🔧 Technical Implementation ### Core Components 1. **MVGDataFetcher**: Handles API communication and data processing 2. **MVGCache**: Implements 10+ minute caching with expiration tracking 3. **MVGMCPServer**: Main MCP server with tool and resource handlers ### Key Technologies - **httpx**: Async HTTP client for API requests - **pydantic**: Data validation and serialization - **mcp**: Model Context Protocol framework - **asyncio**: Asynchronous programming support ### Cache Implementation ```python class MVGCache: def __init__(self, cache_duration_minutes: int = 10): self.cache_duration = timedelta(minutes=cache_duration_minutes) # ... implementation ensures minimum 10-minute caching ``` ## 📊 Data Format Each incident includes: - Original MVG data (title, description, type, lines, etc.) - Enhanced readable timestamps - Structured line information - Publication and validity periods - Provider information ## 🔌 Integration ### MCP Client Configuration ```json { "mcpServers": { "mvg-stoerung": { "command": "python3", "args": ["mvg_mcp_server.py"], "cwd": "/path/to/mvg_stoerung_mcp" } } } ``` ### Available Tools 1. **get_mvg_incidents**: Get all current incidents (with caching) 2. **search_incidents**: Search/filter incidents by criteria 3. **get_cache_status**: Monitor cache status and statistics ## 🎉 Success Metrics - ✅ **Cache Requirement**: Implements 10+ minute caching as requested - ✅ **Data Source**: Uses mvg_stoerung GitHub repo methodology - ✅ **MCP Compliance**: Full MCP server implementation - ✅ **Performance**: Async architecture with efficient caching - ✅ **Usability**: Easy setup with comprehensive documentation - ✅ **Testing**: Verified functionality with live MVG API ## 🚀 Ready for Production The MCP server is fully functional and ready for use with any MCP-compatible client. It successfully provides cached access to Munich Public Transport disruption data with the requested 10+ minute caching duration. ## Disclaimer This project is not an official MVG project, not endorsed or recommended. Please ask MVG for permission prior to using it.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rmoriz/mvg_stoerung_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server