Skip to main content
Glama

Seattle Fire Department MCP Server

by dpkirschner

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

-
security - not tested
F
license - not found
-
quality - not tested

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/dpkirschner/mcp-sfd'

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