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

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

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.

  1. Features
    1. Installation
      1. Usage
        1. Running the MCP Server
        2. Environment Variables
        3. Available Tools
      2. Development
        1. Running Tests
        2. Code Quality
      3. Architecture
        1. Data Normalization
          1. Error Handling
            1. License

              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