Skip to main content
Glama

Server Details

Public crime records and area trends for Chicago, Milwaukee, New York, Minneapolis, and Denver.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct role: area trends, citywide stats, individual incident pages, place edge resolution, and text search. The descriptions explicitly route users away from likely mistakes, such as using get_crime_stats for a neighborhood or search_crimes for a place name. Boundaries are unusually clear for a set with multiple related crime-query tools.

Naming Consistency5/5

All names use consistent snake_case and follow a verb_noun pattern: get_area_trends, get_city_crimes, get_crime_stats, resolve_place, search_crimes. The verbs vary appropriately by action while remaining predictable and readable.

Tool Count5/5

Five tools is well scoped for a crime-data server. Each tool covers a necessary operation: trends, stats, raw incidents, place resolution, and text search. No tool appears redundant or missing at this count.

Completeness4/5

The surface covers the core crime-data workflows: aggregated trends, citywide statistics, incident retrieval, geographic resolution, and text search. Minor gaps exist, such as no explicit pagination control for get_city_crimes or metadata about supported cities, but these are not likely to block most agent tasks.

Available Tools

5 tools
get_city_crimesCity incidents
Read-onlyIdempotent
Inspect

Returns one page of individual incidents in a city, filtered by crime type, location type, dates, text, and an optional lat/lon box. Supports limit/offset pagination. A window longer than 45 days needs a geographic filter: the box, place, or location_descriptions. Chicago's portal withholds about the last seven days. New York publishes complaints after a quarter closes.

NameRequiredDescriptionDefault
cityNoCity to query.chicago
limitNoMaximum incidents on this page. Defaults to 25.
placeNoAddress text, such as a street name, matched against location, block, and community area. Neighborhood boundaries come from the lat/lon box.
offsetNoNumber of incidents to skip. Defaults to 0. pagination.next_offset in the result is the next page, or null when there are no more.
lat_maxNoNorth edge of the box.
lat_minNoSouth edge of the box.
lon_maxNoEast edge of the box.
lon_minNoWest edge of the box.
end_dateNoEnd date, YYYY-MM-DD. Defaults to the newest incident.
start_dateNoStart date, YYYY-MM-DD. Defaults to 30 days before the newest incident.
search_textNoText matched against crime type and description.
primary_typesNoCrime types to include, such as THEFT or BATTERY. Defaults to all types.
location_descriptionsNoLocation types to include, such as STREET or RESIDENCE. Defaults to all.
get_crime_statsCitywide crime stats
Read-onlyIdempotent
Inspect

Returns citywide counts, the date range, top crime types, and top location types for one city or all cities. The figures cover whole cities; get_area_trends covers a neighborhood.

NameRequiredDescriptionDefault
cityNoCity to summarize, or all for every city side by side.all
top_nNoNumber of crime types and location types to list. Defaults to 10.
resolve_placeResolve a place
Read-onlyIdempotent
Inspect

Returns the lat/lon box for a neighborhood, street, or rough area such as downtown, with a suggested short incident query for get_city_crimes. get_area_trends accepts the place name directly.

NameRequiredDescriptionDefault
cityYesCity the place is in.
daysNoDays covered by the suggested incident query. Defaults to 14 or 30 depending on the place.
placeYesNeighborhood, street, borough, or a rough area such as downtown or north side.
primary_typesNoOptional crime types to include in the suggested query.
search_crimesSearch incidents
Read-onlyIdempotent
Inspect

Searches crime types and descriptions in one city or all cities and returns matching incidents. Matches come from incident text, which rarely names a neighborhood; get_area_trends covers places.

NameRequiredDescriptionDefault
cityNoCity to search, or all for every city.all
limitNoMaximum incidents returned. Defaults to 25.
queryYesSearch text, such as armed robbery or domestic battery.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • Changedget_area_trends6 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Days ending at the newest incident in the city. Default 90. Use 400 for about 14 months."New value: +"Days ending at the newest incident in the city. Defaults to 90. 400 days is about 14 months."
      • changedInput schema / properties / lat_max / description
        Previous value: -"North edge of the box. Geographic filter."New value: +"North edge of the box."
      • changedInput schema / properties / lat_min / description
        Previous value: -"South edge of the box. Geographic filter."New value: +"South edge of the box."
      • changedInput schema / properties / lon_max / description
        Previous value: -"East edge of the box. Geographic filter."New value: +"East edge of the box."
      • changedInput schema / properties / lon_min / description
        Previous value: -"West edge of the box. Geographic filter."New value: +"West edge of the box."
      • changedInput schema / properties / place / description
        Previous value: -"Neighborhood or rough area, such as Harbor View or Logan Square. Omit if you pass a box."New value: +"Neighborhood or rough area, such as Harbor View or Logan Square. Optional when all four box edges are given."
    • Changedget_city_crimes14 fields changed
      • changedInput schema / properties / end_date / description
        Previous value: -"End date in YYYY-MM-DD format."New value: +"End date, YYYY-MM-DD. Defaults to the newest incident."
      • changedInput schema / properties / lat_max / description
        Previous value: -"North edge. Required geographic filter for a long window."New value: +"North edge of the box."
      • changedInput schema / properties / lat_min / description
        Previous value: -"South edge. Required geographic filter for a long window."New value: +"South edge of the box."
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +25
      • changedInput schema / properties / limit / description
        Previous value: -"Max records to return (1-500)."New value: +"Maximum incidents on this page. Defaults to 25."
      • changedInput schema / properties / limit / maximum
        Previous value: -500New value: +100
      • changedInput schema / properties / location_descriptions / description
        Previous value: -"Filter by location descriptions (e.g., ['STREET', 'RESIDENCE']). Omit for all."New value: +"Location types to include, such as STREET or RESIDENCE. Defaults to all."
      • changedInput schema / properties / lon_max / description
        Previous value: -"East edge. Required geographic filter for a long window."New value: +"East edge of the box."
      • changedInput schema / properties / lon_min / description
        Previous value: -"West edge. Required geographic filter for a long window."New value: +"West edge of the box."
      • changedInput schema / properties / offset / description
        Previous value: -"Records to skip for pagination."New value: +"Number of incidents to skip. Defaults to 0. pagination.next_offset in the result is the next page, or null when there are no more."
      • changedInput schema / properties / place / description
        Previous value: -"Address text, such as a street name, matched against location, block, and community area. This is not a neighborhood boundary. Harbor View and other neighborhood names need the lat/lon box, or get_area_trends."New value: +"Address text, such as a street name, matched against location, block, and community area. Neighborhood boundaries come from the lat/lon box."
      • changedInput schema / properties / primary_types / description
        Previous value: -"Filter by crime types (e.g., ['THEFT', 'BATTERY', 'NARCOTICS']). Omit for all types."New value: +"Crime types to include, such as THEFT or BATTERY. Defaults to all types."
      • changedInput schema / properties / search_text / description
        Previous value: -"Text search across primary_type and description fields."New value: +"Text matched against crime type and description."
      • changedInput schema / properties / start_date / description
        Previous value: -"Start date in YYYY-MM-DD format."New value: +"Start date, YYYY-MM-DD. Defaults to 30 days before the newest incident."
    • Changedget_crime_stats2 fields changed
      • changedInput schema / properties / city / description
        Previous value: -"City to get stats for. Use 'all' for cross-city comparison."New value: +"City to summarize, or all for every city side by side."
      • changedInput schema / properties / top_n / description
        Previous value: -"Number of top items to return."New value: +"Number of crime types and location types to list. Defaults to 10."
    • Changedresolve_place2 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Days for the suggested incident list. Omit for a short default. Year-long trend windows belong on get_area_trends."New value: +"Days covered by the suggested incident query. Defaults to 14 or 30 depending on the place."
      • changedInput schema / properties / primary_types / description
        Previous value: -"Optional crime types to carry into the suggested query."New value: +"Optional crime types to include in the suggested query."
    • Changedsearch_crimes4 fields changed
      • changedInput schema / properties / city / description
        Previous value: -"City to search. Use 'all' for every city."New value: +"City to search, or all for every city."
      • changedInput schema / properties / limit / description
        Previous value: -"Max results (1-200)."New value: +"Maximum incidents returned. Defaults to 25."
      • changedInput schema / properties / limit / maximum
        Previous value: -200New value: +100
      • changedInput schema / properties / query / description
        Previous value: -"Search text (e.g., 'armed robbery', 'domestic battery')."New value: +"Search text, such as armed robbery or domestic battery."
  2. 3 tool updates
    • Addedget_area_trends
    • Changedget_city_crimes5 fields changed
      • changedInput schema / properties / lat_max / description
        Previous value: -"North edge of a resolve_place box."New value: +"North edge. Required geographic filter for a long window."
      • changedInput schema / properties / lat_min / description
        Previous value: -"South edge of a resolve_place box."New value: +"South edge. Required geographic filter for a long window."
      • changedInput schema / properties / lon_max / description
        Previous value: -"East edge of a resolve_place box."New value: +"East edge. Required geographic filter for a long window."
      • changedInput schema / properties / lon_min / description
        Previous value: -"West edge of a resolve_place box."New value: +"West edge. Required geographic filter for a long window."
      • changedInput schema / properties / place / description
        Previous value: -"Neighborhood or street text from resolve_place. Matched against location, block, and community area."New value: +"Address text, such as a street name, matched against location, block, and community area. This is not a neighborhood boundary. Harbor View and other neighborhood names need the lat/lon box, or get_area_trends."
    • Changedresolve_place1 field changed
      • changedInput schema / properties / days / description
        Previous value: -"How many days the suggested query should cover. Omit to use a short default."New value: +"Days for the suggested incident list. Omit for a short default. Year-long trend windows belong on get_area_trends."
  3. 4 tool updates
    • Changedget_city_crimes6 fields changed
      • changedInput schema / properties / city / enum
        Previous value: -[
        -  "chicago",
        -  "milwaukee"
        -]New value: +[
        +  "chicago",
        +  "milwaukee",
        +  "new york",
        +  "minneapolis",
        +  "denver"
        +]
      • addedInput schema / properties / lat_max
        Added value: +{
        +  "description": "North edge of a resolve_place box.",
        +  "type": "number"
        +}
      • addedInput schema / properties / lat_min
        Added value: +{
        +  "description": "South edge of a resolve_place box.",
        +  "type": "number"
        +}
      • addedInput schema / properties / lon_max
        Added value: +{
        +  "description": "East edge of a resolve_place box.",
        +  "type": "number"
        +}
      • addedInput schema / properties / lon_min
        Added value: +{
        +  "description": "West edge of a resolve_place box.",
        +  "type": "number"
        +}
      • addedInput schema / properties / place
        Added value: +{
        +  "description": "Neighborhood or street text from resolve_place. Matched against location, block, and community area.",
        +  "type": "string"
        +}
    • Changedget_crime_stats1 field changed
      • changedInput schema / properties / city / enum
        Previous value: -[
        -  "all",
        -  "chicago",
        -  "milwaukee"
        -]New value: +[
        +  "all",
        +  "chicago",
        +  "milwaukee",
        +  "new york",
        +  "minneapolis",
        +  "denver"
        +]
    • Addedresolve_place
    • Changedsearch_crimes2 fields changed
      • changedInput schema / properties / city / description
        Previous value: -"City to search. Use 'all' for both."New value: +"City to search. Use 'all' for every city."
      • changedInput schema / properties / city / enum
        Previous value: -[
        -  "all",
        -  "chicago",
        -  "milwaukee"
        -]New value: +[
        +  "all",
        +  "chicago",
        +  "milwaukee",
        +  "new york",
        +  "minneapolis",
        +  "denver"
        +]
  4. 3 tool updates
    • First observedget_city_crimes
    • First observedget_crime_stats
    • First observedsearch_crimes

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes the FBI Crime Data Explorer API — crime estimates, agency offense rates, and LEOKA officer safety data via MCP. Supports STDIO or Streamable HTTP transport.
    292 npm
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables searching monthly street-level crime, police outcomes, stop and search records, and neighbourhood policing teams published by data.police.uk across England, Wales and Northern Ireland forces plus British Transport Police. Supports flexible area queries by point, polygon, neighbourhood, or whole force over STDIO or Streamable HTTP.
    160 npm
    1
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources