Skip to main content
Glama

Court Delta

Courthouse location, phone and nearby parking for a North Carolina (NC) county

court_visit_info
Read-only

Which courthouse, where it is, when it's open, and where to park.

For "I have court on Tuesday — where do I go?". Give a county ("Wake") or a caseNumber to derive it. From the North Carolina (NC) AOC directory plus Google Places.

RETURNS locations[], NOT ONE COURTHOUSE. 19 counties have several venues and picking one silently is a real way to send someone to the wrong building. Wake has a Courthouse, a Justice Center AND a Clerk's office; Guilford has courthouses in Greensboro and High Point, in different cities. multipleLocations:true means you must disambiguate rather than assume.

TO PICK THE RIGHT ONE, USE THE CASE'S HEARING LOCATION. lookup_court_case returns upcomingHearings[].location (e.g. "Wake Co. Justice Center"), which usually names the building. Match it against locations[].name, allowing for "Co." vs "County". BUT DO NOT FORCE A MATCH: measured on real hearings, a third have "No location" at all, and several use names that don't correspond to the directory — "Buncombe Co. Judicial Complex" is the Buncombe County Courthouse, "Alamance Co. JB Allen" is the Alamance County Courthouse. When it doesn't map cleanly, SHOW THE OPTIONS and let the user choose. Guessing between Wake's Courthouse and its Justice Center is exactly the wrong place to be confident.

HOURS ARE REAL — and watch for lunch closures. A value like "08:30-12:30, 13:30-17:00" means the venue SHUTS between those times; someone arriving at 1pm in Nash, Wilson, Cherokee or either Guilford courthouse finds a locked door. Say the closure out loud. Courts also close on NC state holidays, which these hours do not encode.

parkingAttributes are what the venue publishes — "freeLot", "paidGarage", "onSite" etc. ABSENT MEANS NOT CLAIMED, NOT "no parking". nearbyParking (actual lots near the building, with distanceMeters and a mapsUrl) and parkingMapUrl (a static map image, courthouse marked "C") appear on AT MOST ONE location — the one the scrape described. Their absence on the others is not a statement about them.

accessibility is published PER BUILDING — "wheelchairEntrance", "wheelchairParking", "wheelchairRestroom", "wheelchairSeating", "restroom". Report what a venue claims. An ABSENT flag is NOT a claim that the feature is missing: every venue claims wheelchair entrance, parking and restroom, but only 15 of 121 claim accessible SEATING, and no venue publishes assisted-listening data at all. For anyone who depends on a specific accommodation, give what's listed and say to call the courthouse to confirm the rest — do not report "not accessible" from a missing flag.

source:"nccourts-scrape" means the directory had no entry and this fell back to the live site, so hours will be empty — tell the user to call rather than inventing them. All 100 counties are currently in the directory, so this should be rare.

THIS IS LOCATION INFO, NOT CASE INFO — nothing about hearings, charges or status; use lookup_court_case for those. Cite the disclaimer: verify with the clerk before travelling. Read-only. NC only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countyNo
caseNumberNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

The description is exceptionally transparent about behavioral quirks beyond the annotations: it warns that multiple locations may be returned, hours include lunch closures, absent parkingAttributes do not mean 'no parking', and source fallback leaves hours empty. It also confirms the readOnlyHint ('Read-only') and openWorldHint ('ABSENT MEANS NOT CLAIMED'). No contradiction with annotations is present.

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 description is long but deliberately structured with clear sections: purpose, disambiguation, hours, parking, accessibility, source fallback, and disclaimer. It is front-loaded with the core question it answers. Minor redundancy in the repeated warnings about not guessing between courthouses makes it slightly less concise than ideal.

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?

For a tool with subtle real-world pitfalls, the description covers nearly everything an agent needs: return shape, multi-location handling, matching against hearing locations, lunch closures, parking semantics, accessibility semantics, source fallback behavior, and when to route to another tool. The output schema exists, so the description doesn't need to enumerate return fields; the behavioral caveats are what matter and they are thoroughly addressed.

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 description coverage is 0%, so the description must carry parameter meaning. It does: it explains that `county` expects a value like 'Wake' and that `caseNumber` can be used to derive the county. The sole gap is that it doesn't discuss precedence or behavior when both parameters are supplied, and it doesn't give a caseNumber format example. Still, it compensates well for the schema's silence.

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 statement of what the tool provides: 'Which courthouse, where it is, when it's open, and where to park.' It also explicitly distinguishes itself from case-related tools: 'THIS IS LOCATION INFO, NOT CASE INFO.' This clearly separates it from siblings like lookup_court_case.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use context: 'For "I have court on Tuesday — where do I go?"'. It names the alternative tool, lookup_court_case, for case info, and provides detailed disambiguation guidance involving upcomingHearings[].location. It even tells the agent when NOT to force a match and to show options instead.

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.

Resources