FBI Crime Data
liveGovernmentDemographicsUCR/NIBRS crime statistics by agency, state, and nationally. Reuses your data.gov API key.
Tools
list_agenciesList reporting agencies (police departments / sheriffs) for a state. Returns ORI (Originating Reporting Identifier) — the canonical agency ID required by the other tools.
state_abbroptstring2-letter state codeTry it
get_agencyrequired: oriFetch a single agency record by ORI. Resolved by listing the agencies for the ORI's state and filtering — the dedicated by-ORI endpoint was retired mid-2026.
orireqstring9-character ORITry it
national_estimaterequired: offenseNational summarized counts + rates for an offense across a date range. Useful for "how has X crime trended nationally".
offensereqstringOffense slugfromoptnumberStart yeartooptnumberEnd yearTry it
state_summaryrequired: state_abbr, offenseSummarized monthly counts of an offense in a state. Returns time-series and totals.
state_abbrreqstring2-letter state codeoffensereqstringOffense slugfromoptstringYYYY-MMtooptstringYYYY-MMTry it
agency_summaryrequired: ori, offenseSummarized monthly counts of an offense for one agency (by ORI). Returns time-series of victims/incidents/offenders.
orireqstring9-character ORIoffensereqstringOffense slugfromoptstringYYYY-MMtooptstringYYYY-MMTry it
list_offense_slugsList the offense slugs accepted by national_estimate / state_summary / agency_summary. Returns a static list.
No parameters required.
Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/fbi-crime/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/fbi-crime/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_agencies","arguments":{}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("list_agencies", {});// Or ask in plain English:
const answer = await px.ask("ucr/nibrs crime statistics by agency, state, and nationally");