{"_id":"@courtio/courtapi-mcp","_rev":"2-dee2ff73c9956b3972e62f91610924e5","name":"@courtio/courtapi-mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@courtio/courtapi-mcp","version":"0.1.0","keywords":["mcp","courtapi","pacer","legal","court","bankruptcy","federal"],"author":{"name":"CourtDrive","email":"support@courtdrive.com"},"license":"MIT","_id":"@courtio/courtapi-mcp@0.1.0","maintainers":[{"name":"courtiomcp","email":"niklaskokkola@gmail.com"}],"homepage":"https://www.courtapi.com","bugs":{"url":"https://gitlab.com/courtio/courtio/issues"},"bin":{"courtapi-mcp":"dist/index.js"},"dist":{"shasum":"a21b115188c6acb38345fa19e3ea34021a27bc93","tarball":"https://registry.npmjs.org/@courtio/courtapi-mcp/-/courtapi-mcp-0.1.0.tgz","fileCount":12,"integrity":"sha512-FgdoQDOGTHVWvtk7CylAm4o9JSQQIiWBecq2Q1pLZJ9sRhsldQBwW/c4i/1WVX8IDBANu5iu3dWekU+uKsE9wg==","signatures":[{"sig":"MEQCIB/B08vyPJoi46RcRJWd2x8fNzlfFmvPzHxRk4AyIOxQAiBwrGaLQV3dQ9engrz62KOP578smh85jFIXOtqy1qVWxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55797},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8b6ac76692703588505a344ba2f7d315a773f97b","mcpName":"io.github.courtio/courtapi-mcp","scripts":{"dev":"tsx --watch src/index.ts","test":"tsc && node --test dist/*.test.js","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"courtiomcp","email":"niklaskokkola@gmail.com"},"repository":{"url":"git+https://gitlab.com/courtio/courtio.git","type":"git"},"_npmVersion":"11.6.2","description":"MCP server for CourtAPI — search and retrieve US federal court cases, dockets, claims, and documents via PACER","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/courtapi-mcp_0.1.0_1780900638595_0.4074073413368724","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@courtio/courtapi-mcp","version":"0.1.1","description":"MCP server for CourtAPI — search and retrieve US federal court cases, dockets, claims, and documents via PACER","license":"MIT","author":{"name":"CourtDrive","email":"support@courtdrive.com"},"homepage":"https://www.courtapi.com","repository":{"type":"git","url":"git+https://github.com/courtio/courtapi-mcp.git"},"keywords":["mcp","courtapi","pacer","legal","court","bankruptcy","federal"],"mcpName":"io.github.courtio/courtapi-mcp","type":"module","main":"dist/index.js","bin":{"courtapi-mcp":"dist/index.js"},"scripts":{"build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json","dev":"tsx --watch src/index.ts","typecheck":"tsc --noEmit","test":"tsc && node --test dist/*.test.js","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","zod":"^3.25.0"},"devDependencies":{"@types/node":"^22.0.0","tsx":"^4.19.0","typescript":"^5.7.0"},"engines":{"node":">=20"},"gitHead":"2f2136a71221c6e6533fb9f80f22cd0a01bed1b7","types":"./dist/index.d.ts","_id":"@courtio/courtapi-mcp@0.1.1","bugs":{"url":"https://github.com/courtio/courtapi-mcp/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-j/mq8zvJ1iNSySjQab7rkxRH6UBUGDBIDSd0kObefK71O3DE06G3Qv44D2qF4nNo5EhkxbvSgyHEpQD8vSa/UQ==","shasum":"c60c096a033e2ebc94cabc63580d409ea3df62d9","tarball":"https://registry.npmjs.org/@courtio/courtapi-mcp/-/courtapi-mcp-0.1.1.tgz","fileCount":12,"unpackedSize":55861,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCnPrVbLuuNPyKZfpyLs8VRaTfSMZs6xAmFzqrpeQmFaQIhAL3V32GF8szjFoLH0PDjNHapaYCXkbxt9MvqXdU5AYmr"}]},"_npmUser":{"name":"courtiomcp","email":"niklaskokkola@gmail.com"},"directories":{},"maintainers":[{"name":"courtiomcp","email":"niklaskokkola@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/courtapi-mcp_0.1.1_1780901524052_0.7437298167844442"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-08T06:37:18.391Z","modified":"2026-06-08T06:52:04.279Z","0.1.0":"2026-06-08T06:37:18.743Z","0.1.1":"2026-06-08T06:52:04.178Z"},"bugs":{"url":"https://github.com/courtio/courtapi-mcp/issues"},"author":{"name":"CourtDrive","email":"support@courtdrive.com"},"license":"MIT","homepage":"https://www.courtapi.com","keywords":["mcp","courtapi","pacer","legal","court","bankruptcy","federal"],"repository":{"type":"git","url":"git+https://github.com/courtio/courtapi-mcp.git"},"description":"MCP server for CourtAPI — search and retrieve US federal court cases, dockets, claims, and documents via PACER","maintainers":[{"name":"courtiomcp","email":"niklaskokkola@gmail.com"}],"readme":"# CourtAPI MCP Server\n\nSearch and retrieve US federal court cases, dockets, claims, and documents via PACER — directly from Claude and other MCP-compatible AI assistants.\n\n## What it does\n\nThis MCP server exposes [CourtAPI](https://www.courtapi.com) as a set of tools that let an AI assistant:\n\n- **Find cases** by party name, case number, or free-text keywords across all federal courts\n- **Get case metadata** — title, chapter, judge, filing dates, assets/liabilities, and what sub-resources have been purchased\n- **Get dockets** — full docket sheets with filing history, keyword search, and date filtering\n- **Download documents** — PDFs attached to docket entries, with cost-checking before purchase\n- **Get claims** — bankruptcy claims registers with creditor names, amounts, and claim types\n- **Get parties** — all parties and attorneys in a case\n- **Get creditors** — scheduled creditors (Schedules D/E/F), separate from filed claims\n- **Search PACER NCL** — National Case Locator for cross-court party searches\n- **List courts** — all ~200 PACER courts with their codes\n- **Manage PACER credentials** — store and validate PACER username/password\n\nCoverage: **all US federal courts** — bankruptcy, district, and appellate. State courts are not supported.\n\n---\n\n## Prerequisites\n\n**CourtAPI account** — Get credentials (APP\\_ID + APP\\_KEY) at the [developer portal](https://courtapi-admin.3scale.net). A free 30-day sandbox is available (150 API calls/day, 500/month) — contact [support@courtapi.com](mailto:support@courtapi.com) to start one.\n\n**PACER account** — Required for fetching live data (docket updates, document downloads). Register free at [pacer.uscourts.gov](https://pacer.uscourts.gov/register-account/pacer-case-search-only). PACER charges per page for documents; CourtAPI passes these fees through at cost.\n\n---\n\n## Installation\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"courtapi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@courtio/courtapi-mcp\"],\n      \"env\": {\n        \"COURTAPI_APP_ID\": \"your_app_id\",\n        \"COURTAPI_APP_KEY\": \"your_app_key\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop. The hammer icon will show CourtAPI tools listed.\n\n### Other MCP clients\n\nThe server uses stdio transport by default, which is compatible with any MCP host. Use the same `command`/`args`/`env` pattern above.\n\n### HTTP mode (Streamable HTTP transport)\n\nFor clients that use HTTP rather than stdio (e.g. the OpenAI Responses API remote tools):\n\n```bash\nCOURTAPI_APP_ID=your_id COURTAPI_APP_KEY=your_key PORT=3000 \\\n  npx @courtio/courtapi-mcp --http\n```\n\n### From source\n\n```bash\ngit clone https://gitlab.com/courtio/courtio.git\ncd courtio/mcp/courtapi\nnpm install && npm run build\n# then point Claude Desktop at dist/index.js instead of npx\n```\n\n### Environment variables\n\n| Variable | Required | Description |\n|---|---|---|\n| `COURTAPI_APP_ID` | Yes | Your CourtAPI application ID |\n| `COURTAPI_APP_KEY` | Yes | Your CourtAPI application key |\n| `COURTAPI_BASE_URL` | No | Override API base URL (default: `https://v1.courtapi.com`) |\n\n---\n\n## Quick start\n\nOnce connected, try these prompts in Claude:\n\n> \"Find the Sbarro bankruptcy case and show me the latest docket entries\"\n\n> \"Search for Chapter 11 cases filed in the Delaware bankruptcy court in 2024\"\n\n> \"Get the claims register for case 1:14-bk-10557 in the SDNY bankruptcy court\"\n\n> \"Set my PACER credentials to username johndoe and password mypassword\"\n\n---\n\n## Tools\n\n### `find_cases`\nDiscover cases you don't have a court code or full case number for. Pass a party/company name, partial case number, or free-text keywords. The tool automatically picks the best search endpoint:\n\n- **Party/title search** — fast, free, good for company or person names\n- **Case number search** — resolves partial or ambiguous numbers\n- **Keyword search** (`search-filings`) — full-text across CourtAPI's filing repository; costs 1 API call per 25 results returned\n\nReturns `court_code` + `case_number` pairs needed by all other tools.\n\n### `get_case`\nGet all metadata for a known case: title, chapter, judge, key dates (filed/closed/discharged), assets, liabilities, and the `menu` object. The `menu` has one entry per sub-resource (dockets, claims, parties, etc.) with a `modified` timestamp — `null` means that resource has never been purchased from PACER.\n\nAlways call this first after finding a case to check what data is already available. Free unless `include_live_pacer=true`.\n\n### `get_dockets`\nGet the docket sheet — all filings in chronological order with dates, descriptions, and attached document info. Supports keyword search and date/number range filtering.\n\nTwo useful fields on every docket entry:\n- **`binder.documents`** — pre-fetched document metadata including `is_cached` and `download_cost` for each PDF, so you can check availability without a separate documents API call.\n- **`annotations`** — key dates extracted from docket text (deadlines, hearings, etc.) with `key_phrase`, `datetime`, and `time_zone`. Useful for building calendar integrations without parsing docket text.\n\nWhen calling with `include_live_pacer=true` to buy a fresh docket sheet from PACER, always pass `date_filed_from` to limit the purchase to entries newer than what CourtAPI already has. Omitting it buys the entire docket history — expensive for active cases.\n\n### `get_document`\nGet a PDF attached to a docket entry. Checks the cache first:\n- `is_cached=true` or `download_cost=\"0.00\"` → returns `download_url`, `preview_url`, and `ocr_link` at no cost\n- Not cached + `purchase=false` (default) → returns cost info so you can decide before spending\n- Not cached + `purchase=true` → buys from PACER, stores it, returns `download_url` + PACER `receipt`\n\n`docket_seq` comes from docket entries (e.g. `\"42.00000\"`). `part` defaults to 1 (main document); exhibits and attachments have higher part numbers.\n\nOnce purchased, the document is cached — all subsequent GETs are free.\n\n### `get_claims`\nGet the bankruptcy claims register — all proofs of claim filed by creditors, with amounts (filed/allowed/paid), claim type, creditor names, and filing dates. Essential for Chapter 11 creditor analysis.\n\nFilter by `claim_type` (secured, unsecured, priority, admin, etc.) and sort by claim number, filing date, or amendment date.\n\n### `get_parties`\nGet all parties in a case (debtors, creditors, plaintiffs, defendants, trustees) and optionally their attorneys with firm name, contact info, and bar number. Attorney records return `null` (not an error) when they haven't been purchased for this case — use `include_attorneys=false` to suppress the attorney fetch.\n\nUseful for conflicts checks, service lists, and identifying who is involved in a case.\n\n### `get_creditors`\nGet scheduled creditors from bankruptcy Schedules D/E/F. This is different from `get_claims` — creditors listed here may not have filed a proof of claim. Use both to get a complete creditor picture.\n\n### `ncl_search`\nSearch PACER's National Case Locator across all federal courts at once. More comprehensive than `find_cases` for party name searches because it queries PACER directly. Costs PACER credits.\n\nSupports: name searches, SSN/TIN lookups (with last name), case number, chapter, court, and date range filters. Paginate with `search_id` from the previous response.\n\n### `list_courts`\nList all ~200 PACER courts with their court codes and names. Filter by type: `bankruptcy`, `district`, or `appellate`.\n\nCommon codes: `nysbke` (NY Southern Bankruptcy), `debke` (Delaware Bankruptcy), `ilnbke` (IL Northern Bankruptcy), `cacdbe` (CA Central Bankruptcy), `txnbke` (TX Northern Bankruptcy).\n\n### `get_pacer_credentials`\nManage PACER credentials stored in CourtAPI. PACER credentials are required before any `include_live_pacer=true` call.\n\n| `action` | What it does |\n|---|---|\n| `check` | Show the stored PACER username (password not returned) |\n| `set` | Store `pacer_user` + `pacer_pass` (validates against PACER by default) |\n| `validate` | Test credentials against PACER without storing |\n| `delete` | Remove stored credentials |\n\n---\n\n## Understanding costs\n\nCourtAPI has two independent cost layers:\n\n**CourtAPI API credits** — charged by your CourtAPI plan. Free for: case GET lookups, party/title searches, docket GETs from cache, document GETs from cache. Costs 1 call per 25 results for keyword search (`search-filings`).\n\n**PACER fees** — charged by the US federal courts per page. Only incurred when:\n- `include_live_pacer=true` on dockets, claims, creditors, or case refresh\n- `purchase=true` on `get_document`\n\n`download_cost=\"0.00\"` means a document is cached and free to retrieve. Always check before purchasing.\n\n---\n\n## Case number format\n\nCourtAPI requires **long-form PACER case numbers**. PACER often shows short forms in its UI (e.g. `14-10557`) but the API always needs the full form.\n\n**Non-appellate courts (district, bankruptcy):**\n```\nO:YY-TT-NNNNN\n```\n- `O` — office/division number (e.g. `1`, `2`, `3`)\n- `YY` — two-digit filing year\n- `TT` — case type: `bk` bankruptcy, `cv` civil, `cr` criminal, `ap` adversary proceeding\n- `NNNNN` — sequence number\n\nExample: `1:14-bk-10557` (not `14-10557`)\n\n**Appellate courts:**\n```\nYY-NNNNN\n```\nExample: `23-1234`\n\nIf PACER shows a short form, use `find_cases` to resolve it. Always pair a case number with its `court_code` — the same sequence number can exist in multiple courts.\n\n---\n\n## PACER screenshots on updates\n\nWhen `get_dockets` or `get_claims` fetches live data from PACER (`include_live_pacer=true`), the response includes `links.screenshot.pdf.href` — a link to a PDF screenshot of the actual PACER page that was fetched. Useful for audit and compliance verification.\n\n---\n\n## License\n\nMIT — © CourtDrive. See [courtapi.com](https://www.courtapi.com) for API terms.\n","readmeFilename":"README.md"}