@cyanheads/courtlistener-mcp-server 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +4 -3
- package/README.md +26 -4
- package/changelog/0.1.x/0.1.5.md +28 -0
- package/changelog/0.2.x/0.2.0.md +24 -0
- package/changelog/template.md +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-citations.tool.d.ts +4 -2
- package/dist/mcp-server/tools/definitions/get-citations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-citations.tool.js +42 -4
- package/dist/mcp-server/tools/definitions/get-citations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-docket.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/get-docket.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-docket.tool.js +8 -4
- package/dist/mcp-server/tools/definitions/get-docket.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-judge.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/get-judge.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-judge.tool.js +37 -7
- package/dist/mcp-server/tools/definitions/get-judge.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-opinion.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/get-opinion.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-opinion.tool.js +20 -5
- package/dist/mcp-server/tools/definitions/get-opinion.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-oral-argument.tool.d.ts +32 -0
- package/dist/mcp-server/tools/definitions/get-oral-argument.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-oral-argument.tool.js +102 -0
- package/dist/mcp-server/tools/definitions/get-oral-argument.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts +4 -1
- package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/lookup-citation.tool.js +12 -0
- package/dist/mcp-server/tools/definitions/lookup-citation.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/lookup-courts.tool.d.ts +4 -2
- package/dist/mcp-server/tools/definitions/lookup-courts.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/lookup-courts.tool.js +20 -6
- package/dist/mcp-server/tools/definitions/lookup-courts.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-dockets.tool.d.ts +4 -2
- package/dist/mcp-server/tools/definitions/search-dockets.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-dockets.tool.js +23 -3
- package/dist/mcp-server/tools/definitions/search-dockets.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-financial-disclosures.tool.d.ts +49 -0
- package/dist/mcp-server/tools/definitions/search-financial-disclosures.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/search-financial-disclosures.tool.js +210 -0
- package/dist/mcp-server/tools/definitions/search-financial-disclosures.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/search-judges.tool.d.ts +5 -3
- package/dist/mcp-server/tools/definitions/search-judges.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-judges.tool.js +22 -7
- package/dist/mcp-server/tools/definitions/search-judges.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-opinions.tool.d.ts +5 -2
- package/dist/mcp-server/tools/definitions/search-opinions.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-opinions.tool.js +27 -7
- package/dist/mcp-server/tools/definitions/search-opinions.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-oral-arguments.tool.d.ts +4 -2
- package/dist/mcp-server/tools/definitions/search-oral-arguments.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-oral-arguments.tool.js +22 -7
- package/dist/mcp-server/tools/definitions/search-oral-arguments.tool.js.map +1 -1
- package/dist/services/courtlistener/court-names.d.ts +21 -0
- package/dist/services/courtlistener/court-names.d.ts.map +1 -0
- package/dist/services/courtlistener/court-names.js +40 -0
- package/dist/services/courtlistener/court-names.js.map +1 -0
- package/dist/services/courtlistener/courtlistener-service.d.ts +24 -1
- package/dist/services/courtlistener/courtlistener-service.d.ts.map +1 -1
- package/dist/services/courtlistener/courtlistener-service.js +144 -15
- package/dist/services/courtlistener/courtlistener-service.js.map +1 -1
- package/dist/services/courtlistener/types.d.ts +57 -2
- package/dist/services/courtlistener/types.d.ts.map +1 -1
- package/package.json +5 -4
- package/server.json +3 -3
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** courtlistener-mcp-server
|
|
4
|
-
**Version:** 0.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.
|
|
4
|
+
**Version:** 0.2.0
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.16`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
|
@@ -309,7 +309,8 @@ When you complete a skill's checklist, check the boxes and add a completion time
|
|
|
309
309
|
| `npm run devcheck` | Lint + format + typecheck + security + changelog sync |
|
|
310
310
|
| `bun run audit:refresh` | Delete `bun.lock`, reinstall, and re-run `bun audit`. Use when `devcheck` flags a transitive advisory — Bun's `update` is sticky on transitive resolutions, so the advisory may be a stale-lockfile false positive. If it survives the refresh, it's real. |
|
|
311
311
|
| `npm run tree` | Generate directory structure doc |
|
|
312
|
-
| `npm run format` | Auto-fix formatting |
|
|
312
|
+
| `npm run format` | Auto-fix formatting (safe only) |
|
|
313
|
+
| `npm run format:unsafe` | Auto-fix formatting including unsafe rules |
|
|
313
314
|
| `npm test` | Run tests |
|
|
314
315
|
| `npm run start:stdio` | Production mode (stdio) |
|
|
315
316
|
| `npm run start:http` | Production mode (HTTP) |
|
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<h1>@cyanheads/courtlistener-mcp-server</h1>
|
|
3
3
|
<p><b>Search and retrieve US court opinions, federal dockets, judge records, citation networks, and oral arguments from CourtListener's 9M+ opinion corpus via MCP. STDIO or Streamable HTTP.</b>
|
|
4
|
-
<div>
|
|
4
|
+
<div>12 Tools</div>
|
|
5
5
|
</p>
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/courtlistener-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/courtlistener-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
## Tools
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
12 tools spanning the full CourtListener dataset — opinion search and retrieval, citation network traversal, federal docket lookup, judge biography, judicial financial disclosures, court discovery, and oral argument search and detail:
|
|
33
33
|
|
|
34
34
|
| Tool | Description |
|
|
35
35
|
|:---|:---|
|
|
@@ -43,6 +43,8 @@
|
|
|
43
43
|
| `courtlistener_get_judge` | Fetch full biographical profile, appointment history, and education for a single judge |
|
|
44
44
|
| `courtlistener_lookup_courts` | List courts filtered by jurisdiction type and active-scraper status |
|
|
45
45
|
| `courtlistener_search_oral_arguments` | Search appellate oral argument audio recordings by case name, court, and date argued |
|
|
46
|
+
| `courtlistener_get_oral_argument` | Fetch full detail for a single oral argument — panel, duration, MP3 link, and speech-to-text transcript |
|
|
47
|
+
| `courtlistener_search_financial_disclosures` | Search federal judicial financial disclosure filings by judge and year — category counts, itemized gifts, and source PDF |
|
|
46
48
|
|
|
47
49
|
### `courtlistener_search_opinions`
|
|
48
50
|
|
|
@@ -149,6 +151,26 @@ Search appellate oral argument audio recordings — the largest public collectio
|
|
|
149
151
|
- Filters by court, argued-after, and argued-before date
|
|
150
152
|
- Returns `download_url` (MP3), `duration_seconds`, `panel_ids` (chaining to `courtlistener_get_judge`), and transcript `snippet`
|
|
151
153
|
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### `courtlistener_get_oral_argument`
|
|
157
|
+
|
|
158
|
+
Fetch the full detail record for a single oral argument by audio ID.
|
|
159
|
+
|
|
160
|
+
- Returns the speech-to-text `transcript` when transcription has completed, plus `panel_ids`, `duration_seconds`, MP3 `download_url`, and the linked `docket_id`
|
|
161
|
+
- Audio IDs come from `courtlistener_search_oral_arguments` results
|
|
162
|
+
- The argument date is not on this record — take it from the search result or the linked docket
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### `courtlistener_search_financial_disclosures`
|
|
167
|
+
|
|
168
|
+
Search federal judicial financial disclosure filings for ethics and recusal research.
|
|
169
|
+
|
|
170
|
+
- Filter by `judge_id` (a `person_id` from `courtlistener_search_judges`) and/or filing `year`
|
|
171
|
+
- Returns per-filing category counts (investments, gifts, debts, positions, reimbursements, income), itemized gifts, and a link to the source PDF
|
|
172
|
+
- Line-item investments — often hundreds per filing, with coded values — are summarized as counts; the linked PDF carries the full itemization
|
|
173
|
+
|
|
152
174
|
## Features
|
|
153
175
|
|
|
154
176
|
Built on [`@cyanheads/mcp-ts-core`](https://www.npmjs.com/package/@cyanheads/mcp-ts-core):
|
|
@@ -166,7 +188,7 @@ CourtListener-specific:
|
|
|
166
188
|
- Rate-limit-aware client: 429 responses classified by window (minute / hour / day) with actionable error messages; retry with Retry-After respect
|
|
167
189
|
- Cursor-based pagination throughout — consistent results across all paginated endpoints
|
|
168
190
|
- RECAP coverage note surfaced on every docket response — sets expectations on partial PACER mirror completeness
|
|
169
|
-
-
|
|
191
|
+
- Tight upstream-call budget — most tools make 1–2 calls; opinion detail and citation traversal make up to 3 (resolving the linked docket or source cluster), keeping the free tier (125 req/day) usable for multi-step research
|
|
170
192
|
|
|
171
193
|
Agent-friendly output:
|
|
172
194
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "enrichment adoption — query echoes, true result totals, and empty-result guidance on search/list tools; fixed total_entries and lookup_courts count fields"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
agent-notes: |
|
|
6
|
+
Enrichment block now carries totalCount (or total for courts/citations) and an optional notice.
|
|
7
|
+
The structuredContent key total_count was moved to enrichment.totalCount on all search/list tools
|
|
8
|
+
(search_dockets, search_judges, search_opinions, search_oral_arguments, lookup_courts, get_citations).
|
|
9
|
+
lookup_citation gained enrichment.queriedCitation and enrichment.notice.
|
|
10
|
+
search_opinions gained enrichment.effectiveQuery (echoed query).
|
|
11
|
+
These fields are absent from the output schema — agents consuming structuredContent should read
|
|
12
|
+
from the enrichment block; content[] text continues to render returned counts inline.
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# 0.1.5 — 2026-05-30
|
|
16
|
+
|
|
17
|
+
## Changed
|
|
18
|
+
|
|
19
|
+
- **`@cyanheads/mcp-ts-core`** `^0.9.13 → ^0.9.16` — picks up enrichment block support (`ctx.enrich.*`), per-tool `enrichment:` schema declaration, and typed agent-facing context surfaced in both `structuredContent` and `content[]`.
|
|
20
|
+
- **`total_count` → `enrichment.totalCount`** (structuredContent key rename) — on `courtlistener_search_dockets`, `courtlistener_search_judges`, `courtlistener_search_opinions`, `courtlistener_search_oral_arguments`, `courtlistener_lookup_courts`, and `courtlistener_get_citations`: the total was moved from `output.total_count` to the typed `enrichment` block as `totalCount` (true upstream total, not page count); value preserved in both channels.
|
|
21
|
+
- **`courtlistener_search_opinions`** gains `enrichment.effectiveQuery` — echoes the query string sent to CourtListener.
|
|
22
|
+
- **`courtlistener_lookup_citation`** gains `enrichment.queriedCitation` — echoes the citation string looked up.
|
|
23
|
+
- **Empty-result guidance** — all affected search/list tools now emit `enrichment.notice` (optional) when the result set is empty, surfacing applied filter context and concrete next steps for the agent.
|
|
24
|
+
|
|
25
|
+
## Fixed
|
|
26
|
+
|
|
27
|
+
- **`courtlistener_lookup_courts` count** — `totalCount` now reports the upstream total (all courts matching the filter) rather than the number of courts on the current page.
|
|
28
|
+
- **`courtlistener_get_docket` entry count** — `total_entries` now reflects the true entry count from the `/docket-entries/` endpoint, not the fetched page size.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Two new tools (financial disclosures, oral arguments), data-normalization fixes across five tools, machine-readable error contracts"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.2.0 — 2026-06-01
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **`courtlistener_search_financial_disclosures`** — search federal judicial financial disclosure filings by judge person ID and year; returns category counts, itemized gifts, and the source PDF URL. Year filtering is applied client-side (the endpoint does not accept server-side year params). ([#12](https://github.com/cyanheads/courtlistener-mcp-server/issues/12))
|
|
12
|
+
- **`courtlistener_get_oral_argument`** — fetch a full oral argument record including speech-to-text transcript, panel judge IDs, duration, and MP3 link. ([#12](https://github.com/cyanheads/courtlistener-mcp-server/issues/12))
|
|
13
|
+
|
|
14
|
+
## Fixed
|
|
15
|
+
|
|
16
|
+
- **`courtlistener_get_opinion`** — `case_name`, `court`, and `docket_number` were empty due to a snake_case field mismatch and the cluster endpoint omitting court/docket data; now backfills from the linked docket record. ([#9](https://github.com/cyanheads/courtlistener-mcp-server/issues/9))
|
|
17
|
+
- **`courtlistener_get_docket`** — showed raw court URI instead of a human-readable name; now resolved via a bundled court-names map. ([#10](https://github.com/cyanheads/courtlistener-mcp-server/issues/10))
|
|
18
|
+
- **`courtlistener_get_judge`** — returned raw single-letter codes for gender, ABA rating, and political affiliation; now expanded to readable labels matching `courtlistener_search_judges` output. ([#11](https://github.com/cyanheads/courtlistener-mcp-server/issues/11))
|
|
19
|
+
- **Not-found and rate-limit errors** — previously leaked the full upstream URL in the error message; now classified at a `classifyFetchError` choke point that throws domain errors carrying a machine-readable `reason` + `recovery.hint` with a path-only message. ([#15](https://github.com/cyanheads/courtlistener-mcp-server/issues/15), [#16](https://github.com/cyanheads/courtlistener-mcp-server/issues/16))
|
|
20
|
+
- **`courtlistener_get_citations`** — resolved source case name was a `(cluster N)` placeholder; now fetches the real case name from the cluster record. ([#18](https://github.com/cyanheads/courtlistener-mcp-server/issues/18))
|
|
21
|
+
|
|
22
|
+
## Dependencies
|
|
23
|
+
|
|
24
|
+
- `vitest` ^4.1.7 → ^4.1.8
|
package/changelog/template.md
CHANGED
|
@@ -43,7 +43,7 @@ security: false
|
|
|
43
43
|
name the symbol, state what changed, stop. Use a second sentence only when
|
|
44
44
|
it carries weight. If a bullet feels long, it is.
|
|
45
45
|
|
|
46
|
-
Cut: mechanism walkthroughs (those belong in JSDoc, AGENTS.md, or the
|
|
46
|
+
Cut: mechanism walkthroughs (those belong in JSDoc, CLAUDE.md/AGENTS.md, or the
|
|
47
47
|
relevant skill), ceremonial framings ("This release introduces…",
|
|
48
48
|
backwards-compat paragraphs), file-by-file test enumerations, internal
|
|
49
49
|
implementation notes. Prefer code/symbol names over English re-explanations.
|
package/dist/index.js
CHANGED
|
@@ -13,9 +13,11 @@ import { getCitationsTool } from './mcp-server/tools/definitions/get-citations.t
|
|
|
13
13
|
import { getDocketTool } from './mcp-server/tools/definitions/get-docket.tool.js';
|
|
14
14
|
import { getJudgeTool } from './mcp-server/tools/definitions/get-judge.tool.js';
|
|
15
15
|
import { getOpinionTool } from './mcp-server/tools/definitions/get-opinion.tool.js';
|
|
16
|
+
import { getOralArgumentTool } from './mcp-server/tools/definitions/get-oral-argument.tool.js';
|
|
16
17
|
import { lookupCitationTool } from './mcp-server/tools/definitions/lookup-citation.tool.js';
|
|
17
18
|
import { lookupCourtsTool } from './mcp-server/tools/definitions/lookup-courts.tool.js';
|
|
18
19
|
import { searchDocketsTool } from './mcp-server/tools/definitions/search-dockets.tool.js';
|
|
20
|
+
import { searchFinancialDisclosuresTool } from './mcp-server/tools/definitions/search-financial-disclosures.tool.js';
|
|
19
21
|
import { searchJudgesTool } from './mcp-server/tools/definitions/search-judges.tool.js';
|
|
20
22
|
// Tool definitions
|
|
21
23
|
import { searchOpinionsTool } from './mcp-server/tools/definitions/search-opinions.tool.js';
|
|
@@ -33,6 +35,8 @@ await createApp({
|
|
|
33
35
|
getJudgeTool,
|
|
34
36
|
lookupCourtsTool,
|
|
35
37
|
searchOralArgumentsTool,
|
|
38
|
+
getOralArgumentTool,
|
|
39
|
+
searchFinancialDisclosuresTool,
|
|
36
40
|
],
|
|
37
41
|
resources: [courtsReferenceResource],
|
|
38
42
|
prompts: [legalResearchPrompt],
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,qBAAqB;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAChG,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AACvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAE7F,MAAM,SAAS,CAAC;IACd,KAAK,EAAE;QACL,kBAAkB;QAClB,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,aAAa;QACb,gBAAgB;QAChB,YAAY;QACZ,gBAAgB;QAChB,uBAAuB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,qBAAqB;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAChG,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,qEAAqE,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AACvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAE7F,MAAM,SAAS,CAAC;IACd,KAAK,EAAE;QACL,kBAAkB;QAClB,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,aAAa;QACb,gBAAgB;QAChB,YAAY;QACZ,gBAAgB;QAChB,uBAAuB;QACvB,mBAAmB;QACnB,8BAA8B;KAC/B;IACD,SAAS,EAAE,CAAC,uBAAuB,CAAC;IACpC,OAAO,EAAE,CAAC,mBAAmB,CAAC;IAC9B,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;IAC/B,YAAY,EACV,yIAAyI;QACzI,4FAA4F;QAC5F,8HAA8H;QAC9H,mGAAmG;QACnG,yGAAyG;IAC3G,KAAK,CAAC,IAAI;QACR,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,wBAAwB,CACtB,YAA4E,EAC5E,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -21,7 +21,6 @@ export declare const getCitationsTool: import("@cyanheads/mcp-ts-core").ToolDefi
|
|
|
21
21
|
citing: "citing";
|
|
22
22
|
cited_by: "cited_by";
|
|
23
23
|
}>;
|
|
24
|
-
total_count: z.ZodNumber;
|
|
25
24
|
results: z.ZodArray<z.ZodObject<{
|
|
26
25
|
cluster_id: z.ZodNumber;
|
|
27
26
|
case_name: z.ZodString;
|
|
@@ -39,5 +38,8 @@ export declare const getCitationsTool: import("@cyanheads/mcp-ts-core").ToolDefi
|
|
|
39
38
|
readonly when: "429 response from CourtListener.";
|
|
40
39
|
readonly retryable: true;
|
|
41
40
|
readonly recovery: "Wait for the Retry-After period before retrying. Free tier: 5 req/min, 50/hr, 125/day.";
|
|
42
|
-
}]
|
|
41
|
+
}], {
|
|
42
|
+
readonly totalCount: z.ZodNumber;
|
|
43
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
44
|
+
}>;
|
|
43
45
|
//# sourceMappingURL=get-citations.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-citations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-citations.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"get-citations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-citations.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgN3B,CAAC"}
|
|
@@ -45,7 +45,6 @@ export const getCitationsTool = tool('courtlistener_get_citations', {
|
|
|
45
45
|
direction: z
|
|
46
46
|
.enum(['citing', 'cited_by'])
|
|
47
47
|
.describe('Direction of the citation relationship returned.'),
|
|
48
|
-
total_count: z.number().describe('Total citations in the requested direction.'),
|
|
49
48
|
results: z
|
|
50
49
|
.array(z
|
|
51
50
|
.object({
|
|
@@ -69,6 +68,14 @@ export const getCitationsTool = tool('courtlistener_get_citations', {
|
|
|
69
68
|
.nullable()
|
|
70
69
|
.describe('Pagination cursor for the next page; null when no more results.'),
|
|
71
70
|
}),
|
|
71
|
+
// Agent-facing context: total citation count and recovery hint on empty results.
|
|
72
|
+
enrichment: {
|
|
73
|
+
totalCount: z.number().describe('Total citations in the requested direction.'),
|
|
74
|
+
notice: z
|
|
75
|
+
.string()
|
|
76
|
+
.optional()
|
|
77
|
+
.describe('Recovery hint when no citations are found — echoes direction and filters, suggests alternatives.'),
|
|
78
|
+
},
|
|
72
79
|
errors: [
|
|
73
80
|
{
|
|
74
81
|
reason: 'rate_limited',
|
|
@@ -94,7 +101,28 @@ export const getCitationsTool = tool('courtlistener_get_citations', {
|
|
|
94
101
|
const data = input.direction === 'cited_by'
|
|
95
102
|
? await svc.getCitedBy(citationParams, ctx)
|
|
96
103
|
: await svc.getCiting(citationParams, ctx);
|
|
97
|
-
|
|
104
|
+
// Resolve the source cluster's real case name. "citing" gets it free (getCiting
|
|
105
|
+
// already fetched the cluster); "cited_by" needs a lightweight name-only fetch
|
|
106
|
+
// (non-fatal — falls back to the cluster-id placeholder if it fails).
|
|
107
|
+
let sourceCaseName = `(cluster ${input.cluster_id})`;
|
|
108
|
+
if ('sourceCaseName' in data && typeof data.sourceCaseName === 'string') {
|
|
109
|
+
// "citing" — getCiting already resolved the name.
|
|
110
|
+
sourceCaseName = data.sourceCaseName;
|
|
111
|
+
}
|
|
112
|
+
else if (input.direction === 'cited_by') {
|
|
113
|
+
// "cited_by" — getCitedBy never fetched the cluster; resolve the name cheaply (non-fatal).
|
|
114
|
+
try {
|
|
115
|
+
const name = await svc.getClusterCaseName(input.cluster_id, ctx);
|
|
116
|
+
if (name)
|
|
117
|
+
sourceCaseName = name;
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
ctx.log.debug('source case name resolution failed', {
|
|
121
|
+
clusterId: input.cluster_id,
|
|
122
|
+
err: String(err),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
98
126
|
const results = data.results.map((r) => ({
|
|
99
127
|
cluster_id: r.cluster_id,
|
|
100
128
|
case_name: r.caseName ?? '',
|
|
@@ -110,11 +138,21 @@ export const getCitationsTool = tool('courtlistener_get_citations', {
|
|
|
110
138
|
total: data.total,
|
|
111
139
|
returned: results.length,
|
|
112
140
|
});
|
|
141
|
+
ctx.enrich.total(data.total);
|
|
142
|
+
if (results.length === 0) {
|
|
143
|
+
const dirLabel = input.direction === 'cited_by' ? 'citing' : 'cited by';
|
|
144
|
+
const filters = [];
|
|
145
|
+
if (input.court)
|
|
146
|
+
filters.push(`court="${input.court}"`);
|
|
147
|
+
if (input.filed_after)
|
|
148
|
+
filters.push(`filed_after=${input.filed_after}`);
|
|
149
|
+
const filterHint = filters.length > 0 ? ` with filters: ${filters.join(', ')}` : '';
|
|
150
|
+
ctx.enrich.notice(`No opinions found ${dirLabel} cluster ${input.cluster_id}${filterHint}. Try the opposite direction, remove filters, or verify the cluster ID.`);
|
|
151
|
+
}
|
|
113
152
|
return {
|
|
114
153
|
source_cluster_id: input.cluster_id,
|
|
115
154
|
source_case_name: sourceCaseName,
|
|
116
155
|
direction: input.direction,
|
|
117
|
-
total_count: data.total,
|
|
118
156
|
results,
|
|
119
157
|
next_cursor: data.nextCursor,
|
|
120
158
|
};
|
|
@@ -124,7 +162,7 @@ export const getCitationsTool = tool('courtlistener_get_citations', {
|
|
|
124
162
|
const lines = [
|
|
125
163
|
`## Citation Network — ${dirLabel}`,
|
|
126
164
|
`**Source Cluster:** ${result.source_cluster_id} ${result.source_case_name}`,
|
|
127
|
-
`**Direction:** ${result.direction} | **
|
|
165
|
+
`**Direction:** ${result.direction} | **Returned:** ${result.results.length}`,
|
|
128
166
|
];
|
|
129
167
|
if (result.results.length === 0) {
|
|
130
168
|
lines.push('\n> No citations found in this direction for the given filters.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-citations.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-citations.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,EAAE;IAClE,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,ydAAyd;IAC3d,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;IAE/E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,CACP,2HAA2H,CAC5H;QACH,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aAC5B,OAAO,CAAC,UAAU,CAAC;aACnB,QAAQ,CACP,mMAAmM,CACpM;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yFAAyF,CAC1F;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,iIAAiI,CAClI;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,0IAA0I,CAC3I;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;KAC/E,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACtF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC1E,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aAC5B,QAAQ,CAAC,kDAAkD,CAAC;QAC/D,
|
|
1
|
+
{"version":3,"file":"get-citations.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-citations.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,5 +49,5 @@ export declare const getDocketTool: import("@cyanheads/mcp-ts-core").ToolDefinit
|
|
|
49
49
|
readonly when: "429 response from CourtListener.";
|
|
50
50
|
readonly retryable: true;
|
|
51
51
|
readonly recovery: "Wait for the Retry-After period. Free tier: 5 req/min, 50/hr, 125/day.";
|
|
52
|
-
}]>;
|
|
52
|
+
}], undefined>;
|
|
53
53
|
//# sourceMappingURL=get-docket.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-docket.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-docket.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"get-docket.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-docket.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAyMxB,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
7
|
+
import { resolveCourtName } from '../../../services/courtlistener/court-names.js';
|
|
7
8
|
import { getCourtListenerService } from '../../../services/courtlistener/courtlistener-service.js';
|
|
8
9
|
export const getDocketTool = tool('courtlistener_get_docket', {
|
|
9
10
|
title: 'Get Docket',
|
|
@@ -27,8 +28,10 @@ export const getDocketTool = tool('courtlistener_get_docket', {
|
|
|
27
28
|
docket_id: z.number().describe('Docket ID.'),
|
|
28
29
|
case_name: z.string().describe('Short case name.'),
|
|
29
30
|
case_name_full: z.string().describe('Full case name.'),
|
|
30
|
-
court: z
|
|
31
|
-
|
|
31
|
+
court: z
|
|
32
|
+
.string()
|
|
33
|
+
.describe('Court display name for major federal courts; the court identifier otherwise.'),
|
|
34
|
+
court_id: z.string().describe('Court identifier — the stable value for filtering.'),
|
|
32
35
|
date_filed: z.string().describe('Date the case was filed.'),
|
|
33
36
|
date_terminated: z
|
|
34
37
|
.string()
|
|
@@ -122,12 +125,13 @@ export const getDocketTool = tool('courtlistener_get_docket', {
|
|
|
122
125
|
ctx.log.info('courtlistener_get_docket complete', {
|
|
123
126
|
docket_id: input.docket_id,
|
|
124
127
|
entries_returned: entries.length,
|
|
128
|
+
entries_total: docket.docket_entries_count,
|
|
125
129
|
});
|
|
126
130
|
return {
|
|
127
131
|
docket_id: docket.id,
|
|
128
132
|
case_name: docket.case_name ?? '',
|
|
129
133
|
case_name_full: docket.case_name_full ?? '',
|
|
130
|
-
court: docket.
|
|
134
|
+
court: resolveCourtName(docket.court_id),
|
|
131
135
|
court_id: docket.court_id ?? '',
|
|
132
136
|
date_filed: docket.date_filed ?? '',
|
|
133
137
|
date_terminated: docket.date_terminated ?? null,
|
|
@@ -138,7 +142,7 @@ export const getDocketTool = tool('courtlistener_get_docket', {
|
|
|
138
142
|
cause: docket.cause ?? '',
|
|
139
143
|
jury_demand: docket.jury_demand ?? '',
|
|
140
144
|
jurisdiction_type: docket.jurisdiction_type ?? '',
|
|
141
|
-
total_entries: entries.length,
|
|
145
|
+
total_entries: docket.docket_entries_count ?? entries.length,
|
|
142
146
|
entries,
|
|
143
147
|
};
|
|
144
148
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-docket.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-docket.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,EAAE;IAC5D,KAAK,EAAE,YAAY;IACnB,WAAW,EACT,mUAAmU;IACrU,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IAEzD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,CACP,qFAAqF,CACtF;QACH,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,sFAAsF,CACvF;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAClD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACtD,KAAK,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"get-docket.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-docket.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,5 +49,5 @@ export declare const getJudgeTool: import("@cyanheads/mcp-ts-core").ToolDefiniti
|
|
|
49
49
|
readonly when: "429 response from CourtListener.";
|
|
50
50
|
readonly retryable: true;
|
|
51
51
|
readonly recovery: "Wait for the Retry-After period. Free tier: 5 req/min, 50/hr, 125/day.";
|
|
52
|
-
}]>;
|
|
52
|
+
}], undefined>;
|
|
53
53
|
//# sourceMappingURL=get-judge.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-judge.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-judge.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"get-judge.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-judge.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA8BjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsOvB,CAAC"}
|
|
@@ -5,6 +5,32 @@
|
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
7
7
|
import { getCourtListenerService } from '../../../services/courtlistener/courtlistener-service.js';
|
|
8
|
+
/**
|
|
9
|
+
* The /people/{id}/ endpoint returns single-letter codes for gender, ABA rating,
|
|
10
|
+
* and political affiliation, where the search endpoint returns pre-expanded labels.
|
|
11
|
+
* These maps expand them so get_judge output matches search_judges. Unknown codes
|
|
12
|
+
* pass through unchanged rather than being dropped or guessed.
|
|
13
|
+
*/
|
|
14
|
+
const GENDER_LABELS = { m: 'Male', f: 'Female', o: 'Other' };
|
|
15
|
+
const ABA_RATING_LABELS = {
|
|
16
|
+
ewq: 'Exceptionally Well Qualified',
|
|
17
|
+
wq: 'Well Qualified',
|
|
18
|
+
q: 'Qualified',
|
|
19
|
+
nq: 'Not Qualified',
|
|
20
|
+
nqnot: 'Not Qualified (Not of this Time)',
|
|
21
|
+
};
|
|
22
|
+
const PARTY_LABELS = {
|
|
23
|
+
d: 'Democratic',
|
|
24
|
+
r: 'Republican',
|
|
25
|
+
i: 'Independent',
|
|
26
|
+
g: 'Green',
|
|
27
|
+
l: 'Libertarian',
|
|
28
|
+
};
|
|
29
|
+
const expandCode = (map, code) => {
|
|
30
|
+
if (!code)
|
|
31
|
+
return '';
|
|
32
|
+
return map[code.toLowerCase()] ?? code;
|
|
33
|
+
};
|
|
8
34
|
export const getJudgeTool = tool('courtlistener_get_judge', {
|
|
9
35
|
title: 'Get Judge Profile',
|
|
10
36
|
description: 'Fetch full biographical profile for a single judge: appointment history across all courts, education, political affiliations, and ABA ratings. Obtain person IDs from courtlistener_search_judges results.',
|
|
@@ -29,11 +55,13 @@ export const getJudgeTool = tool('courtlistener_get_judge', {
|
|
|
29
55
|
.describe('Federal Judicial Center ID for cross-referencing with FJC data; null if not available.'),
|
|
30
56
|
aba_ratings: z
|
|
31
57
|
.array(z.string())
|
|
32
|
-
.describe('ABA qualification
|
|
58
|
+
.describe('ABA qualification ratings, expanded to readable labels (e.g., "Well Qualified").'),
|
|
33
59
|
political_affiliations: z
|
|
34
60
|
.array(z
|
|
35
61
|
.object({
|
|
36
|
-
affiliation: z
|
|
62
|
+
affiliation: z
|
|
63
|
+
.string()
|
|
64
|
+
.describe('Political party, expanded to a readable label (e.g., "Democratic").'),
|
|
37
65
|
date_start: z.string().nullable().describe('Start date of this affiliation.'),
|
|
38
66
|
date_end: z
|
|
39
67
|
.string()
|
|
@@ -109,11 +137,13 @@ export const getJudgeTool = tool('courtlistener_get_judge', {
|
|
|
109
137
|
ctx.log.info('courtlistener_get_judge', { person_id: input.person_id });
|
|
110
138
|
const svc = getCourtListenerService();
|
|
111
139
|
const person = await svc.getPerson(input.person_id, ctx);
|
|
112
|
-
// aba_ratings
|
|
113
|
-
|
|
114
|
-
|
|
140
|
+
// aba_ratings/political_affiliations arrive as single-letter codes — expand to
|
|
141
|
+
// readable labels so output matches courtlistener_search_judges.
|
|
142
|
+
const aba_ratings = (person.aba_ratings ?? [])
|
|
143
|
+
.map((r) => expandCode(ABA_RATING_LABELS, r.rating))
|
|
144
|
+
.filter(Boolean);
|
|
115
145
|
const political_affiliations = (person.political_affiliations ?? []).map((pa) => ({
|
|
116
|
-
affiliation: pa.political_party
|
|
146
|
+
affiliation: expandCode(PARTY_LABELS, pa.political_party),
|
|
117
147
|
date_start: pa.date_start ?? null,
|
|
118
148
|
date_end: pa.date_end ?? null,
|
|
119
149
|
}));
|
|
@@ -145,7 +175,7 @@ export const getJudgeTool = tool('courtlistener_get_judge', {
|
|
|
145
175
|
return {
|
|
146
176
|
person_id: person.id,
|
|
147
177
|
name,
|
|
148
|
-
gender: person.gender
|
|
178
|
+
gender: expandCode(GENDER_LABELS, person.gender),
|
|
149
179
|
dob: person.date_dob ?? null,
|
|
150
180
|
dob_city: person.dob_city ?? null,
|
|
151
181
|
dob_state: person.dob_state ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-judge.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-judge.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,EAAE;IAC1D,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EACT,4MAA4M;IAC9M,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IAEzD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,CACP,4HAA4H,CAC7H;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAChF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAClF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACrF,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,wFAAwF,CACzF;QACH,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"get-judge.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-judge.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,5 +42,5 @@ export declare const getOpinionTool: import("@cyanheads/mcp-ts-core").ToolDefini
|
|
|
42
42
|
readonly when: "429 response from CourtListener.";
|
|
43
43
|
readonly retryable: true;
|
|
44
44
|
readonly recovery: "Wait for the Retry-After period. Free tier: 5 req/min, 50/hr, 125/day.";
|
|
45
|
-
}]>;
|
|
45
|
+
}], undefined>;
|
|
46
46
|
//# sourceMappingURL=get-opinion.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-opinion.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-opinion.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"get-opinion.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-opinion.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoMzB,CAAC"}
|