Skip to main content
Glama

fbi-crime-mcp-server

FBI Get Hate Crimes

fbi_get_hate_crimes
Read-onlyIdempotent

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 ethnicity, and federal judicial district, with every category CDE reports, zeros included. Narrow to one bias motivation with bias. National scope omits identifiers; state requires only state_abbr; agency requires only ori (look it up with fbi_search_agencies). CDE returns zeros both when nothing was reported and when it does not recognize a state or ORI.

Input Schema

NameRequiredDescriptionDefault
oriNoNine 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.
biasNoBias 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 African American; 13 Anti-American Indian or Alaska Native; 14 Anti-Asian; 15 Anti-Multiple Races, Group; 16 Anti-Native Hawaiian or Other Pacific Islander; 21 Anti-Jewish; 22 Anti-Catholic; 23 Anti-Protestant; 24 Anti-Islamic (Muslim); 25 Anti-Other Religion; 26 Anti-Multiple Religions, Group; 27 Anti-Atheism/Agnosticism; 28 Anti-Church of Jesus Christ; 29 Anti-Jehovah's Witness; 31 Anti-Arab; 32 Anti-Hispanic or Latino; 33 Anti-Other Race/Ethnicity/Ancestry; 41 Anti-Gay (Male); 42 Anti-Lesbian (Female); 43 Anti-Lesbian, Gay, Bisexual, or Transgender (Mixed Group); 44 Anti-Heterosexual; 45 Anti-Bisexual; 51 Anti-Physical Disability; 52 Anti-Mental Disability; 61 Anti-Male; 62 Anti-Female; 71 Anti-Transgender; 72 Anti-Gender Non-Conforming; 81 Anti-Eastern Orthodox (Russian, Greek, Other); 82 Anti-Other Christian; 83 Anti-Buddhist; 84 Anti-Hindu; 85 Anti-Sikh.all
scopeYesGeographic scope: national (omit identifiers), state (only state_abbr), or agency (only ori).
to_yearYesEnd year of the data range (inclusive), 1991 through the current year.
to_monthNoEnd month (1–12). Defaults to December.
from_yearYesStart year of the data range (inclusive), 1991 through the current year. The API uses monthly granularity.
from_monthNoStart month (1–12). Defaults to January.
state_abbrNoTwo ASCII-letter state abbreviation (e.g. CA, DC, PR); case-insensitive. Only permitted and required for state scope.

Output Schema

NameRequiredDescriptionDefault
toNoLast month of the summed window (MM-YYYY).
oriNoUppercased ORI code; present only for agency scope.
biasNoBias motivation code applied, or all.
fromNoFirst month of the summed window (MM-YYYY).
errorNoPresent when the call failed. Absent on success.
scopeNoGeographic scope queried.
noticeNoPresent when every count is zero; says whether zeros can also mean an unrecognized state or ORI.
bias_labelNoCDE label for the applied bias code; "All bias motivations" for all.
state_abbrNoUppercased state abbreviation; present only for state scope.
bias_sectionNoCDE's bias_section breakdowns summed over the window. Each dimension is counted on its own basis, so the dimensions do not sum to one total or to the incident count.
incident_sectionNoIncident counts summed over the window.
data_last_updatedNoDate CDE last refreshed hate crime data; absent when CDE omits it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/openWorld, but the description adds a genuinely important behavioral warning: CDE returns zeros both when nothing was reported and when a state or ORI is unrecognized, so zeros are ambiguous. It also discloses that every CDE category is emitted with zeros included, which affects how results must be interpreted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the resource and time window, then return contents, then scope/parameter rules and the zero caveat. No filler or restated title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter coverage, the description only needs to cover interpretation risks and scoping rules—which it does, including the zero-vs-unrecognized ambiguity that an agent could not infer from structured fields alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, and the description adds the conditional applicability rule across the three scopes in one place and clarifies that bias narrows counts (including multiple-bias incidents containing the code). Most of that detail is still duplicated from the per-parameter schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (hate crime counts from FBI CDE) plus scope (nation/state/agency), time granularity (monthly, Jan 1991–present), and the exact breakdowns returned. That is clearly distinguishable from the arrest, crime-estimate, LEOKA and NIBRS siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete conditions for each scope mode ("national omits identifiers; state requires only state_abbr; agency requires only ori") and routes ORI lookup to the sibling fbi_search_agencies. It stops short of saying when to prefer a different FBI dataset over this one, so it is clear context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.