cyanheads avatar

Fbi Crime Mcp Server

cyanheads/fbi-crime-mcp-server

Wraps the FBI Crime Data Explorer API so Claude can pull UCR estimates, LEOKA officer safety stats, and agency-level offense data. Four tools are live (crime estimates, agency offenses, LEOKA, arson), hitting the CDE summarized and LEOKA endpoints. Eight legacy tools (arrests, hate crimes, NIBRS, agency search) are decommissioned and return errors pointing to the FBI's bulk CSV downloads. You get per-100k rates and raw counts by month for violent crime, property crime, robbery, burglary, larceny, motor vehicle theft, arson, assault, rape, and homicide at national, state, or agency scope. Built on the mcp-ts-core framework with STDIO and Streamable HTTP transports. Requires an api.data.gov key, though DEMO_KEY works for light exploration.

GitHub stars
2
tools
6
auth
Required
transport
STDIO, HTTP
env vars
7
last updated
Nov 1, 2026

Install

From registry metadata
$ npx add-mcp https://fbi-crime.caseyjhand.com/mcp --name fbi-crime

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http fbi-crime https://fbi-crime.caseyjhand.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 6 tools

Verified live against the running server on Nov 6, 2026.

fbi_search_agenciesFind law enforcement agencies in one state and their nine-character ORI codes, the identifier agency scope needs in fbi_get_crime_estimates, fbi_get_hate_crimes, fbi_get_arrests, and fbi_get_nibrs_breakdown. Fetches the state's full FBI CDE agency directory, filters it by word...6 params

Find law enforcement agencies in one state and their nine-character ORI codes, the identifier agency scope needs in fbi_get_crime_estimates, fbi_get_hate_crimes, fbi_get_arrests, and fbi_get_nibrs_breakdown. Fetches the state's full FBI CDE agency directory, filters it by word...

Parameters* required
agency_typestring
Agency type: City, County, Other State Agency, Other, State Police, University or College, or Tribal.one of City · County · Other State Agency · Other · State Police · University or College
countystring
County name, case-insensitive (e.g. Bexar). Matches an agency when it equals any of the agency's counties, so an agency serving several counties matches each of them.
limitinteger
Agencies per page (1–200). Defaults to 50.default: 50
name_containsstring
Words or word fragments that must all appear in the agency name, in any order, case-insensitively (e.g. "san antonio police").
offsetinteger
Zero-based position in the sorted matches; pass next_offset from the previous page. Defaults to 0.default: 0
state_abbr*string
Two ASCII-letter state abbreviation (e.g. TX, DC, PR); case-insensitive.
fbi_get_crime_estimatesMonthly offense rates (per 100,000 participating population), raw counts, population denominators and provider reporting coverage from FBI CDE, January 1985 through the current year; current-year months past the latest data return null values. National scope omits identifiers;...9 params

Monthly offense rates (per 100,000 participating population), raw counts, population denominators and provider reporting coverage from FBI CDE, January 1985 through the current year; current-year months past the latest data return null values. National scope omits identifiers;...

Parameters* required
from_monthinteger
Start month (1–12). Defaults to January.default: 1
from_year*integer
Start year of the data range (inclusive), 1985 through the current year. The API uses monthly granularity.
include_comparisonsboolean
Also return the comparison entities CDE sends with state or agency data (an agency's state and the United States, or a state's United States) as monthly rates, populations and coverage for the scop...default: false
offense*string
Offense type: violent-crime, property-crime, robbery, burglary, larceny, motor-vehicle-theft, arson, aggravated-assault, rape, or homicide.one of violent-crime · property-crime · robbery · burglary · larceny · motor-vehicle-theft
oristring
Nine ASCII-letter/digit ORI code (e.g. CA0010400, DCMPD0000); case-insensitive. Find an agency's ORI with fbi_search_agencies. Only permitted and required for agency scope.
scope*string
Geographic scope: national (omit identifiers), state (only state_abbr), or agency (only ori).one of national · state · agency
state_abbrstring
Two ASCII-letter state abbreviation (e.g. CA, DC, PR); case-insensitive. Only permitted and required for state scope.
to_monthinteger
End month (1–12). Defaults to December.default: 12
to_year*integer
End year of the data range (inclusive), 1985 through the current year.
fbi_get_nibrs_breakdownNIBRS incident breakdowns reported to FBI CDE for one offense, for the nation, a state, or an agency, summed over a month window from January 1991 through the current year. Returns victim counts by age, sex, race, location, ethnicity, and relationship to the offender; offender...8 params

NIBRS incident breakdowns reported to FBI CDE for one offense, for the nation, a state, or an agency, summed over a month window from January 1991 through the current year. Returns victim counts by age, sex, race, location, ethnicity, and relationship to the offender; offender...

Parameters* required
from_monthinteger
Start month (1–12). Defaults to January.default: 1
from_year*integer
Start year of the data range (inclusive), 1991 through the current year. The API uses monthly granularity.
offense*string
NIBRS offense code to break down (required; case-insensitive). Codes: 100 Kidnapping/Abduction; 101 Treason; 103 Espionage; 120 Robbery; 200 Arson; 210 Extortion/Blackmail; 220 Burglary/Breaking &...one of 100 · 101 · 103 · 120 · 200 · 210
oristring
Nine ASCII-letter/digit ORI code (e.g. CA0010400, DCMPD0000); case-insensitive. Find an agency's ORI with fbi_search_agencies. Only permitted and required for agency scope.
scope*string
Geographic scope: national (omit identifiers), state (only state_abbr), or agency (only ori).one of national · state · agency
state_abbrstring
Two ASCII-letter state abbreviation (e.g. CA, DC, PR); case-insensitive. Only permitted and required for state scope.
to_monthinteger
End month (1–12). Defaults to December.default: 12
to_year*integer
End year of the data range (inclusive), 1991 through the current year.
fbi_get_arrestsArrest counts reported to FBI CDE for the nation, a state, or an agency, summed over a month window from January 1985 through the current year. Returns arrests by offense name, offense category, and detailed offense breakdown, by arrestee sex and race, and by age group for mal...8 params

Arrest counts reported to FBI CDE for the nation, a state, or an agency, summed over a month window from January 1985 through the current year. Returns arrests by offense name, offense category, and detailed offense breakdown, by arrestee sex and race, and by age group for mal...

Parameters* required
from_monthinteger
Start month (1–12). Defaults to January.default: 1
from_year*integer
Start year of the data range (inclusive), 1985 through the current year. The API uses monthly granularity.
offensestring
CDE arrest offense code to narrow the counts to, or all (default). Codes: 11 Murder and Nonnegligent Homicide; 12 Manslaughter by Negligence; 20 Rape - Not Specified (Legacy); 30 Robbery; 50 Assaul...one of 11 · 12 · 20 · 30 · 50 · 55default: all
oristring
Nine ASCII-letter/digit ORI code (e.g. CA0010400, DCMPD0000); case-insensitive. Find an agency's ORI with fbi_search_agencies. Only permitted and required for agency scope.
scope*string
Geographic scope: national (omit identifiers), state (only state_abbr), or agency (only ori).one of national · state · agency
state_abbrstring
Two ASCII-letter state abbreviation (e.g. CA, DC, PR); case-insensitive. Only permitted and required for state scope.
to_monthinteger
End month (1–12). Defaults to December.default: 12
to_year*integer
End year of the data range (inclusive), 1985 through the current year.
fbi_get_hate_crimesHate crime counts reported to FBI CDE for the nation, a state, or an agency, summed over a month window from January 1991 through the current year. Returns incidents by bias motivation and bias category, plus counts by offense type, location type, offender race, offender ethni...8 params

Hate crime counts reported to FBI CDE for the nation, a state, or an agency, summed over a month window from January 1991 through the current year. Returns incidents by bias motivation and bias category, plus counts by offense type, location type, offender race, offender ethni...

Parameters* required
biasstring
Bias motivation code to narrow the counts to, or all (default). With a code, incidents count that motivation plus multiple-bias incidents that include it. Codes: 11 Anti-White; 12 Anti-Black or Afr...one of 11 · 12 · 13 · 14 · 15 · 16default: all
from_monthinteger
Start month (1–12). Defaults to January.default: 1
from_year*integer
Start year of the data range (inclusive), 1991 through the current year. The API uses monthly granularity.
oristring
Nine ASCII-letter/digit ORI code (e.g. CA0010400, DCMPD0000); case-insensitive. Find an agency's ORI with fbi_search_agencies. Only permitted and required for agency scope.
scope*string
Geographic scope: national (omit identifiers), state (only state_abbr), or agency (only ori).one of national · state · agency
state_abbrstring
Two ASCII-letter state abbreviation (e.g. CA, DC, PR); case-insensitive. Only permitted and required for state scope.
to_monthinteger
End month (1–12). Defaults to December.default: 12
to_year*integer
End year of the data range (inclusive), 1991 through the current year.
fbi_get_leokaLEOKA officer fatality trends, weapons, activity, circumstances, demographics, geographic regions, and time-of-day/month breakdowns, 2020 through the current year. Period "ytd" requests a year; "monthly" requires month and includes the same month of the comparison year. Both p...3 params

LEOKA officer fatality trends, weapons, activity, circumstances, demographics, geographic regions, and time-of-day/month breakdowns, 2020 through the current year. Period "ytd" requests a year; "monthly" requires month and includes the same month of the comparison year. Both p...

Parameters* required
monthinteger
Month number (1–12). Required for monthly; must be omitted for YTD.
period*string
Data period: ytd for the year, monthly for month-specific breakdowns and comparison years. Both include the CDE YTD totals block.one of ytd · monthly
year*integer
Year to retrieve LEOKA data for, 2020 through the current year. Required — the API does not default to a year.

Sponsors

Configuration

FBI_API_KEY*

api.data.gov API key for the FBI Crime Data Explorer. Free at https://api.data.gov/signup/.

MCP_LOG_LEVELdefault: info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

MCP_HTTP_HOSTdefault: 127.0.0.1

The hostname for the HTTP server.

MCP_TRANSPORT_TYPEdefault: http

Selects the HTTP transport.

MCP_HTTP_PORTdefault: 3010

The port to run the HTTP server on.

MCP_HTTP_ENDPOINT_PATHdefault: /mcp

The endpoint path for the MCP server.

MCP_AUTH_MODEdefault: none

Authentication mode to use: 'none', 'jwt', or 'oauth'.

Readme

@cyanheads/fbi-crime-mcp-server

Exposes the FBI Crime Data Explorer API — monthly UCR offense rates and counts, hate crime, arrest, and NIBRS breakdowns by national, state, or agency scope, agency ORI search, and LEOKA officer-safety statistics via MCP. STDIO or Streamable HTTP.

6 Callable Tools • 5 Disabled Tools • 0 Registered Resources

Details

Repository
github.com/cyanheads/fbi-crime-mcp-server
Categories
Search & Web Crawling, Data & Analytics
Package
@cyanheads/fbi-crime-mcp-server
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 6, 2026

More from cyanheads

Related Search & Web Crawling MCP servers

View all
1cyanheads avatarFederal Regulations Mcp Servercyanheads/federal-regulations-mcp-serverSearch and trace US federal rules across the Federal Register, eCFR, and Regulations.gov.2stars
2cyanheads avatarOpenfoodfacts Mcp Servercyanheads/openfoodfacts-mcp-serverBarcode lookup, nutrition search, and product comparison for 3M+ crowd-sourced food products.2stars
3cyanheads avatarReliefweb Mcp Servercyanheads/reliefweb-mcp-serverSearch ReliefWeb humanitarian reports, disasters, jobs, training, and country profiles via MCP.2stars
4cyanheads avatarSmithsonian Mcp Servercyanheads/smithsonian-mcp-serverSearch 14.5M Smithsonian Open Access objects, get CC0 images, find cross-collection connections.2stars
5cyberpapiii avatarImessage Maxcyberpapiii/imessage-maxAI-optimized MCP server for iMessage on macOS. Read, search, and send messages.2stars
6davooxbv2 avatarClishopdavooxbv2/clishopOrder anything from your terminal — search, buy, track, and manage via MCP tools.2stars