@cyanheads/courtlistener-mcp-server 0.1.2 → 0.1.4
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 +21 -38
- package/README.md +26 -1
- package/changelog/0.1.x/0.1.3.md +21 -0
- package/changelog/0.1.x/0.1.4.md +30 -0
- package/changelog/template.md +8 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-opinions.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/search-opinions.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/search-opinions.tool.js.map +1 -1
- package/package.json +32 -19
- package/server.json +15 -3
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** courtlistener-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.
|
|
4
|
+
**Version:** 0.1.4
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.13`
|
|
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
|
|
@@ -50,7 +50,7 @@ Tailor suggestions to what's actually missing or stale — don't recite the full
|
|
|
50
50
|
- **Use `ctx.state`** for tenant-scoped storage. Never access persistence directly.
|
|
51
51
|
- **Check `ctx.elicit` / `ctx.sample`** for presence before calling.
|
|
52
52
|
- **Secrets in env vars only** — never hardcoded.
|
|
53
|
-
- **Close the loop on issues.** When implementing work tracked by a GitHub issue, comment on the issue with what landed
|
|
53
|
+
- **Close the loop on issues.** When implementing work tracked by a GitHub issue, comment on the issue with what landed and close it. Do both — a comment without a close leaves stale issues open; a close without a comment leaves no record of what shipped. The comment is for future readers — state the concrete changes, not the conversation that produced them.
|
|
54
54
|
|
|
55
55
|
---
|
|
56
56
|
|
|
@@ -152,6 +152,10 @@ export function getServerConfig() {
|
|
|
152
152
|
|
|
153
153
|
`parseEnvConfig` maps Zod schema paths → env var names so errors name the variable (`MY_API_KEY`) not the path (`apiKey`). Throws `ConfigurationError`, which the framework prints as a clean startup banner.
|
|
154
154
|
|
|
155
|
+
### Server instructions
|
|
156
|
+
|
|
157
|
+
`createApp({ instructions })` — optional server-level orientation, sent to clients on every `initialize` as session-level context. Use it for deployment guidance (connection aliases, regional notes, scope hints) instead of repeating the same context across tool descriptions. Client adoption is uneven, but there's no downside when set.
|
|
158
|
+
|
|
155
159
|
---
|
|
156
160
|
|
|
157
161
|
## Context
|
|
@@ -178,6 +182,8 @@ Handlers throw — the framework catches, classifies, and formats.
|
|
|
178
182
|
**Recommended: typed error contract.** Declare `errors: [{ reason, code, when, recovery, retryable? }]` on `tool()` / `resource()` to receive `ctx.fail(reason, …)` typed against the reason union. TypeScript catches typos at compile time, `data.reason` is auto-populated for observability, linter enforces conformance against the handler body. `recovery` is required descriptive metadata for the agent's next move (≥ 5 words, lint-validated); for the wire `data.recovery.hint` (mirrored into `content[]` text), pass explicitly at the throw site when dynamic context matters: `ctx.fail('reason', msg, { recovery: { hint: '...' } })`. Baseline codes (`InternalError`, `ServiceUnavailable`, `Timeout`, `ValidationError`, `SerializationError`) bubble freely and don't need declaring.
|
|
179
183
|
|
|
180
184
|
```ts
|
|
185
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
186
|
+
|
|
181
187
|
errors: [
|
|
182
188
|
{ reason: 'no_match', code: JsonRpcErrorCode.NotFound,
|
|
183
189
|
when: 'No item matched the query',
|
|
@@ -265,9 +271,13 @@ Available skills:
|
|
|
265
271
|
| `add-service` | Scaffold a new service integration |
|
|
266
272
|
| `add-test` | Scaffold test file for a tool, resource, or service |
|
|
267
273
|
| `field-test` | Exercise tools/resources/prompts with real inputs, verify behavior, report issues |
|
|
274
|
+
| `tool-defs-analysis` | Read-only audit of MCP definition language across the surface — voice, leaks, defaults, recovery hints, output descriptions |
|
|
268
275
|
| `security-pass` | Audit server for MCP-flavored security gaps: output injection, scope blast radius, input sinks, tenant isolation |
|
|
276
|
+
| `code-simplifier` | Post-session cleanup against `git diff` — modernize syntax, consolidate duplication, align with the codebase |
|
|
269
277
|
| `devcheck` | Lint, format, typecheck, audit |
|
|
270
278
|
| `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
|
|
279
|
+
| `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
|
|
280
|
+
| `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
|
|
271
281
|
| `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
|
|
272
282
|
| `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
|
|
273
283
|
| `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
|
|
@@ -276,6 +286,7 @@ Available skills:
|
|
|
276
286
|
| `api-config` | AppConfig, parseConfig, env vars |
|
|
277
287
|
| `api-context` | Context interface, logger, state, progress |
|
|
278
288
|
| `api-errors` | McpError, JsonRpcErrorCode, error patterns |
|
|
289
|
+
| `api-linter` | Definition linter rule catalog — invoked by `bun run lint:mcp` and `devcheck` |
|
|
279
290
|
| `api-services` | LLM, Speech, Graph services |
|
|
280
291
|
| `api-testing` | createMockContext, test patterns |
|
|
281
292
|
| `api-utils` | Formatting, parsing, security, pagination, scheduling, telemetry helpers |
|
|
@@ -296,7 +307,7 @@ When you complete a skill's checklist, check the boxes and add a completion time
|
|
|
296
307
|
| `npm run rebuild` | Clean + build |
|
|
297
308
|
| `npm run clean` | Remove build artifacts |
|
|
298
309
|
| `npm run devcheck` | Lint + format + typecheck + security + changelog sync |
|
|
299
|
-
| `bun run audit:refresh` | Delete `bun.lock`, reinstall, re-audit
|
|
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. |
|
|
300
311
|
| `npm run tree` | Generate directory structure doc |
|
|
301
312
|
| `npm run format` | Auto-fix formatting |
|
|
302
313
|
| `npm test` | Run tests |
|
|
@@ -314,40 +325,7 @@ When you complete a skill's checklist, check the boxes and add a completion time
|
|
|
314
325
|
|
|
315
326
|
**Adding an env var requires both files:** `server.json` (registry discovery, `environmentVariables[]`) and `manifest.json` (bundle install UX, `mcp_config.env` + `user_config`). `lint:packaging` (run by `devcheck`) verifies the env var names match.
|
|
316
327
|
|
|
317
|
-
**README install badges
|
|
318
|
-
|
|
319
|
-
| Client | Mechanism |
|
|
320
|
-
|:-------|:----------|
|
|
321
|
-
| Claude Desktop | Browser downloads the `.mcpb` from the latest GitHub Release; OS file handler routes it to Claude Desktop, which opens the install dialog. No deep-link URL scheme yet — this is the canonical path. |
|
|
322
|
-
| Cursor | Official `https://cursor.com/en/install-mcp` endpoint with base64 JSON config. |
|
|
323
|
-
| VS Code / Insiders | Official `vscode:mcp/install?...` deep link, wrapped in `https://vscode.dev/redirect?url=` so GitHub-rendered markdown doesn't strip the non-HTTP scheme. |
|
|
324
|
-
| Claude Code / Codex | CLI only (`claude mcp add` / `codex mcp add`); no URL scheme. |
|
|
325
|
-
|
|
326
|
-
```markdown
|
|
327
|
-
[](https://github.com/<OWNER>/<REPO>/releases/latest/download/<PACKAGE_NAME>.mcpb)
|
|
328
|
-
[](https://cursor.com/en/install-mcp?name=<PACKAGE_NAME>&config=<BASE64_CONFIG>)
|
|
329
|
-
[](https://vscode.dev/redirect?url=vscode:mcp/install?<URLENCODED_JSON>)
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
Both install links route through HTTPS endpoints (`cursor.com/en/install-mcp` and `vscode.dev/redirect`) — GitHub-rendered markdown strips non-HTTP URL schemes from anchors, so a raw `cursor://` or `vscode:` link won't click through from github.com.
|
|
333
|
-
|
|
334
|
-
Generate the encoded configs (replace `<PACKAGE_NAME>` and add env vars for any required API keys):
|
|
335
|
-
|
|
336
|
-
```bash
|
|
337
|
-
# Cursor: base64-encoded JSON. Split command/args, add env when keys are needed.
|
|
338
|
-
echo -n '{"command":"npx","args":["-y","<PACKAGE_NAME>"],"env":{"API_KEY":"your-api-key"}}' | base64
|
|
339
|
-
# Without env (no required keys):
|
|
340
|
-
echo -n '{"command":"npx","args":["-y","<PACKAGE_NAME>"]}' | base64
|
|
341
|
-
|
|
342
|
-
# VS Code: URL-encoded JSON. Same shape plus a `name` field.
|
|
343
|
-
node -p 'encodeURIComponent(JSON.stringify({name:"<SHORT_NAME>",command:"npx",args:["-y","<PACKAGE_NAME>"],env:{API_KEY:"your-api-key"}}))'
|
|
344
|
-
# Without env:
|
|
345
|
-
node -p 'encodeURIComponent(JSON.stringify({name:"<SHORT_NAME>",command:"npx",args:["-y","<PACKAGE_NAME>"]}))'
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
Both clients use the same `{command, args, env}` shape (matching `mcp.json` schema). VS Code adds a top-level `name` field. Omit `env` entirely when no API keys are needed — don't include empty objects or framework-only vars like `MCP_TRANSPORT_TYPE`.
|
|
349
|
-
|
|
350
|
-
The Claude Desktop badge requires the bundle to ship with a stable filename — `bun run bundle` outputs `dist/<PACKAGE_NAME>.mcpb`, and `release-and-publish` attaches that file to the GitHub Release. `releases/latest/download/<PACKAGE_NAME>.mcpb` then redirects to the most recent release.
|
|
328
|
+
**README install badges** (Claude Desktop `.mcpb`, Cursor, VS Code) and the `base64` / `encodeURIComponent` config-generation commands are ship-time concerns — run the `polish-docs-meta` skill, which carries the badge format, layout, and generation snippets in `skills/polish-docs-meta/references/readme.md`.
|
|
351
329
|
|
|
352
330
|
---
|
|
353
331
|
|
|
@@ -370,6 +348,8 @@ security: false # optional — true flags security fi
|
|
|
370
348
|
|
|
371
349
|
`breaking: true` renders a `· ⚠️ Breaking` badge — use it when consumers must update code on upgrade (signature changes, removed APIs, config renames). `security: true` renders a `· 🛡️ Security` badge and pairs with a `## Security` body section. When both are set, badges render `· ⚠️ Breaking · 🛡️ Security`.
|
|
372
350
|
|
|
351
|
+
`agent-notes` is an optional free-form field for maintenance agents processing the release downstream. Content here won't appear in the rendered CHANGELOG — it's consumed by agents running the `maintenance` skill. Use it for adoption instructions that don't fit the human-facing sections: new files to create, fields to populate, one-time migration steps. Omit entirely when there's nothing to say.
|
|
352
|
+
|
|
373
353
|
**Section order** (Keep a Changelog): Added, Changed, Deprecated, Removed, Fixed, Security. Include only sections with entries — don't ship empty headers.
|
|
374
354
|
|
|
375
355
|
**Tag annotations** render as GitHub Release bodies via `--notes-from-tag`. They must be structured markdown — never a flat comma-separated string. Subject omits the version number (GitHub prepends it). See `changelog/template.md` for the full format reference.
|
|
@@ -402,4 +382,7 @@ import { getMyService } from '@/services/my-domain/my-service.js';
|
|
|
402
382
|
- [ ] If wrapping external API: tests include at least one sparse payload case with omitted upstream fields
|
|
403
383
|
- [ ] Registered in `createApp()` arrays (directly or via barrel exports)
|
|
404
384
|
- [ ] Tests use `createMockContext()` from `@cyanheads/mcp-ts-core/testing`
|
|
385
|
+
- [ ] `.codex-plugin/plugin.json` populated — `name`, `version`, `description`, `repository`, `license` from `package.json`; `interface.displayName` = package name; `interface.shortDescription` from `package.json` description
|
|
386
|
+
- [ ] `.codex-plugin/mcp.json` updated — server name key matches `package.json` name; env vars added for any required API keys
|
|
387
|
+
- [ ] `.claude-plugin/plugin.json` populated — `name`, `version`, `description`, `repository`, `license` from `package.json`; inline `mcpServers` entry with server name key, env vars for any required API keys
|
|
405
388
|
- [ ] `npm run devcheck` passes
|
package/README.md
CHANGED
|
@@ -7,16 +7,24 @@
|
|
|
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
|
|
|
14
14
|
<div align="center">
|
|
15
15
|
|
|
16
|
+
[](https://github.com/cyanheads/courtlistener-mcp-server/releases/latest/download/courtlistener-mcp-server.mcpb) [](https://cursor.com/en/install-mcp?name=courtlistener-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvY291cnRsaXN0ZW5lci1tY3Atc2VydmVyIl19) [](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22courtlistener-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fcourtlistener-mcp-server%22%5D%7D)
|
|
17
|
+
|
|
16
18
|
[](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
17
19
|
|
|
18
20
|
</div>
|
|
19
21
|
|
|
22
|
+
<div align="center">
|
|
23
|
+
|
|
24
|
+
**Public Hosted Server:** [https://courtlistener.caseyjhand.com/mcp](https://courtlistener.caseyjhand.com/mcp)
|
|
25
|
+
|
|
26
|
+
</div>
|
|
27
|
+
|
|
20
28
|
---
|
|
21
29
|
|
|
22
30
|
## Tools
|
|
@@ -168,6 +176,23 @@ Agent-friendly output:
|
|
|
168
176
|
|
|
169
177
|
## Getting started
|
|
170
178
|
|
|
179
|
+
### Public Hosted Instance
|
|
180
|
+
|
|
181
|
+
A public instance is available at `https://courtlistener.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:
|
|
182
|
+
|
|
183
|
+
```json
|
|
184
|
+
{
|
|
185
|
+
"mcpServers": {
|
|
186
|
+
"courtlistener": {
|
|
187
|
+
"type": "streamable-http",
|
|
188
|
+
"url": "https://courtlistener.caseyjhand.com/mcp"
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Self-Hosted / Local
|
|
195
|
+
|
|
171
196
|
Add the following to your MCP client configuration file. See [CourtListener account settings](https://www.courtlistener.com/profile/settings/) to generate a free API token.
|
|
172
197
|
|
|
173
198
|
```json
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Package metadata, install badges, and scripts migrated to bun run"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.3 — 2026-05-26
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **`.github/FUNDING.yml`** — GitHub Sponsors and Buy Me a Coffee funding config (`github: cyanheads`, `buy_me_a_coffee: cyanheads`)
|
|
12
|
+
- **Install badges** in README — Claude Desktop (`.mcpb` download), Cursor (deeplink), VS Code (deeplink)
|
|
13
|
+
- **Docker badge** and **npm badge** in README header row
|
|
14
|
+
|
|
15
|
+
## Changed
|
|
16
|
+
|
|
17
|
+
- **`package.json` scripts** — migrated from `tsx` to `bun run`; `start:stdio` and `start:http` now use `bun ./dist/index.js`; `bundle` uses `bun run build`; removed bare `start` alias
|
|
18
|
+
- **`package.json` metadata** — added `author`, `funding`, `bugs`, and `homepage` fields matching ecosystem standard
|
|
19
|
+
- **`tsx`** removed from devDependencies (unused since scripts run via bun)
|
|
20
|
+
|
|
21
|
+
59 tests pass; `bun run devcheck` clean.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "@cyanheads/mcp-ts-core ^0.9.9 → ^0.9.13, public hosted endpoint, landing page open by default"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.4 — 2026-05-28
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **Public hosted endpoint** — `https://courtlistener.caseyjhand.com/mcp` documented in README and registered in `server.json` `remotes[]`
|
|
12
|
+
- **`landing: { requireAuth: false }`** in `createApp()` — keeps the tool/resource/prompt landing page publicly visible on the hosted instance (framework 0.9.13 changed the default to require auth when `MCP_AUTH_MODE` is `jwt` or `oauth`)
|
|
13
|
+
- **`COURTLISTENER_API_TOKEN`** added to `server.json` `environmentVariables[]` and `manifest.json` `user_config` for MCP Registry and MCPB install UX
|
|
14
|
+
- **`manifest.json`** — populated `description`, `author`, `repository`, `homepage`, `license` fields; added `COURTLISTENER_API_TOKEN` to `mcp_config.env`
|
|
15
|
+
- **`.claude-plugin/plugin.json`** and **`.codex-plugin/plugin.json`** — scaffolded plugin metadata files
|
|
16
|
+
- **`CITATION.cff`** — citation metadata file
|
|
17
|
+
|
|
18
|
+
## Changed
|
|
19
|
+
|
|
20
|
+
- **`@cyanheads/mcp-ts-core`** `^0.9.9 → ^0.9.13` — picks up:
|
|
21
|
+
- `MCP_HTTP_MAX_BODY_BYTES` config key (default 1 MiB 413 body cap on HTTP endpoint)
|
|
22
|
+
- HTTP session-init gate: stateful HTTP mode rejects non-`initialize` requests without `Mcp-Session-Id` with HTTP 400
|
|
23
|
+
- Quieter expected-client-error logging: 401/403/400/404 use `logger.warning` instead of full error pipeline with stack traces
|
|
24
|
+
- `GET /mcp` surfaces `package.json` `keywords` alongside `name`, `version`, `description`
|
|
25
|
+
- `code-simplifier` skill synced to `.claude/skills/`
|
|
26
|
+
- **`search-opinions` tool** — `invalid_query` error code corrected from `JsonRpcErrorCode.InvalidParams` to `JsonRpcErrorCode.ValidationError`
|
|
27
|
+
- **`README.md`** — hosted instance section added; `Getting started` split into `Public Hosted Instance` and `Self-Hosted / Local` subsections
|
|
28
|
+
- **`@biomejs/biome`** `^2.4.15 → ^2.4.16`
|
|
29
|
+
|
|
30
|
+
59 tests pass; `bun run devcheck` clean.
|
package/changelog/template.md
CHANGED
|
@@ -19,6 +19,14 @@ breaking: false
|
|
|
19
19
|
# `## Security` section below. Flagged as `Security` in the rollup so
|
|
20
20
|
# users can triage upgrade urgency at a glance.
|
|
21
21
|
security: false
|
|
22
|
+
|
|
23
|
+
# Optional free-form notes for maintenance agents processing this release.
|
|
24
|
+
# Not rendered in CHANGELOG — consumed by agents running `maintenance` on
|
|
25
|
+
# downstream servers. Use for adoption instructions that don't fit the
|
|
26
|
+
# human-facing sections: new files to create, fields to populate, one-time
|
|
27
|
+
# migration steps. Omit the field entirely when there's nothing to say.
|
|
28
|
+
# agent-notes: |
|
|
29
|
+
# <instructions for downstream maintenance agents>
|
|
22
30
|
---
|
|
23
31
|
|
|
24
32
|
# <version> — YYYY-MM-DD
|
package/dist/index.js
CHANGED
|
@@ -36,6 +36,7 @@ await createApp({
|
|
|
36
36
|
],
|
|
37
37
|
resources: [courtsReferenceResource],
|
|
38
38
|
prompts: [legalResearchPrompt],
|
|
39
|
+
landing: { requireAuth: false },
|
|
39
40
|
instructions: 'CourtListener MCP server — access 9M+ US court opinions, RECAP federal dockets, judge records, citation networks, and oral arguments.\n' +
|
|
40
41
|
'- Start with courtlistener_lookup_courts to discover court IDs before filtering searches\n' +
|
|
41
42
|
'- Free tier rate limit: 5 req/min, 50/hr, 125/day — keep page_size low and avoid multi-hop workflows that exceed 3–4 calls\n' +
|
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;KACxB;IACD,SAAS,EAAE,CAAC,uBAAuB,CAAC;IACpC,OAAO,EAAE,CAAC,mBAAmB,CAAC;IAC9B,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"}
|
|
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;KACxB;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"}
|
|
@@ -52,7 +52,7 @@ export declare const searchOpinionsTool: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
52
52
|
readonly recovery: "Wait for the rate-limit window to reset (Retry-After header in seconds). Free tier: 5 req/min, 50/hr, 125/day.";
|
|
53
53
|
}, {
|
|
54
54
|
readonly reason: "invalid_query";
|
|
55
|
-
readonly code: JsonRpcErrorCode.
|
|
55
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
56
56
|
readonly when: "Query uses invalid field syntax or unsupported operators.";
|
|
57
57
|
readonly recovery: "Simplify the query, remove field-syntax prefixes, and retry with plain text.";
|
|
58
58
|
}]>;
|
|
@@ -100,7 +100,7 @@ export const searchOpinionsTool = tool('courtlistener_search_opinions', {
|
|
|
100
100
|
},
|
|
101
101
|
{
|
|
102
102
|
reason: 'invalid_query',
|
|
103
|
-
code: JsonRpcErrorCode.
|
|
103
|
+
code: JsonRpcErrorCode.ValidationError,
|
|
104
104
|
when: 'Query uses invalid field syntax or unsupported operators.',
|
|
105
105
|
recovery: 'Simplify the query, remove field-syntax prefixes, and retry with plain text.',
|
|
106
106
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-opinions.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-opinions.tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"search-opinions.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-opinions.tool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/courtlistener-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"mcpName": "io.github.cyanheads/courtlistener-mcp-server",
|
|
5
5
|
"description": "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.",
|
|
6
6
|
"type": "module",
|
|
@@ -19,23 +19,22 @@
|
|
|
19
19
|
"server.json"
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
|
-
"build": "
|
|
23
|
-
"rebuild": "
|
|
24
|
-
"clean": "
|
|
25
|
-
"devcheck": "
|
|
22
|
+
"build": "bun run scripts/build.ts",
|
|
23
|
+
"rebuild": "bun run scripts/clean.ts && bun run build",
|
|
24
|
+
"clean": "bun run scripts/clean.ts",
|
|
25
|
+
"devcheck": "bun run scripts/devcheck.ts",
|
|
26
26
|
"audit:refresh": "rm -f bun.lock && bun install && bun audit",
|
|
27
|
-
"tree": "
|
|
28
|
-
"list-skills": "
|
|
27
|
+
"tree": "bun run scripts/tree.ts",
|
|
28
|
+
"list-skills": "bun run scripts/list-skills.ts",
|
|
29
29
|
"format": "biome check --write --unsafe .",
|
|
30
|
-
"lint:mcp": "
|
|
31
|
-
"lint:packaging": "
|
|
32
|
-
"bundle": "
|
|
33
|
-
"changelog:build": "
|
|
34
|
-
"changelog:check": "
|
|
35
|
-
"test": "vitest run",
|
|
36
|
-
"start": "
|
|
37
|
-
"start:
|
|
38
|
-
"start:http": "MCP_TRANSPORT_TYPE=http node dist/index.js",
|
|
30
|
+
"lint:mcp": "bun run scripts/lint-mcp.ts",
|
|
31
|
+
"lint:packaging": "bun run scripts/lint-packaging.ts",
|
|
32
|
+
"bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/courtlistener-mcp-server.mcpb",
|
|
33
|
+
"changelog:build": "bun run scripts/build-changelog.ts",
|
|
34
|
+
"changelog:check": "bun run scripts/build-changelog.ts --check",
|
|
35
|
+
"test": "bunx vitest run",
|
|
36
|
+
"start:stdio": "MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js",
|
|
37
|
+
"start:http": "MCP_TRANSPORT_TYPE=http bun ./dist/index.js",
|
|
39
38
|
"publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish"
|
|
40
39
|
},
|
|
41
40
|
"keywords": [
|
|
@@ -57,6 +56,21 @@
|
|
|
57
56
|
"type": "git",
|
|
58
57
|
"url": "git+https://github.com/cyanheads/courtlistener-mcp-server.git"
|
|
59
58
|
},
|
|
59
|
+
"bugs": {
|
|
60
|
+
"url": "https://github.com/cyanheads/courtlistener-mcp-server/issues"
|
|
61
|
+
},
|
|
62
|
+
"homepage": "https://github.com/cyanheads/courtlistener-mcp-server#readme",
|
|
63
|
+
"author": "cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/courtlistener-mcp-server#readme)",
|
|
64
|
+
"funding": [
|
|
65
|
+
{
|
|
66
|
+
"type": "github",
|
|
67
|
+
"url": "https://github.com/sponsors/cyanheads"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"type": "buy_me_a_coffee",
|
|
71
|
+
"url": "https://www.buymeacoffee.com/cyanheads"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
60
74
|
"license": "Apache-2.0",
|
|
61
75
|
"engines": {
|
|
62
76
|
"bun": ">=1.3.0",
|
|
@@ -66,17 +80,16 @@
|
|
|
66
80
|
"access": "public"
|
|
67
81
|
},
|
|
68
82
|
"dependencies": {
|
|
69
|
-
"@cyanheads/mcp-ts-core": "^0.9.
|
|
83
|
+
"@cyanheads/mcp-ts-core": "^0.9.13",
|
|
70
84
|
"pino-pretty": "^13.1.3",
|
|
71
85
|
"zod": "^4.4.3"
|
|
72
86
|
},
|
|
73
87
|
"devDependencies": {
|
|
74
|
-
"@biomejs/biome": "^2.4.
|
|
88
|
+
"@biomejs/biome": "^2.4.16",
|
|
75
89
|
"@types/node": "^25.9.1",
|
|
76
90
|
"depcheck": "^1.4.7",
|
|
77
91
|
"ignore": "^7.0.5",
|
|
78
92
|
"tsc-alias": "^1.8.17",
|
|
79
|
-
"tsx": "^4.22.3",
|
|
80
93
|
"typescript": "^6.0.3",
|
|
81
94
|
"vitest": "^4.1.7"
|
|
82
95
|
}
|
package/server.json
CHANGED
|
@@ -6,14 +6,20 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/courtlistener-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.4",
|
|
10
|
+
"remotes": [
|
|
11
|
+
{
|
|
12
|
+
"type": "streamable-http",
|
|
13
|
+
"url": "https://courtlistener.caseyjhand.com/mcp"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
10
16
|
"packages": [
|
|
11
17
|
{
|
|
12
18
|
"registryType": "npm",
|
|
13
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
14
20
|
"identifier": "@cyanheads/courtlistener-mcp-server",
|
|
15
21
|
"runtimeHint": "node",
|
|
16
|
-
"version": "0.1.
|
|
22
|
+
"version": "0.1.4",
|
|
17
23
|
"packageArguments": [
|
|
18
24
|
{
|
|
19
25
|
"type": "positional",
|
|
@@ -25,6 +31,12 @@
|
|
|
25
31
|
}
|
|
26
32
|
],
|
|
27
33
|
"environmentVariables": [
|
|
34
|
+
{
|
|
35
|
+
"name": "COURTLISTENER_API_TOKEN",
|
|
36
|
+
"description": "CourtListener API token from your account settings. Required for API access.",
|
|
37
|
+
"format": "string",
|
|
38
|
+
"isRequired": true
|
|
39
|
+
},
|
|
28
40
|
{
|
|
29
41
|
"name": "MCP_LOG_LEVEL",
|
|
30
42
|
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
|
|
@@ -42,7 +54,7 @@
|
|
|
42
54
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
43
55
|
"identifier": "@cyanheads/courtlistener-mcp-server",
|
|
44
56
|
"runtimeHint": "node",
|
|
45
|
-
"version": "0.1.
|
|
57
|
+
"version": "0.1.4",
|
|
46
58
|
"packageArguments": [
|
|
47
59
|
{
|
|
48
60
|
"type": "positional",
|