Seattle Fire Department MCP Server
Enables real-time monitoring of Seattle Fire Department incident data, allowing users to check for active fires, evacuation orders, and retrieve live emergency response information through natural language queries.
README
MCP SFD - Seattle Fire Department MCP Server
A Model Context Protocol (MCP) server that provides tools for LLMs to fetch and analyze Seattle Fire Department live incident data.
Features
- Low-level API proxy (
sfd.fetch_raw) with normalization and caching - Latest incident retrieval (
sfd.latest_incident) for quick updates - Fire detection (
sfd.is_fire_active) with intelligent status analysis - Evacuation monitoring (
sfd.has_evacuation_orders) with keyword scanning - Robust error handling and retry logic
- Comprehensive data normalization
- In-memory caching with configurable TTL
Installation
# Install the package
pip install -e .
# Install development dependencies
pip install -e ".[dev]"
Usage
Running the MCP Server
# Run with default settings
python -m mcp_sfd.server
# Or use the CLI command
mcp-sfd
Environment Variables
SFD_BASE_URL: Base URL for SFD API (default:https://sfdlive.com/api/data/)DEFAULT_CACHE_TTL: Default cache TTL in seconds (default: 15)
Available Tools
sfd.fetch_raw
Low-level proxy for the SFD API with full parameter control.
{
"order": "new",
"length": 100,
"search": "Any",
"cacheTtlSeconds": 15
}
sfd.latest_incident
Returns the single most recent incident.
{}
sfd.is_fire_active
Checks if there are any active fire incidents in Seattle.
{
"lookbackMinutes": 120
}
sfd.has_evacuation_orders
Scans for evacuation-related keywords in recent incidents.
{
"lookbackMinutes": 180
}
Development
Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=mcp_sfd
# Run specific test file
pytest tests/test_normalize.py
Code Quality
# Format code
black mcp_sfd/ tests/
# Lint
ruff check mcp_sfd/ tests/
# Type check
mypy mcp_sfd/
Architecture
The server is built with several key components:
- HTTP Client (
http_client.py): Handles API requests with retry logic and caching - Data Normalization (
normalize.py): Converts upstream API format to standardized schemas - Pydantic Schemas (
schemas.py): Type-safe data models for all inputs and outputs - Tool Implementations (
tools/): Individual MCP tool logic - Server (
server.py): MCP server registration and error handling
Data Normalization
The server handles complex data transformations:
- Flattens nested upstream data structures
- Converts Seattle local time to UTC
- Normalizes coordinates from various formats
- Parses unit identifiers and status information
- Standardizes boolean fields
Error Handling
All tools use standardized MCP error codes:
UPSTREAM_HTTP_ERROR: API connectivity issuesUPSTREAM_TIMEOUT: Request timeoutsSCHEMA_VALIDATION_ERROR: Data parsing failures
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.