Skip to main content
Glama
ajwann

Charlotte Open Data MCP Server

by ajwann

Find nearby public places

find_nearby_places
Read-onlyIdempotent

Locate public places near any Mecklenburg County address or coordinates by category, such as parks, libraries, bus stops, or pharmacies, sorted by distance.

Instructions

Nearest public places of one type, sorted by straight-line distance.

Categories include libraries, public schools, parks, greenways, fire and police stations, post offices, pharmacies, grocery stores, medical facilities, child care, EV chargers, park-and-ride lots, light rail stations, bus stops, YMCAs, places of worship, and public Wi-Fi. Bus stop IDs can be used with CATS real-time arrival services.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum places to return.
categoryYes
locationYesA street address in Mecklenburg County, e.g. '600 E 4th St, Charlotte, NC 28202', or coordinates as 'latitude,longitude', e.g. '35.2271,-80.8431'.
radius_milesNoRadius in miles.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesYes
placesYes
categoryYes
locationYes
radius_milesYes
total_within_radiusYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond them: results are ranked by straight-line distance (not routed travel distance), only one category may be queried per call, and bus stop IDs are reusable with CATS real-time services. It does not mention result caps beyond the schema's limit, but that is minor given annotations.

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

Conciseness4/5

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

The key fact — nearest places of one type, ranked by straight-line distance — is front-loaded in the opening sentence. The long category list is somewhat redundant with the schema enum and consumes most of the text, but it reads cleanly and nothing is confusing.

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 annotations covering the safety profile and an output schema covering the return shape, the description supplies what remains: the distance metric used for ranking, the one-category-per-call constraint, and the downstream bus-stop ID use. An agent has enough to call this correctly without further guessing.

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

Parameters3/5

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

Schema coverage is 75%, so the schema already documents limit, location, and radius_miles; the description's category enumeration merely restates the enum rather than adding meaning. The one piece of added parameter context is that bus stop IDs returned can be fed to CATS real-time arrivals, which the schema does not say. Baseline 3 is appropriate.

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

Purpose4/5

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

The first sentence gives a specific verb-plus-resource ('nearest public places of one type') plus a defining constraint ('sorted by straight-line distance'), which separates it from the *_near siblings that target crime, crashes, or capital projects. It stops short of naming any sibling explicitly, so an agent must infer the distinction from the category list.

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

Usage Guidelines3/5

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

Usage is only implied: the category list and the note that bus stop IDs work with CATS real-time arrivals hint at when this tool fits. There is no explicit statement of when to prefer this over get_crime_near, get_traffic_crashes_near, or lookup_address, and no prerequisites or exclusions are given.

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