Skip to main content
Glama
650,553 tools. Updated 2026-10-14 11:19

"Clerk" matching MCP tools:

  • Cases where an attorney is counsel of record — by bar number OR by name. "What's on my docket?" for a lawyer or firm. Returns the case number, caption, filing date, case type and county for every case the register lists that attorney on. Each `case_number` goes straight into `lookup_court_case`. 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. FAST — about 3-15 seconds. This uses the portal's own attorney-search mode, not the slow WAF-and-CAPTCHA hearing scrape, so do NOT warn the user about a long wait here. PASS EITHER `bar` OR BOTH `last` AND `first` — a first name alone or a last name alone is rejected. Prefer the bar number when you have it: it resolves to exactly one attorney, whereas a name can match several. WHEN A NAME MATCHES MORE THAN ONE ATTORNEY, `attorney_name` comes back NULL and `matched_attorneys` lists everyone matched — the results are then a MERGED docket spanning all of them. Say so and offer to narrow by bar number; do not present it as one lawyer's caseload. When exactly one attorney matched, `attorney_name` is set, and it is worth echoing so the user can confirm it resolved to who they meant. `case_status="Pending"` is usually what someone means by "my cases" — without it you get their entire history, which for a working attorney is mostly closed matters and will hit the cap below. Old cases legitimately remain Pending, so a 2016 case in a Pending list is not necessarily an error. THE 200-CASE CAP IS REAL AND IT BITES HERE. `truncated: true` means matches are MISSING, not merely unshown — a busy defender or a large firm exceeds 200 routinely. `case_status` and `file_date_start`/`file_date_end` narrow SERVER-SIDE and genuinely recover cases; `county` does NOT — it filters after the cap, so a truncated county-filtered count is a lower bound, not a county total. Say the list is incomplete rather than presenting it as the attorney's full caseload. A DATE RANGE MAY NOT BE ENOUGH ON ITS OWN. Measured: bar 21262 restricted to cases filed in 2024 still returned 200 `truncated: true`, spanning only 20 Nov to 31 Dec. Narrow to a few months and check `truncated` again rather than assuming one year fixed it. Dates: ISO `YYYY-MM-DD` or `MM/DD/YYYY` — both accepted. `file_date_*` is WHEN THE CASE WAS FILED, not when a hearing is. For "what's on my calendar today", use `get_attorney_hearing_calendar` — filtering by file date answers a different question and will usually return nothing. "OF RECORD" IS NOT "CURRENTLY REPRESENTING". This is what the register records, so withdrawn, substituted and long-closed representations still appear. Do not describe the result as someone's active caseload. Public record — the portal offers this same search to anyone, so this is not a private view of a firm's book of business. Read-only. North Carolina (NC) only. Informational, not legal advice.
    ConnectorNo auth
  • Individual disclosed congressional stock trades, newest disclosure first. The paging tool: use it when get_member or get_stock's 20 most recent trades are not enough, or to walk the whole record. Filter by ticker, by member_id, by both (one member's trades in one stock), or by neither (every trade). Each row has the ticker and asset name, purchase/sale/exchange, trade date, disclosure date, days between them, whether that passed the 45-day STOCK Act window, the reported amount range, the owner (self, spouse, dependent child), the member, and a link to the original House Clerk PDF or Senate eFD filing. `total` is the full match count, so keep raising `offset` by `limit` until you reach it. Access: needs the agent token from a free Coldpine account, sent as 'Authorization: Bearer <token>'; without it the call returns setup steps instead of data. Read-only, cached for up to an hour.
    ConnectorNo auth
  • List Clerk applications connected to the authenticated Vee3 account. Returns clerk_instance_id, display name, environment type, and whether each connection is the default. Use clerk_instance_id on future Clerk calls, or omit it to use the default account. If accounts is empty, the user must connect a Clerk application at https://vee3.io/dashboard/connections before Clerk capabilities work. Agents cannot complete the connection flow; ask the user to connect, then call this tool again. Cost = 0 tokens.
    ConnectorNo auth
  • Returns instructions for migrating to PropelAuth in a frontend framework such as React, JavaScript, TypeScript, or when using Next.js for just the frontend (e.g. client-side rendered). Guidance includes migrating from several auth providers, such as Clerk or Auth0. Each guidance will include documentation from the auth provider and PropelAuth. It is important to follow the instructions carefully to ensure a successful integration. Make sure to use the 'Installation' guidance first. It is important to call every guidance to ensure a successful integration. Do not update a component/hook/etc from the auth provider until you receive guidance about that component/hook/etc. CRITICAL: If the current implementation uses a traditional OAuth/OIDC flow (e.g., via express-openid-connect, passport-auth0, or similar backend-managed session libraries), you MUST select 'OAuth' as the framework, regardless of the frontend library (React/Vue/etc.). Only select 'React' or 'Javascript' if the current implementation uses a frontend-only SDK (like @auth0/auth0-react) or if using fullstack Next.js.
    ConnectorNo auth
  • Create a new virtual dimension draft without publishing. `virtualDimensionId` in inputs equals `id` from list/get/search. Call get_skill with skillId: "virtual-dimensions" first — see skill for allocation shapes, CEL rules, and full workflow. For a new `telemetry` allocation, discover a live integration metric via list_metrics with includeExternal: true and a specific search term, then persist inline `externalMetric` { provider, integrationId, metricName, aggregator, groupByFields }. For BigQuery/S3, also set dateColumn and metricColumn from the returned `schema` (first DATE / first NUMERIC) and gapFillingMethod (default FORWARD_FILL). Catalog-complete providers (Tsuga, Datadog, CloudWatch, Amplitude, Google Cloud Monitoring) do not need those fields. Do not set `datasource` on new reallocations. `bqName` (BigQuery/CEL query field, e.g. Environment → virtual_environment) is set once from `name` at create and is immutable. Ordered `rules` use `conditionCel` + `allocation` — do not send rule `id` (generated on save) or `values` (derived). Do not include catch-all/leftover in `rules` — `leftoverRule` is auto-added. Rejects invalid payloads — nothing persisted unless validation passes. On success: `virtualDimensionId`, `bqName`, `name`, `description`, `tags`, `values`, rules with generated ids, `leftoverRule`, `draftValidation: { ok: true }`, `draftPersisted: true`. Use preview_virtual_dimension_draft next. Use returned `bqName` for groupBy/filterCel in query after publish. Does not publish or refresh BigQuery. Clerk MCP only. EXAMPLE: "Draft an Environment VDIM with a prod rule" → { name: "Environment", tagNames: ["finops"], rules: [{ name: "Production", conditionCel: "cos_environment in [\"prod\"]", allocation: { allocationType: "dimensionValue", dimensionValue: "prod" } }] }
    ConnectorOAuth
  • Cases with a COMPANY as a party — by business name. Use this, not `search_cases_by_party`, whenever the subject is an organization: an LLC, corporation, insurer, hospital, landlord, dealership or municipality. Party search requires a first AND last name, which a business does not have, so it cannot answer this at all. FAST — about 5-45 seconds. No CAPTCHA. Do not warn about a long wait. 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. TYPE THE NAME AS IT APPEARS, COMMA INCLUDED. The comma is significant and NARROWING: "FOOD LION, LLC" is a different, smaller search than "FOOD LION". Do not strip it, and do not replace it with a wildcard — advice to do that appears in the portal's help text but applies to a different search mode. WILDCARD: a trailing `*` is allowed and needs AT LEAST 4 characters before it. "WALM*" works; "WAL*" is rejected. Use it for a company whose exact registered name you do not know ("CAROLINA TOWING*"). THERE IS NO PARTY ROLE IN THIS RESULT, ON PURPOSE. The portal labels every row "Defendant" regardless of the truth — including cases the company FILED as plaintiff and criminal cases where it was the victim. NEVER say the business is the defendant. Read the side from `case_name` ("X VS Y" — the company's position in the caption is the real signal), or call `lookup_court_case` for the actual party list. THE 200-CASE CAP BITES IMMEDIATELY FOR ANY CHAIN OR INSURER. `results_truncated: true` means real matches are MISSING. Worse, `county` filters AFTER that cap, so a truncated county-filtered count is a LOWER BOUND, never a total — "11 cases in Wake" may be 11 of the 200 statewide the portal was willing to show. Only `case_status` and the file-date range narrow server-side. Say the list is incomplete instead of reporting a count as if it were complete. `matched_businesses` lists the distinct entity names actually hit. More than one means legally separate entities are mixed together ("FOOD LION, LLC" alongside "DELHAIZE AMERICA, LLC") — surface that rather than treating them as one company. Dates: ISO `YYYY-MM-DD` or `MM/DD/YYYY` — both accepted. These bound WHEN THE CASE WAS FILED, not when anything is scheduled. A year at a time is the most effective way to get a chain's cases under the 200-cap: 'FOOD LION' unfiltered caps out, but restricted to 2023 it returns 42 complete rows. Public record. Read-only. North Carolina (NC) only. Informational, not legal advice.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to query and manage Clerk organizations, users, members, and metadata via the Model Context Protocol. It supports both hosted and per-request secret key modes for flexible integration with various AI environments.
    2
    MIT

Matching MCP Connectors

  • ClerkOAuth

    Access Clerk authentication docs, SDK snippets, and quickstart guides

  • RelayPDF is a hosted MCP connector for working with documents. It generates PDFs from HTML, URLs, Markdown, and templates, converts Office files, images, and email, and edits PDFs (merge, split, fill, protect, optimize). It extracts text and JSON with OCR and makes scans searchable. Authenticate with Clerk OAuth or a Bearer token.

  • "Do I have to go to court for this ticket?" — answered from the citation itself. For someone holding a paper North Carolina (NC) citation, BEFORE their case is searchable. Returns waiver eligibility per charge (waivable / mandatory / conditional) plus how to ask for a reduction or dismissal. FAST — no court-portal request, unlike the other tools. THE OUTPUT IS OPTIONS WITH CONSEQUENCES, NOT A RECOMMENDATION. Waiving is a guilty plea to the charge as written (an admission of responsibility on an infraction); requesting a reduction asks the District Attorney to change the charge before any plea; the two are alternatives. Relay them as choices for the person to make, and never tell them which to pick. TIMING IS PART OF THE ANSWER, NOT A DETAIL. Both routes have to be completed BEFORE THE CASE IS CALLED, not merely on or before the court date — once the calendar reaches it the clerk is working a courtroom docket, and nothing pauses the hearing. Read `citationOptions.state` before saying anything about appearing: "lastDay" the court date is TODAY. It can still be settled with the clerk, but only before the case is called, and there is NO time left to file online — do not offer Guide & File. If the clerk cannot be reached in time, the person should go to court. "noCourtDate" no upcoming hearing, OR today's has already been called. Do NOT assert a failure to appear — you cannot see the courtroom and they may have attended that morning. Say: if they already went, this does not apply; if they missed it, contact the Clerk of Superior Court, because a missed date can become an FTA. "mandatory" | "conditional" | "onlineWaivable" | "inPersonWaivable" as before. NEVER REPORT "no appearance needed" ON "lastDay" OR "noCourtDate", however many of the individual charges come back `waivable`. Missing a court date on a Chapter 20 case means an order for arrest and a G.S. 20-24.1 revocation that lasts until the charge is actually disposed. `howToRequest` already carries the right wording for every state — relaying it verbatim is the safe move. IF THE USER HAS A CASE NUMBER, USE `lookup_court_case` INSTEAD. It runs these same rules on the real charges and also gives the court date and the amount owed. This tool is for when there is no case number yet. THE STATUTE DRIVES THE ANSWER. Pass the G.S. number printed on the citation (e.g. "20-141(J1)", "G.S. 20-127(D)"). Without a parseable statute a charge cannot be classified — ask the user to read the "G.S." line off their citation rather than guessing from the offense name. `unclassified` lists any charge that fell through. PASS EVERY CHARGE ON THE CITATION, not just the one asked about. Eligibility is computed ACROSS the citation: one mandatory charge forces an appearance for all of them. Reporting on a single charge in isolation gives the wrong answer — a real Wake case has two waivable charges and one DWLR, and the correct answer is "you must appear". `viaCompanionCharge: true` on a charge means exactly that: it would be waivable on its own, but AOC mandatory-appearance item #39 makes every violation on a citation mandatory once ANY violation on it is. Never tell someone they can pay such a charge off separately or handle it by mail — the whole citation must be appeared on. Say which charge is forcing it, since that is usually the one they want to ask the District Attorney about. SPEED CHANGES THE ANSWER. With no charged speed a speeding charge comes back `conditional`, not waivable: over 80 mph, or more than 15 over while over 55, is mandatory. Pass `actual_speed`/`speed_limit` if known — or just pass the offense line verbatim ("SPEEDING 85 IN A 65"), which is parsed for the speed. PASS `offense` VERBATIM FROM THE CITATION for every charge, not a paraphrase. A few rules cannot be decided from the statute number alone and are read off the offense text: texting is waivable UNLESS it was while operating a school bus, and a registration or title violation is waivable UNLESS it involves stolen, altered or fictitious plates or certificates. Both statutes are the same either way, so a paraphrase that drops "school bus" or "fictitious" silently turns a mandatory appearance into "waivable". If the user summarises rather than quotes, ask for the exact wording on the citation before answering. `county` (optional) decides the reduction path: participating counties get NC's online Guide & File link, others get the in-person District Attorney route. PASS `court_date` WHENEVER THE CITATION SHOWS ONE (YYYY-MM-DD), AND PASS THE REAL ONE. Without it the answer assumes there is no upcoming hearing and comes back as "contact the Clerk of Superior Court" instead of the resolution options — an open citation with no court date often means a failure to appear has already happened. It also unlocks `reductionSubmitBy`: NC's online reduction request must be filed SEVERAL BUSINESS DAYS BEFORE the court date, so without the date that cutoff is silently missing rather than reported. The date is read against the Eastern-time clock, so it changes the answer in both directions: a date already past — INCLUDING EARLIER THE SAME DAY — returns "noCourtDate", and a date that is TODAY returns "lastDay". Guessing or rounding the date is therefore not a harmless approximation; it is how someone gets told a ticket is cleanly waivable on the morning of their hearing. `citationOptions.reduction` is a PRE-SCREEN, never an eligibility verdict. Each gate is pass / fail / unknown, and `unknown` means the court record cannot decide it — report it as unknown, never as a disqualification. Four of the program's criteria (age 18+, valid NC licence, non-CDL, NCDMV compliance on a companion charge) are not in court data at all and come back in `userMustConfirm` for the person to check. The 10-19 mph band and the 80 mph ceiling are AOC / District Attorney PROGRAM CRITERIA, not statute — never attach a G.S. citation to them. The District Attorney decides whether to offer a reduction. A null `citationOptions` means these are NOT waivable-citation charges — either not NC Chapter-20 traffic, or a serious criminal charge (impaired driving, death by vehicle, eluding) or a felony, where "it's just a ticket" framing is wrong. Say that plainly; do not present it as "no appearance required". General guidance for the charges given, NOT a lookup of any real case, and not legal advice. `amountDue` is always null here — there is no case to read a balance from.
    ConnectorNo auth
  • Return the total number of users in a connected Clerk application. Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account. Cheaper than listing users when you only need the total count. Cost = 2 tokens.
    ConnectorNo auth
  • Look up a North Carolina (NC) court case or traffic citation. Provide a case number (e.g. "26CV001234-012"), a citation number (e.g. "92403H2"), OR a `portalSessionRef` from a `search_cases_by_party` row. `caseNumber` is the STABLE, canonical identifier — prefer it for anything that isn't an immediate follow-up. `portalSessionRef` is a fast path that resolves an already-searched case without re-running the portal search. Its lifetime is UNSPECIFIED and not guaranteed — the value rotates on every search and should be treated as short-lived (it survives at least minutes; the upper bound is unmeasured); never persist or reuse it. (`caseHash` is accepted as a deprecated alias for `portalSessionRef`.) Returns case status, upcoming and recently-elapsed hearing dates/times/ locations, charges (including speed fields for traffic cases), and — for traffic charges — whether each charge is waivable or requires a court appearance under the NC AOC schedules, plus how to request a reduction or dismissal (online via NC Guide & File when the county participates, else in person via the District Attorney) in `citationOptions.howToRequest`. Those are OPTIONS WITH CONSEQUENCES, NOT A RECOMMENDATION: waiving is a guilty plea to the charge as written (an admission of responsibility on an infraction), while a reduction changes the charge before any plea, and both have to be completed BEFORE THE CASE IS CALLED — not merely on or before the court date. Present them as choices, not advice; `citationOptions.notice` carries this caveat verbatim. `citationOptions.state` IS THE RESOLUTION PATH AND OUTRANKS THE PER-CHARGE CLASSES. Two of its values turn on the clock, and both forbid "no appearance needed" no matter how many charges read `waivable`: "lastDay" (the hearing is TODAY — settleable with the clerk only before the case is called, no time to file online) and "noCourtDate" (no upcoming hearing, or today's has already been called — do not assert a failure to appear, since the person may have attended that morning). Relay `howToRequest` verbatim and it will be right for every state. Read-only: no email is sent and nothing is saved. North Carolina only. Informational, not legal advice. EVERY LOOKUP ENDS WITH TWO THINGS, PER CASE. Both are spelled out in `present_to_user`, the FIRST key of this result, already filled in for this particular case — read it and do what it says. (1) `caseSummaryUrl` — hand it to the user and call it the durable, shareable link to the full case record. It does not expire, it is publicly viewable, and the same case returns the same link every time, so it is the canonical way to cite or share the case. THE KEY IS ALWAYS PRESENT, so "when it appears" is not the test — the VALUE is: non-null means give it; null means minting failed on this lookup, so say nothing about a link rather than substituting `trackThisCase.url`, a portal URL, or a guess. (2) `alerts` — when `alerts.available` is true, ask whether they'd like email alerts when the case changes: a new court date, case information, case events, service events, or financial updates. ASK and wait for a yes. Never call `subscribe_to_case_updates` on your own initiative and never invent an email address. When `available` is false the case is closed, disposed, or not found — nothing would ever be sent — and you must not raise it. IN A MULTI-CASE TURN DO BOTH FOR EACH CASE, beside that case's own details. Two cases means two links and two offers; one combined link, or a single offer at the end of the answer, is wrong. (A search row's `portal_url` is ephemeral by contrast — don't present that as durable or persist it.) `upcomingHearings` lists only FUTURE hearings; `pastHearings` lists recently- elapsed ones (most recent first). The top-level `status` of "no_upcoming_hearings" means exactly that — NOT that the case has no hearing history. Before telling the user they have no court date, check `pastHearings`: an empty `upcomingHearings` with a non-empty `pastHearings` means a hearing has ALREADY occurred (they may have missed it) — a different answer than "nothing scheduled." Never infer "you didn't miss court" from an empty `upcomingHearings`/`status` alone. `service` answers "was the defendant actually reached?" on civil / SP / estate cases — the civil-side counterpart to `bailRisk`, and null on criminal/traffic, where service of process does not apply (null there = NOT APPLICABLE, not "not served"). Read `status` FIRST; three of its values mean the absence of a return is EXPECTED and must never be reported as "not served": - `served` / `unserved` / `mixed` — a return of service is docketed. `mixed` means both outcomes appear (several defendants, or the alias-and-pluries retry cycle). - `proven_other` — a certificate / affidavit / acceptance of service instead of a formal return. Still proof. - `appeared_service_moot` — the defendant answered or appeared, which waives a service defect. Service became unnecessary. - `not_required` — an appeal or petition; no summons is issued at all. - `pending` — a summons went out recently and nothing is back YET. Say "service is still outstanding", NOT "they weren't served". - `unknown` — a summons issued, nothing returned, and the case isn't new. `returns[]` is the full history (the retry cycle is often the story) and `latestReturn` the most recent attempt. `returns[].party` is NULL about a third of the time — the docket records the outcome without naming who it applied to — so never read a null party as "nobody". For the same reason there is deliberately NO per-defendant served flag: one case in the sample had a single docketed return against 41 defendants, and a per-party boolean would be confidently wrong. `legacyScan:true` means the paper file was scanned as ONE bundle rather than itemised, so proof of service may sit inside that PDF where no docket-text rule can see it — a missing return is weak evidence on those cases. `causesOfAction` is the civil counterpart to `charges` — the claims pleaded (`cause`, `filedOn`, `remedy`), e.g. "CV - Unfair Trade Practice". On a civil / SP / estate case this is usually the ONLY statement of what the matter is about, so lead with it there. An empty list means the docket does not ITEMISE causes, NOT that no claims exist — say the docket doesn't break them out rather than implying the case is about nothing. Repeated boilerplate entries are collapsed; distinct dates are kept, since a cause added later is an amendment. Each charge also carries `offenseDate` (when the offense occurred — different from the case's `filedOn`, and usually what someone means by "when was this?") and `agency` (the citing law-enforcement agency). If a tool returns an `error` with `retryable` / `upstream_status`, that is a transport or portal failure — NOT a statement about the case. Never turn it into "no results" or "case not found"; say the lookup itself failed, and retry only when `retryable` is true. `caseCategory` normalizes the case class (criminal | civil | infraction | special_proceeding | estate | juvenile | other). Use it to read null fields correctly: on a NON-criminal category, `bailRisk`/`citationOptions` = null means NOT APPLICABLE, not "none found." `parties` is the register-of-actions roster (name + roles[] + attorneys[]{name, appointment} + selfRepresented + counselWaived) — `appointment` is how counsel came to the case ("Retained" = the party hired them, vs "Court Appointed" / "Public Defender"; null when unstated, and the list is learned from the register rather than a closed set). It is what makes a `counselWaived:true` party who nonetheless HAS counsel intelligible — appointed, then a waiver, then retained. The authoritative source for identifying who is on a case and their role, especially on civil/SP cases where the caption/DOB are absent; prefer it over a party-search row's caption for entity resolution. `selfRepresented:true` = no counsel of record (self-listed as own attorney OR a filtered counsel-absence sentinel, with no other attorney); it does NOT distinguish an active pro-se appearance from a defaulted / served-by-publication defendant. `counselWaived` is a SEPARATE, independent flag — NOT a narrowing of `selfRepresented` — and it is NOT a claim the party is unrepresented: it can be true while attorneys[] is non-empty (seen on 22CR702455-520, counselWaived:true with a Court Appointed AND a Retained attorney, the docket running appointed counsel -> Waiver of Counsel -> retained counsel). Always read it WITH attorneys[], never instead of it. `counselWaived` is set by either Odyssey placeholder "attorney" name, filtered out of attorneys[] rather than shown as a lawyer: "WAIVED, WAIVED" (counsel affirmatively waived on the record — the docket does not say whether the waiver covered all assistance of counsel or only court-appointed counsel) or "PRO SE" (the party asserted as their own representation). Either means the party declined counsel rather than merely lacking it, but the flag does NOT say which placeholder produced it, so it is not proof the party is litigating pro se. `counselWaived:false` means NOT OBSERVED, not "did not waive". A true value is predominantly a criminal-side artifact and is rare on civil rosters — treat it as unexpected but NOT impossible on a non-criminal `caseCategory`; don't read one there as an error. A false unrepresented party is still any of defaulted / never-served / unappeared-entity / pro-se-without-a-docketed-marker — or simply TOO EARLY: on a recently-filed case that has not had a hearing yet, counsel is frequently not entered on the roster. `parties` reflects what is DOCKETED, not who is retained; check `filedOn` and an empty `pastHearings` before reading an empty attorneys[] as unrepresented — on a pending case that has not been to court, "not shown yet" is usually the better answer than "no lawyer." attorneys[] non-empty ⇒ represented ⇒ selfRepresented false. `documents` lists scanned filings, newest first — `{date, name, url}`, where `name` is the register entry that produced it ("Bond Forfeiture Notice", "Release Order Issued", "Waiver of Counsel"). Most criminal cases have at least one; an empty list means nothing is scanned in, not that nothing was filed. Offer the links when they're relevant to what was asked. Retrieval is UNRELIABLE — the portal intermittently returns errors or an empty body while it prepares a document — so present a link as something that may need a retry, never as "here is the document", and never state or guess at its contents: this server does not read them. `dispositions` gives the per-charge OUTCOME behind a "Disposed" status — one row per charge with `plea`, `disposition`, `sentence`, `dispositionDate`, `judge`, and any judgment `documentUrls`. This is how you answer "what happened to the case / to a charge": a "Disposed" caseStatus alone does not say whether a charge was dismissed, pled down, or convicted — read `dispositions` for that (e.g. a speeding charge reduced to improper equipment shows plea "Responsible to Lesser"; a "VD-District Dismissals ... Per Plea Agreement" is a dismissal). Empty on pending/undisposed cases. `trackThisCase` is an upstream ELIGIBILITY FLAG (non-null only on an open case), not something to act on: this server already consumes it — it is what gates `alerts.available` — so don't reason from it, and never show `trackThisCase.url` to the user. That is a generic signup page with no case identity. The case-specific paths are `caseSummaryUrl` and, once the user has said yes, `subscribe_to_case_updates`. For criminal cases with a bond or bail activity, `bailRisk` is non-null: failure-to-appear history (`ftaCount`, date-deduped; `ftaEvents[]` gives the raw counted entries {date, description} for auditing — voided "in Error/Stricken" FTAs are already excluded), FTA-triggered `ordersForArrest`, bond amount/type, and the NCGS §15A-544.5(f) prior-FTA bar. That bar turns on FTAs that preceded the bond's EXECUTION, not the case total: `bondExecutedOn` is the "Bond Posted" date for the operative bond and `priorFtasAtExecution` counts FTAs strictly before it (null when no posting is docketed). - `setAsideBarInapplicable:true` (0-1 prior FTAs) is RELIABLE — (f) cannot bar a set-aside. State it plainly; it's the answer that tells someone a motion is worth filing. - `setAsideBarPossible:true` (2+ prior) is NOT a finding that the bar applies. It means only that the TIMING fits. Under (f), actual notice exists ONLY where a judicial official noted the prior failures on the defendant's release order. Check `releaseOrderFBox` below before saying anything further, and never say "the forfeiture cannot be set aside" on the strength of this flag alone. - Both false = execution date unknown; neither ruled out nor suggested. `releaseOrderUrl` is the portal PDF of the release order governing that bond — the document the (f) question actually turns on, since the judicial official's "second or subsequent failure to appear" notation appears there (AOC-CR-200) and in NO structured field. ALWAYS present this link when `setAsideBarPossible` is true, even when the read below already answered the question: the order is the authority. `releaseOrderFBox` IS THAT READ, present only on barred cases where the order could be fetched and parsed. Report it, and report it precisely — this is the field that decides whether someone spends their one motion: - "unchecked" — on its face (f) does NOT bar a set-aside; the prior FTAs do not block relief and it is worth pursuing. Say so, and add that they should confirm it on the order before relying on it. - "checked" — (f) MAY bar it. Do NOT say "cannot be set aside". Tell them to confirm on the order BEFORE filing, because a motion that fails uses up the single opportunity for relief. - "ambiguous" — the order was opened and the box could NOT be read. Say exactly that, and hand over the link. The notation is a flattened checkbox with no glyph in the text layer, so the printed label appears whether or not it is marked. NEVER round this to "unchecked": a misread tells a bondsman to abandon a recoverable bond. - absent / null — no read was attempted (not a barred case, no order docketed, or the fetch failed). This is ALSO not "unchecked". Fall back to the link. For the forward-looking question ("could a bond I write NOW be barred?") use `ftaCount`: 2+ FTAs on the case means the next release order should carry the judicial notation — tell the user to read it before signing. Then `forfeiture` with its `status` (the latest DOCKETED forfeiture event — may lag the clock) and the 150-day set-aside clock (`noticedOn`, `deadline`, `daysRemaining`, `windowOpen`). `noticeAnchor` says where `noticedOn` came from: "notice_event" = an explicit forfeiture NOTICE line (the date the statute runs the 150 days from); "earliest_forfeiture_event" = no notice was docketed, so the earliest forfeiture entry stands in — the deadline is then a CONSERVATIVE proxy (earlier than the true notice), and `daysFtaToNotice` measures FTA-to-forfeiture rather than FTA-to-notice. Don't present a proxy-anchored deadline as the exact statutory date — treat `windowOpen`/`daysRemaining` as authoritative for whether the set-aside window is open; once `windowOpen` is false the window has closed even if `status` still reads `in_effect`. `deadlineNextBusinessDay` is the first day the clerk's office is open on or after `deadline` (equal to it when that is already a business day; later when it falls on a weekend or NC court holiday). ADVISORY ONLY — it never moves `daysRemaining` / `windowOpen`, which stay on the strict notice+150 date, because the safe error is telling someone they have LESS time, never more. null = UNDETERMINED (deadline year outside the published NC holiday calendar), NOT "no adjustment needed"; never present a null as though the deadline is a normal business day. `triggeringFta` (latest counted FTA on or before `noticedOn`) and `daysFtaToNotice` (the gap in days) report HOW LONG after the failure the forfeiture notice was docketed. Report the number; do NOT call a long gap a defect or a filing error — there is deliberately no threshold flag, and whether a gap affects the notice's validity is for the reader's attorney. Plus the bonding `agent` (Fiduciary) + `surety` (insurer). All from public NC eCourts records. (`citationOptions` is null on disposed/closed cases — the reduction path isn't live.) Informational underwriting signal, not legal advice; don't state legal conclusions.
    ConnectorNo auth
  • 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.
    ConnectorNo auth
  • 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.
    ConnectorNo auth
  • What was FILED — every case of a given type in a county over a date range. Answers "what IF cases were filed in Surry County yesterday?", "show me the estate cases opened in Wake this week", "how many civil suits were filed in Mecklenburg on Monday?". This is the DOCKET axis. The other searches are name axes — use `search_cases_by_party` / `_business` / `_attorney` when you know WHO, and this when you know WHAT and WHEN. 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. `date_start`/`date_end` are the **FILED** date, not a hearing date. A case filed in 2023 can have a hearing today — for "who is in court today", use `get_attorney_hearing_calendar`. Accepts YYYY-MM-DD, or the words "today" and "yesterday" (resolved in North Carolina (NC) time). **Defaults to YESTERDAY, not today**, when no date is given, and says so in `date_note`. Today's filings are still being keyed in by clerks, so a "today" answer is a partial set that reads like a complete one. **`case_type` is a case-number PREFIX, not a type code.** `CR` also returns `CRS`; `CV` also returns `CVD` and `CVM`. Read `case_type_breakdown` before reporting a count as "42 CR cases" — some of them may be CRS. Common types: `IF` infraction (traffic), `CR`/`CRS` criminal, `CV`/`CVD`/`CVM` civil, `E` estate, `SP` special proceeding, `M` civil misc. judgment (liens, lis pendens). **Completeness.** The portal caps a search at 200 cases; this splits the query by date and case-number prefix to get past that. If `truncated` is true the count is a **LOWER BOUND**, and `incomplete_prefixes` names the exact buckets that were not read — say what is missing rather than reporting the number as a total. The remedy is a shorter date range or a county. **An empty result is a real answer, but only when the lookup succeeded.** On an upstream failure this returns an `error`; never report that as "nothing was filed". `county_filter: "server"` means the county was applied by the portal itself before its cap, and every row is additionally checked against the county code embedded in its case number — so a county-filtered result here is exact, unlike the location-substring filter the name searches use. A date range is required (max 31 days) — an unbounded search cannot be completed. Read-only public record, North Carolina only. Informational, not legal advice.
    ConnectorNo auth
  • Returns Form 278 (Public Financial Disclosure / Annual Financial Disclosure) filings — the annual snapshot members of Congress file each year showing assets, income sources, liabilities, transactions, gifts, outside positions, and (for spouse + dependent children) the same. The same filings are published free as news at https://keyvex.com/disclosures under 5 U.S.C. § 13107(c). SCOPE — v1 covers BOTH chambers: Senate (Senate eFD) and House (House Clerk). Filed by every senator and representative (and senior executive-branch officials, federal judges) by May 15 each year. Use this when the user asks about: a member's asset composition, outside income sources, board seats / outside positions, liabilities (mortgages, loans), or for news reporting on annual disclosures. CONTENT — when a filing's schedules were machine-parsed, `content_parsed` is true and the record carries structured `assets` (Schedule A) and `liabilities` arrays plus `asset_count` / `liability_count`. `value_range` / `amount_range` are the disclosed RANGES (e.g., '$50,001 - $100,000'), NOT point estimates — KeyVex does not collapse a range to a single number. SENATE rows carry the ranges verbatim. HOUSE rows are read from the House Clerk PDF by column position. On a House candidate or new-filer report, whose income prints in two columns ('current year to filing', 'preceding year'), `income_range` is empty — neither is the reporting period; `report_url` shows both. A row KeyVex could not read with confidence carries `parse_unreliable: true`, and for such rows `report_url` is authoritative. Net-worth roll-up is intentionally NOT provided (it would be a KeyVex-derived aggregate, not a disclosed value). When schedules are unavailable — Senate PAPER (scanned-image) filings, which carry no machine-readable text, or the occasional parse skip — `content_parsed` is false and `coverage_note` names the limitation; follow `report_url` to read the original. This honest coverage boundary is never a silent omission. Different from get_congressional_trades: PTRs are per-trade real-time notices (filed within 30-45 days), while Form 278 is the year-end balance-sheet snapshot. Combine both for the full activity + position view of a member. Report types: 'Annual' (yearly filing covering prior calendar year), 'New Filer' (initial disclosure on entering office), 'Termination' (final disclosure on leaving office), 'Combined' (annual+termination for filer who left mid-year), 'Amendment' (correction of a prior filing), 'Other' (rare).
    ConnectorNo auth
  • Rotate the client secret for a confidential OAuth application in a connected Clerk application. **Sensitive** — the response includes a new client_secret. Update authorized OAuth clients immediately and do not log the secret. Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account. Returns the updated OAuth application summary with the new client_secret. Cost = 10 tokens.
    ConnectorNo auth
  • Merge metadata into a Clerk organization (deep merge — existing keys are preserved unless overwritten). Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account. Returns the updated organization summary. Cost = 8 tokens.
    ConnectorNo auth
  • Returns the Smarter Weather developer sign-up URL (with MCP referral attribution). Present the URL so the user can create a free account in a browser (Clerk, no credit card). After they finish, reconnect this MCP server with OAuth and call create_api_key, then configure_mcp. No authentication required.
    ConnectorNo auth
  • Search North Carolina (NC) money judgments and criminal sentences by party name. REQUIRES AT LEAST ONE OF `party`, `case_number`, `alias` OR `from_date`. The other arguments are FILTERS, not searches — `county` or `judgment_type` alone is rejected, and so is a call with no arguments at all. This is the JUDGMENT index, NOT the case index. A judgment is what a court ENTERED on a case — a money judgment against someone, or a criminal sentence. Use this for "does X have a judgment against them", "how much do they owe on it", "is it still active", "find liens/judgments before I lend or rent". For the case itself — charges, hearings, next court date, parties, service — use `search_cases_by_party` (by name) or `lookup_court_case` (by number). Every row carries `case_number`: that is the handoff key into `lookup_court_case` when the user wants the underlying case. IT CARRIES REAL PROPERTY LIENS, WHICH IS NOT OBVIOUS. NC files these as "Civil Misc. Judgment" records on the judgment docket, so this index — not the case search — is where they live. `cause_of_action` on each row says which kind, and the values seen in production include: CV - Claim of Lien (G.S. 44A claim of lien on real property) CV - Federal Tax Lien CV - NC Certificate of Tax Liability CV - Lien CV - Employment Security Comm Lien CV - Institutional Lien (Hospitals) CV - Lis Pendens (pending action against the property) CV - Transcript of Judgment (a judgment docketed from another county) CV - Summary Ejectment, CV - Money Owed, CV - Possession, CV - Collection on Account, CV - Other, FAM - Divorce, ... So "are there any liens against this person?" is answerable HERE, and answerable well: this index has no 200-cap, so a clean search really does mean none found. DO NOT FILTER TO "lien" TO ANSWER "ARE THERE ANY LIENS?" — that under-reports badly. A money judgment docketed with the clerk is ITSELF a lien on the debtor's real property in that county, whatever its cause of action says. So `CV - Money Owed`, `CV - Collection on Account` and `CV - Transcript of Judgment` rows are encumbrances too. Measured on one name: 4 rows whose cause contains "lien", and 35 further docketed money judgments the filter would silently drop — roughly a tenfold under-count. For a lien or title question, DO NOT filter; report the whole set and let the reader classify. `cause_of_action` is for isolating a RECORD TYPE — "show me only the lis pendens", "only the summary ejectments" — not for deciding what counts as a lien. ASK WHICH RECORD TYPES THEY WANT — do not guess. Run the search, read `narrowing["Cause of Action"]` (computed from the actual rows, BEFORE any filter, so it always shows the full menu), tell them what is there, and let them choose. `cause_of_action` MATCHES ON SUBSTRING AND FILTERS CLIENT-SIDE. `"lien"` catches every lien variant above; `"Claim of Lien"` catches only G.S. 44A. Because the index offers no server-side filter for it, the match runs over the rows already fetched — so when `results_total` exceeds what was fetched, `cause_of_action_note` will say the count is NOT a total. Read that note before reporting a number. NOT in this index, and not anywhere in this server: UCC financing statements (those are NC Secretary of State), Register of Deeds records, and lien-agent notices under G.S. 44A-11.1 (liensnc.com is not a court system). Say so plainly rather than implying a clean search covered them. ARGUMENT FORMATS (the requirement itself is stated at the top). `party` is a name in "LAST, FIRST" form (business names work as-is). `case_number` accepts dashed or undashed. `from_date`/`to_date` bound the date the judgment was ORDERED (not the case filing date, and not a hearing date) — ISO `YYYY-MM-DD` or `MM/DD/YYYY`, both accepted. A PARTY SEARCH DOES NOT COVER ALIASES, so this tool checks them for you. `party` and `alias` are separate indexes with no overlap — measured, a search for "WILLIAMS, PAMALA" as a party misses a judgment filed against "MCARDELL, PAMALA" that lists "WILLIAMS, PAMALA" as an alias. Whenever you pass a full `party` name, an alias sweep runs automatically alongside it and its hits come back in `alias_matches`, separate from `results`. READ `alias_sweep.status` BEFORE CALLING ANYONE CLEAR: "ran" -> aliases were checked. Zero matches is a real negative. "failed" -> they were NOT checked. Say so; do not report the search as clear. "skipped" -> not applicable, EXCEPT when the reason says the name was a surname only. Ask for a full "LAST, FIRST" name and re-run. AN ALIAS IS NOT NECESSARILY A FORMER NAME. It is any other name recorded for that party — a maiden or married name, a hyphenated or reordered variant ("LEWIS-WILLIAMS, FARRAH" vs "WILLIAMS, FARRAH LEWIS"), or a fuller spelling ("WILLIAMS, SHANE" vs "WILLIAMS, SHANE CHRISTOPHER"). Measured, 15% share the party's own surname. Do NOT describe an alias as a name that was "changed", and do not infer a marriage or divorce from one — the record does not say. An `alias_matches` row is filed against a party recorded under a DIFFERENT NAME, so it may be the same person or an unrelated namesake. Report those rows as leads to confirm — never state them as this person's judgments, and never merge them into a total owed. They carry no amounts. `alias` as an INPUT searches the alias index directly and takes the same "LAST, FIRST" form ("PAMALA WILLIAMS" returns nothing). Passing it explicitly turns the automatic sweep off, since it would repeat the same query. Row-level `debtor_aliases` / `creditor_aliases` list other names recorded for that party. They are populated essentially only on alias searches — empty on a party search is normal and means nothing. CIVIL vs CRIMINAL — read this before reporting a null. Each row has a `case_category` of CV, CR or FAM. `judgment_type` populates on civil rows; `sentence_type` populates on criminal rows. A null on either one means NOT APPLICABLE to that row's category — it is NOT an absence of fact, and must never be reported as "no sentence recorded" or "no judgment type". DOLLAR AMOUNTS ARE FETCHED AUTOMATICALLY WHEN THE RESULT SET IS SMALL — do NOT ask the user whether to pull them. Leave `detail` unset and this tool decides: a `case_number` search, or any search returning 10 rows or fewer, comes back with amounts already included. Check `detail_included` to see what happened, and `detail_skipped_reason` when it didn't. The reason it is not unconditional: `detail` fans out one upstream call PER ROW. A broad name search with detail forced on has been measured timing out at 60s — "ANDERSON, DAVID" returns 153 judgments, and asking for 153 amounts at once fails outright, whereas the same search without detail succeeds. So on a large result set the amounts are deliberately skipped and `detail_skipped_reason` tells you how to narrow (county, date range, judgment_type, or a specific case_number). Narrow and re-run rather than forcing it. Override only if you must: `detail=true` still respects the row guard and will not fan out over a large set; `detail=false` suppresses amounts entirely. With detail, each row gains `total_judgment_amount`, `principal_amount`, `court_costs`, `attorney_fees`, `interest_rate`, `judgment_status` and the for/against party roster. Amounts are strings; a null means the court recorded no value, which is different from "0.00". Where `detail` is null on a row, no dollar figure is available — never infer or state an amount from such a row. Filters: - `county` — a plain county name ("Wake"). Filtered SERVER-SIDE and exactly, covering both that county's District and Superior court. Unlike `search_cases_by_party`, this filter does not eat into a result cap. - `judgment_type` — civil, comma-separated, e.g. "Recorded", "Granted in Whole or Part", "Default Civil". - `sentence_type` — criminal, comma-separated, e.g. "Active", "Community", "Intermediate", "Fine". Every valid value for all three is returned in `facets` with live counts, so read `facets` rather than guessing a filter value. Speed: ~1-3 seconds. This tool is the FAST exception — it does NOT run the slow WAF-gated portal search that `search_cases_by_party` and `lookup_court_case` do, so do not warn the user about a long wait here. Completeness: `results_total` is the TRUE statewide total. This index has no 200-case cap, so the truncation caveat that applies to `search_cases_by_party` does NOT apply here. `results_truncated` reflects only the display `limit`; page further with `offset` if needed. Read-only. NC only. Informational, not legal advice. A name match is not an identity confirmation — same-name people are common.
    ConnectorNo auth
  • One politician (a member of the U.S. Congress: House or Senate), by bioguide ID or name: party, chamber, state, district, in office or former, terms served with start and end dates; a profile with the official photo_url, position (e.g. U.S. Representative for California's 11th district), district code (CA-11), birthday and age, official website, social accounts and Wikipedia as URLs, leadership roles (Speaker, whips, caucus chairs; current first) and, for politicians in office, current committee and subcommittee seats with titles (chair, ranking_member and so on); trade statistics since 2020 for the chosen assets (listed securities by default: trades, buys, sells, estimated volume in USD, median filing delay in days, late trades and the reports that contain them), unlisted_trades (trades in bonds, private holdings and other assets, whatever asset is), the number of reports and how many are paper or scanned, the latest filing date, and the 5 tickers the politician traded most in the chosen assets, with livermore.club links. Use get_politician_trades with the bioguide ID for the trades. Profiles, committees and photos come from the unitedstates project (public domain), refreshed daily. Data: House and Senate periodic transaction reports (PTRs) filed since 2020-01-01, from the U.S. House Clerk and the Senate Office of Public Records (eFD), updated daily. Only listed securities are included by default: stocks (including ADRs), ETFs and options, the assets with an exchange ticker. Politicians also report Treasury bills and notes, municipal and corporate bonds, private companies, private funds, crypto and other assets; pass asset=other for those or asset=all for everything. Amounts are the statutory ranges members of Congress report, not exact values: amount_min_usd to amount_max_usd, where a null amount_max_usd is an 'Over $X' range; estimated volumes add up range midpoints (an 'Over $X' range counts as X), so treat them as rough sizes. Trades replaced by an amendment and duplicates reported again in a later filing are left out. Paper and scanned reports are listed on politician pages but their trades are not read.
    ConnectorOAuth
  • One politician (a member of the U.S. Congress: House or Senate), by bioguide ID or name: party, chamber, state, district, in office or former, terms served with start and end dates; a profile with the official photo_url, position (e.g. U.S. Representative for California's 11th district), district code (CA-11), birthday and age, official website, social accounts and Wikipedia as URLs, leadership roles (Speaker, whips, caucus chairs; current first) and, for politicians in office, current committee and subcommittee seats with titles (chair, ranking_member and so on); trade statistics since 2020 for the chosen assets (listed securities by default: trades, buys, sells, estimated volume in USD, median filing delay in days, late trades and the reports that contain them), unlisted_trades (trades in bonds, private holdings and other assets, whatever asset is), the number of reports and how many are paper or scanned, the latest filing date, and the 5 tickers the politician traded most in the chosen assets, with livermore.club links. Use get_politician_trades with the bioguide ID for the trades. Profiles, committees and photos come from the unitedstates project (public domain), refreshed daily. Data: House and Senate periodic transaction reports (PTRs) filed since 2020-01-01, from the U.S. House Clerk and the Senate Office of Public Records (eFD), updated daily. Only listed securities are included by default: stocks (including ADRs), ETFs and options, the assets with an exchange ticker. Politicians also report Treasury bills and notes, municipal and corporate bonds, private companies, private funds, crypto and other assets; pass asset=other for those or asset=all for everything. Amounts are the statutory ranges members of Congress report, not exact values: amount_min_usd to amount_max_usd, where a null amount_max_usd is an 'Over $X' range; estimated volumes add up range midpoints (an 'Over $X' range counts as X), so treat them as rough sizes. Trades replaced by an amendment and duplicates reported again in a later filing are left out. Paper and scanned reports are listed on politician pages but their trades are not read.
    ConnectorNo auth
  • Change the primary or secondary home URL for a connected Clerk instance. WARNING: Destructive operation — changing the instance domain invalidates active sessions and may cause brief downtime. Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account. Returns whether Clerk accepted the domain change request. Cost = 10 tokens.
    ConnectorNo auth
  • Retrieve the JSON Web Key Set (JWKS) for verifying Clerk session tokens. Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account. Returns public signing keys for verifying Clerk JWTs. Cost = 2 tokens.
    ConnectorNo auth