Skip to main content
Glama

Court Delta

Search North Carolina (NC) court cases by party (person) name

search_cases_by_party
Read-only

Search North Carolina (NC) court cases by a person's name.

Returns (person, case) matches from the NC eCourts party-name search. Each row carries a case_number (the stable id) and a portal_session_ref — a Tyler token whose lifetime is UNSPECIFIED (it rotates every search; survives at least minutes; upper bound unmeasured). Pass it to lookup_court_case (as portalSessionRef) for a quick follow-up; for anything persisted or delayed use case_number. Never persist or reuse the ref. Each row also carries portal_url — the direct NC eCourts source record; it embeds the same short-lived token, so treat it like the ref (don't persist). caseSummaryUrl (from lookup_court_case) is the durable link. EVERY ROW NOW CARRIES case_status, with no enrich needed — so do not call lookup_court_case merely to find out whether a case is open or closed. The returned text is FINER-GRAINED than the four filter values: alongside "Pending" and "Disposed" you will see "Disposed - Voluntary Dismissal", "Disposed - Dismissal on Order of the Court", "Disposed - Clerk of Superior Court" — i.e. HOW it ended, not just that it did. So never test it with equality against the filter vocabulary (status == "Disposed" misses most disposed rows); match on a prefix, and quote the portal's own wording when you report it.

Rows carry party_type (the person's role) plus party_role_source: "caption" = surname confirmed in the case caption (trust it); "portal_party_type" = role from the portal's own PartyTypeKey but no caption to confirm (common on SP / foreclosure cases — usable, but corroborate for high-stakes use); null = no role (or a role dropped as suspect, e.g. a citing officer mislabeled "Defendant" on someone else's caption). For an AUTHORITATIVE role/roster, call lookup_court_case and read its parties list. party_role_verified (bool) = source == "caption". Read-only. NC only. Informational, not legal advice.

Required: last, first. Filters differ in where they apply:

  • SERVER-SIDE narrowing (reduce the portal search — the ONLY way to clear the 200-case cap): case_status ("Pending"|"Disposed"|"Closed"|"Reopened"), the filed-date range file_date_start/file_date_end (ISO YYYY-MM-DD or MM/DD/YYYY — both accepted), and a more specific name.

  • soundex: true is also server-side but BROADENS (phonetic surname matching → MORE matches, more likely to truncate) — don't enable it to clear a cap.

  • CLIENT-SIDE (filter the rows already returned; do NOT recover cases missed by the cap): county ("Wake" or "Wake County") and case_type (pick a value from the narrowing.caseTypes facet).

Speed: a search runs a live portal query and takes ~15-50s, with real run-to-run variance — do NOT pick filters for speed. Narrow for COMPLETENESS: case_status and a file_date range are server-side and are the only filters that recover cases past the 200-cap; county/case_type only filter what was already returned.

Two different limits:

  • portal_truncated true = the portal hit its statewide 200-case cap, so the set is INCOMPLETE (real matches are missing). See portal_truncated_note; when true, narrowing gives counties only (counts are lower bounds). Clear it with case_status / date range / a more specific name.

  • results_truncated true = the (complete) set exceeded limit, so not all rows are shown. Pass a higher limit (up to 200) to show them all.

Breadth (read narrowing_hint): the tool never asks you to withhold results, and it distinguishes two cases with different remedies:

  • INCOMPLETE (portal_truncated true): the shown cases are valid but some are missing. Present them, and to recover the rest narrow with server-side filters (a filed-date range or case_status) — or, if autonomous with no user to ask, re-call confirm_broad=true to proceed as-is.

  • COMPLETE but long (a large set with portal_truncated false): nothing is missing. List or summarize the results; refining (county/case_type/date) is optional, not required. A moderate complete set is a fine answer on its own.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lastYes
firstYes
limitNo
countyNo
soundexNo
case_typeNo
case_statusNo
confirm_broadNo
file_date_endNo
file_date_startNo

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.9/5.0
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses critical behaviors: the ephemeral lifetime of portal_session_ref, truncation flags (portal_truncated vs results_truncated), fine-grained case_status values that do not match the filter enum, party_role_source trust levels, and the 15-50s runtime variance. This goes far beyond what annotations provide.

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 the tool is complex with 10 parameters, two truncation limits, server-side vs client-side filtering, and token-lifetime caveats. Nearly every sentence carries operational value; the main cost is that the length requires an agent to parse several dense paragraphs, so it is not maximally concise, but it is well-structured with clear topic breaks.

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?

The description covers the full calling context: required and optional inputs, result semantics, truncation handling, follow-up tool routing, data-quality caveats, read-only nature, jurisdiction, and legal disclaimer. With an output schema present, it does not need to document return types, and nothing essential for correct invocation is missing.

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%, but the description fully compensates by explaining every parameter: last/first required, limit up to 200, county values, soundex broadening behavior, case_type sourced from narrowing.caseTypes, case_status enum plus the caution about finer-grained return values, confirm_broad for autonomous recovery, and file_date_start/end accepted formats. This is exemplary parameter-level documentation.

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, unambiguous statement: 'Search North Carolina (NC) court cases by a person's name.' It clearly identifies the resource (NC eCourts party-name search), the action (search), and the scope (party/person), and the title and first sentence align exactly with the tool name and its distinguishing role among sibling tools.

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 and when-not-to-use guidance: it tells the agent to pass portalSessionRef to lookup_court_case for quick follow-up, to use case_number for persisted work, to NOT call lookup_court_case just to check open/closed status, and to call lookup_court_case for an authoritative role/roster. It also explains exactly which filters are server-side versus client-side and when to use them to recover truncated results.

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