Seattle Fire Department MCP Server

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.

Category
Visit Server

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 issues
  • UPSTREAM_TIMEOUT: Request timeouts
  • SCHEMA_VALIDATION_ERROR: Data parsing failures

License

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured