ken-wiebke/MCP-SIGMET
If you are the rightful owner of MCP-SIGMET and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP SIGMET Server is designed to gather and provide significant meteorological information (SIGMET) data from the AviationWeather.gov API, focusing on both domestic and international aviation weather conditions.
get_domestic_sigmets
Retrieves domestic SIGMETs for the United States with optional filters for hazard type, flight level, and date.
get_international_sigmets
Retrieves international SIGMETs with optional filters for hazard type, flight level, and date.
MCP SIGMET Server
An MCP (Model Context Protocol) server for gathering SIGMET (Significant Meteorological Information) data from the AviationWeather.gov API.
Features
- Fetches domestic SIGMETs from the United States
- Fetches international SIGMETs
- Supports filtering by hazard type (convective, turbulence, icing, IFR)
- Supports filtering by flight level
- Returns data in JSON format with optional human-readable formatting
- Built with TypeScript for type safety
- Comprehensive parameter validation using Zod schemas
- Full test coverage with Vitest
Installation
npm install
Development
npm run dev
Build
npm run build
Testing
The project uses Vitest for comprehensive testing with multiple test suites:
# Run all tests
npm test
# Run tests with UI (interactive)
npm run test:ui
# Run specific test suites
npm run test:api # API client tests
npm run test:mcp # MCP server component tests
npm run test:integration # Full MCP integration tests
# Manual interactive testing
npm run build
node tests/manual-test.js
Test Coverage
✅ API Client Tests (tests/api-client.test.ts
): Tests the AviationWeather.gov API client
- Domestic SIGMET retrieval with and without filters
- International SIGMET retrieval
- Parameter validation and error handling
- Human-readable output formatting
✅ MCP Server Tests (tests/test-mcp-server.ts
): Tests MCP server components
- Tool registration and parameter validation
- API integration and response formatting
- Error handling for invalid parameters
✅ Integration Tests (tests/mcp-integrations.test.ts
): End-to-end MCP client-server testing
- Full MCP protocol communication
- Tool listing and execution
- Real API calls with various parameters
- Error handling for unknown tools
✅ Manual Tests (tests/manual-test.js
): Interactive testing with custom parameters
Debugging
VS Code Debugging
- Open the project in VS Code
- Go to the Debug panel (Ctrl+Shift+D / Cmd+Shift+D)
- Choose one of the following configurations:
- "Debug Test API (Compiled)" - Uses compiled JavaScript (recommended)
- "Debug Test API (TSX)" - Uses tsx runtime
- "Debug MCP Server" - For debugging the main server
- Set breakpoints in your TypeScript files
- Press F5 to start debugging
Command Line Debugging
# Build and debug with compiled JavaScript
npm run build
node --inspect-brk dist/tests/test-api.js
# Debug with tsx (if the above doesn't work)
npx tsx --inspect-brk tests/test-api.ts
# Use the debug wrapper script
npm run debug:test
Adding Breakpoints
You can add debugger;
statements in your code:
async function testApi() {
debugger; // This will pause execution when debugging
const client = new AviationWeatherApiClient();
// ... rest of the code
}
Troubleshooting
If you encounter the "Package subpath './register' is not defined" error:
- Use the "Debug Test API (Compiled)" configuration
- Or run
npm run build
first, then debug the compiled JavaScript - Make sure you're using the latest version of tsx
Usage
This MCP server provides tools for retrieving SIGMET data with comprehensive parameter validation:
Domestic SIGMETs
- Tool:
get_domestic_sigmets
- Description: Retrieves domestic SIGMETs for the United States
- Parameters:
hazard
(optional): Filter by hazard type (conv
,turb
,ice
,ifr
)level
(optional): Flight level ±3000' to search (0-600)date
(optional): Specific date/time to search (format:yyyymmdd_hhmmZ
oryyyy-mm-ddThh:mm:ssZ
)humanReadable
(optional): Return human-readable formatted output
International SIGMETs
- Tool:
get_international_sigmets
- Description: Retrieves international SIGMETs
- Parameters:
hazard
(optional): Filter by hazard type (turb
,ice
)level
(optional): Flight level ±3000' to search (0-600)date
(optional): Specific date/time to search (format:yyyymmdd_hhmmZ
oryyyy-mm-ddThh:mm:ssZ
)humanReadable
(optional): Return human-readable formatted output
Parameter Validation
All parameters are validated using Zod schemas:
- Hazard types: Strictly enforced enum values
- Flight levels: Must be between 0-600
- Date formats: Must match specified patterns
- Error handling: Invalid parameters throw descriptive errors
Output Formats
- Standard: Raw JSON data from the API
- Human-readable: Formatted output with readable timestamps and descriptions (when
humanReadable: true
)
API Reference
This server uses the AviationWeather.gov API for data retrieval.
License
MIT