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.
Drift inferred · capture-to-capture
tool count over time
06-13 21:04 now
19t
24t
transport stdio · streamable-http · http
verified
reported
listed in the official MCP registry counts 14 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
courtlistener_get_citations
-
courtlistener_get_docket
-
courtlistener_get_financial_disclosure
-
courtlistener_get_judge
-
courtlistener_get_opinion
-
courtlistener_get_oral_argument
-
courtlistener_get_parties
-
courtlistener_lookup_citation
-
courtlistener_lookup_courts
-
courtlistener_search_dockets
-
courtlistener_search_financial_disclosures
-
courtlistener_search_judges
-
courtlistener_search_opinions
-
courtlistener_search_oral_arguments
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit f48988e · analyzer v33 · 2w ago
skills & prompt files 33
- agent-rules cyanheads-courtlistener-mcp-server-f48988e/CLAUDE.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/add-app-tool/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/add-prompt/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/add-resource/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/add-service/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/add-test/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/add-tool/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-auth/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-canvas/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-config/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-context/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-errors/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-linter/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-mirror/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-services/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-telemetry/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-testing/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-utils/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/api-workers/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/code-simplifier/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/design-mcp-server/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/field-test/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/git-wrapup/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/maintenance/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/orchestrations/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/polish-docs-meta/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/release-and-publish/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/report-issue-framework/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/report-issue-local/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/security-pass/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/setup/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/techniques/SKILL.md
- skill cyanheads-courtlistener-mcp-server-f48988e/skills/tool-defs-analysis/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 66
filesystem 16
- fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/build-changelog.ts :32
import { existsSync, readdirSync, readFileSync, writeFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/build.ts :17
import { readFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/check-dependency-specifiers.ts :38
import { existsSync, readFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/check-docs-sync.ts :22
import { existsSync, readFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/check-framework-antipatterns.ts :39
import { existsSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/check-skill-versions.ts :33
import { existsSync, readFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/check-skills-sync.ts :37
import { existsSync, readdirSync, readFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/clean-mcpb.ts :29
import { existsSync, statSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/clean.ts :15
import { readdir, rm } from 'node:fs/promises'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/devcheck.ts :3
import { existsSync, readFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/generate-court-names.ts :30
import { writeFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/lint-mcp.ts :19
import { existsSync, readdirSync, readFileSync } from 'node:fs';
show 4 more
- fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/lint-packaging.ts :52
import { existsSync, readdirSync, readFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/list-skills.ts :21
import { existsSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/release-github.ts :33
import { existsSync, readFileSync } from 'node:fs'; - fs (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/tree.ts :24
import type { Dirent } from 'node:fs';
shell / exec 8
- shell (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/build.ts :16
import { execFile } from 'node:child_process'; - shell (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/check-framework-antipatterns.ts :38
import { spawnSync } from 'node:child_process'; - shell (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/check-skill-versions.ts :32
import { spawnSync } from 'node:child_process'; - shell (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/clean-mcpb.ts :28
import { execFileSync } from 'node:child_process'; - shell (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/devcheck.ts :2
import { type ChildProcess, spawn, spawnSync } from 'node:child_process'; - shell (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/generate-court-names.ts :29
import { execFileSync } from 'node:child_process'; - shell (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/lint-packaging.ts :51
import { execFileSync } from 'node:child_process'; - shell (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/release-github.ts :32
import { spawnSync } from 'node:child_process';
network 4
- net (weak) cyanheads-courtlistener-mcp-server-f48988e/scripts/generate-court-names.ts :69
const response = await fetch(url, { - net cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/get-docket.tool.ts :32
'Page of docket entries to fetch (1-indexed). Docket entries are page-paginated at 20 per page; pass the next_cursor from a previous response here to page through large cases.', - net cyanheads-courtlistener-mcp-server-f48988e/src/services/courtlistener/courtlistener-service.ts :510
* Lightweight docket metadata fetch (no docket-entries page) used to backfill - net (weak) cyanheads-courtlistener-mcp-server-f48988e/tests/service/courtlistener-service.test.ts :24
const response = await fetch(url, opts);
tool registrations 14
- courtlistener_get_citations cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/get-citations.tool.ts :11
- courtlistener_get_docket cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/get-docket.tool.ts :12
- courtlistener_get_financial_disclosure cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/get-financial-disclosure.tool.ts :300
- courtlistener_get_judge cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/get-judge.tool.ts :203
- courtlistener_get_opinion cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/get-opinion.tool.ts :70
- courtlistener_get_oral_argument cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/get-oral-argument.tool.ts :43
- courtlistener_get_parties cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/get-parties.tool.ts :10
- courtlistener_lookup_citation cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/lookup-citation.tool.ts :110
- courtlistener_lookup_courts cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/lookup-courts.tool.ts :57
- courtlistener_search_dockets cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/search-dockets.tool.ts :15
- courtlistener_search_financial_disclosures cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/search-financial-disclosures.tool.ts :20
- courtlistener_search_judges cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/search-judges.tool.ts :25
show 2 more
- courtlistener_search_opinions cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/search-opinions.tool.ts :12
- courtlistener_search_oral_arguments cyanheads-courtlistener-mcp-server-f48988e/src/mcp-server/tools/definitions/search-oral-arguments.tool.ts :12
declared dependencies 11
- @cyanheads/mcp-ts-core@^0.11.0
- pino-pretty@^13.1.3
- zod@^4.4.3
- @biomejs/biome@2.5.5
- @socketsecurity/bun-security-scanner@^1.1.2
- @types/node@^26.1.1
- depcheck@^1.4.7
- ignore@^7.0.6
- tsc-alias@^1.9.1
- typescript@^6.0.3
- vitest@^4.1.10