Skip to main content
Glama
Lavoiedavidw

Charlotte-Mecklenburg MCP Server

by Lavoiedavidw

homicides_near

Search for homicide incidents near a point using an address or lat/lon. Adjust radius and days to get reported cases with details.

Instructions

Homicide incidents near a point, from the point-level CMPD_Homicide layer.

Provide either address (free-form string) or both lat and lon. Unlike the aggregate crime tables, CMPD_Homicide is a real point Feature Layer (public lat/lon per victim, since 2015), so this runs a genuine point+radius spatial query with a DATE_REPORTED where-clause. Homicides are rare, so defaults are wider (1600m / 365 days) than the other "near" tools; relax further for sparse areas.

Args: address: Free-form address, e.g. "600 E 4th St, Charlotte, NC". lat: Latitude, used with lon if address is not given. lon: Longitude, used with lat if address is not given. radius_m: Search radius in meters (default 1600). days: Only include homicides reported within this many days of now (default 365). limit: Maximum number of homicides to return (default 50).

Returns: Dict with homicides (list of dicts with crime_report_id, location, weapon, clearance_status, circumstances, ipv, npa, council_district, patrol_division, date_reported, clearance_date), count, breakdown (weapon -> count), radius_m, days, lat, lon, resolved_address, and summary.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
daysNo
limitNo
addressNo
radius_mNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by disclosing that this is a genuine point+radius spatial query with a DATE_REPORTED where-clause, and that data is public per victim since 2015. It does not mention potential rate limits or error cases, but the disclosed spatial/behavioral details are substantial.

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?

The description is longer than average but every sentence earns its place: it explains the layer's nature, the query approach, why defaults are wider, and provides structured Args/Returns sections. It is well-organized, front-loaded with purpose, and free of fluff.

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?

Given the tool's complexity (point query with two alternative input modes, spatial and temporal filters), the description is complete. It covers inputs, defaults, output structure, and notable behavioral differences. The explicit Returns section and mention of breakdown/weapon counts satisfy what the agent needs to know.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It does so thoroughly with an Args section explaining each parameter, including defaults, the address example, and the lat/lon pairing requirement. This adds meaning far beyond the raw schema.

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?

The description opens with a specific verb+resource: 'Homicide incidents near a point, from the point-level CMPD_Homicide layer.' It clearly distinguishes itself from aggregate crime tables by noting 'CMPD_Homicide is a real point Feature Layer', which differentiates it from sibling tools like crime_near and violent_crime_near.

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?

The description gives clear usage context: 'Provide either address (free-form string) or both lat and lon' and explains why defaults are wider ('Homicides are rare'). It implicitly contrasts with aggregate crime tables, but does not name explicit alternative tools or state when not to use this tool, so it falls short of a 5.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Lavoiedavidw/Charlotte-City-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server