Public Safety MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Public Safety MCP ServerWhat incidents occurred in the last hour?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Public Safety MCP Server
An MCP (Model Context Protocol) server exposing CAD (Computer-Aided Dispatch), AVL (Automatic Vehicle Location), and NERIS incident data as tools for use by Claude and other MCP clients.
Overview
The server connects to a Microsoft SQL Server database (CAD/AVL data) and the NERIS public incident API, and exposes both generic database access tools and purpose-built operational query tools over a single streamable HTTP MCP endpoint.
Related MCP server: data-detroit
Requirements
Node.js
Access to the CAD/AVL MSSQL database
A NERIS API subscription key
Setup
npm installCreate config/config.env with:
MCP_HOST=
MCP_PORT=
PS_DB_SERVER=
PS_DB_DATABASE=
PS_DB_USER=
PS_DB_PASSWORD=
NERIS_SUBSCRIPTION_KEY=
NERIS_API_KEY=Development
npm run dev # run with tsx + nodemon, auto-reload
npm run build # compile TypeScript to dist/ (tsc + tsc-alias)
npm start # run compiled server from dist/
npm run deploy # rsync build + config to production host and restart via pm2The server listens on MCP_PORT (default 7001) and exposes:
GET /publicsafety/health— health checkPOST /publicsafety— MCP streamable HTTP endpoint
Project Structure
app.ts Server entrypoint
routes/ Express routes (MCP endpoint, tile proxy)
tools/
mssql/ Generic DB tools: listTables, describeTable, executeQuery, getTablePreview
cad/ CAD operational tools: call volume, by-hour/day-of-week, top call types, incident search/activity log, raw query
avl/ AVL/GPS tools: unit tracking, movement detection, incident response time, breadcrumb report rendering
neris/ NERIS API client and incident list/get tools
combined/ Cross-source tools (e.g. CAD-NERIS join on incident timestamps)
utils/registerTools.ts Registers all tools with the MCP server
config/config.env Environment configuration (not committed)
skills/ Claude skill definitions (CAD, AVL) packaged as .zipTools
Tools are aggregated in tools/index.ts and registered on the McpServer in app.ts via registerAllTools. See individual files under tools/ for each tool's schema and behavior.
Notes
CAD/AVL coordinates are stored as scaled integers in the database and transformed by the server before rendering on maps.
The CAD-NERIS join correlates records by matching CAD's First Unit Assigned Time to NERIS's OnsetDate (truncated to seconds).
cadIncidentSearchToolis intentionally slim (9 columns, required date range) to avoid context overflow; usecadQueryToolfor arbitrary queries.
This server cannot be deployed
Maintenance
Related MCP Connectors
- RumboOAuthcom.rumboar
Securely query and analyze business data, dashboards, projections, alerts, and knowledge.
Public hazard, water, weather and EPA data with source, age and licence on every reading.
Read Physical AI datasets, projects, fleet and quality data. Requires authorized Avala access.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides integrated access to location-based weather, reporting history, and infrastructure status data for safety reporting systems. It supports both SSE and stdio protocols for flexible integration with various AI agents and clients.-
- AlicenseNot gradedqualityBmaintenanceProvides access to Detroit open data via ArcGIS REST API, enabling querying and analysis of municipal datasets through natural language or direct tool calls.260 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and querying City of Pittsburgh GIS open geospatial data (parcels, zoning, public works) through ArcGIS feature services via MCP tools.413 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides aerospace fleet telemetry monitoring, Mil-Spec RAG search, fleet maintenance queries, sandboxed mission log exports, and tactical alert dispatching.MIT