Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cyanheads/courtlistener-mcp-server --skill courtlistener-guidegit clone --depth 1 https://github.com/cyanheads/courtlistener-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cyanheads/courtlistener-mcp-server/courtlistener-guide)<a href="https://agentmods.dev/skills/cyanheads/courtlistener-mcp-server/courtlistener-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/courtlistener-mcp-server/courtlistener-guide/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cyanheads/courtlistener-mcp-server/courtlistener-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/courtlistener-mcp-server/courtlistener-guide.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00049 | $0.01106 |
| Opus 5.5 | $0.00020 | $0.00442 |
| Sonnet 5.5 | $0.00010 | $0.00221 |
| Haiku 4.5 | $0.00005 | $0.00111 |
Grade A, and why
courtlistener-guide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 46 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scope
Use CourtListener for US written opinions, citation links, federal RECAP dockets, judge records, oral arguments, and judicial disclosures. A CourtListener API token is required. RECAP is a partial federal PACER mirror; this server does not cover state-court dockets or purchase PACER documents.
Identifiers
- Opinion search and citation lookup return cluster IDs: a decision grouping its opinion variants. Pass these to courtlistener_get_opinion and courtlistener_get_citations.
- Variant IDs and variant cites lists identify individual opinions, not clusters. Do not pass those IDs to tools requiring a cluster ID; use courtlistener_get_citations to follow the authority chain.
- Docket IDs come from docket search or linked opinion records. Use them for courtlistener_get_docket and courtlistener_get_parties. Document IDs, docket-entry IDs, PACER document numbers, and docket numbers are distinct identifiers.
- Judge search returns person IDs; opinion author IDs and oral-argument panel IDs also identify people. Use these for courtlistener_get_judge and judge-specific disclosure searches. Resolve a name before linking records to a person.
- Disclosure search returns disclosure IDs for courtlistener_get_financial_disclosure. Oral-argument search returns audio IDs for courtlistener_get_oral_argument.
Gates
- Inspect each citation lookup result's resolution status. A successful call can contain unresolved citations or several candidate cases; resolve the intended case before following its cluster.
- Read the relevant opinion variant before attributing a holding or characterizing how a later decision treats a precedent. Citation edges establish links, not approval, rejection, or distinguishing treatment. Search snippets are cluster relevance previews and may come from a concurrence or dissent.
- Finish the text needed for the conclusion. An outline is a catalog, not the withheld text. Continue retrieval with the original identity and selection unchanged; reconstruct chunks using their paths and absolute ranges rather than appending repeated rows.
- Keep opinion text and docket backfill retrieval separate. Follow retrieval.next_cursor for the primary opinion and enrichment_retrieval.next_cursor through enrichment_cursor for oversized backfill, with the same cluster and variant selection. Track enrichment ranges independently even when their paths name top-level fields. If enrichment source_id changes, discard prior enrichment slices and collect the replacement; do not discard primary opinion slices merely because backfill changed.
- Check source completion separately from retrieval completion. Exhausting retrieval only exhausts the fetched view: opinion variants, citation source variants, judge positions, or attorney resolution may still be incomplete. Report that limit with the finding.
- Do not stop at an empty page when a continuation remains. Disclosure-year filters and outbound-citation filters can leave an empty page before later matches.
- Do not equate missing RECAP records with a case or filing not existing. Check document availability before relying on a stored copy; do not infer missing content from metadata.
- Select filing text only from documents listed on the same docket entries page. A selection from another page or an entry without explicit matching docket ownership is rejected; list the intended page before retrying.
- Keep filing-text continuation separate from entries pagination. Finish retrieval with the same docket, entries page, and document selection before moving to another entries page. File availability does not establish extracted-text availability: inspect text_status, including unavailable, not_extracted, and unknown outcomes.
- Preserve disclosure dollar ranges as ranges. Check extraction status and retrieve relevant line items before drawing a conclusion from category counts.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 46 lines · 49 tokens per session scan A b9b8c1b58e8a
courtlistener-guide is a skill published in the GitHub repository cyanheads/courtlistener-mcp-server (4 stars, last pushed 6d ago), licensed Apache-2.0. It adds 49 tokens to every session and 1,106 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-01.
courtlistener-guide compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| courtlistener-guidecyanheads/courtlistener-mcp-server | Skill | 4 | 6d ago | Apache-2.0 | A | 49 | Claude Code |
| courtlistener-citation-validatorjohn-walkoe/courtlistener_citations_mcp | Skill | 5 | 6mo ago | MIT | A | 105 | Claude Code, Codex |
| omh-data-share-reviewrlaope/oh-my-hermes | Skill | 5.2k | yesterday | MIT | A | 106 | Claude Code, Codex |
| omh-legal-compliance-reviewrlaope/oh-my-hermes | Skill | 5.2k | yesterday | MIT | A | 73 | Claude Code, Codex |
| tax-guidechrisblattman/claudeblattman | Skill | 476 | yesterday | MIT | A | 19 | Claude Code, Codex |
| zoning-analysis-nycAlpacaLabsLLC/skills-for-architects | Skill | 402 | 3d ago | MIT | A | 57 | Claude Code |
| novel-complianceuu201/character-arc | Skill | 600 | yesterday | MIT | A | 69 | Claude Code, Codex |