A side-by-side look at the Bankruptcy Observer and CourtAPI — Federal Court Data MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Bankruptcy Observer for legal work over a hosted endpoint; choose CourtAPI — Federal Court Data for legal as a local process. You can also run both side by side in one mcpServers block.
search_bankruptcy_cases_tool, get_case_by_ein_tool, get_case_by_case_number_tool.COURTAPI_APP_ID, COURTAPI_APP_KEY, COURTAPI_BASE_URL.find_cases, get_case, get_dockets.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Legal | Legal |
| Quality signal | 57/100 · Good | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Remote HTTP/SSE | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | COURTAPI_APP_IDCOURTAPI_APP_KEYCOURTAPI_BASE_URL |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 1 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 18 | 10 |
| Full listing | View Bankruptcy Observer | View CourtAPI — Federal Court Data |
search_bankruptcy_cases_toolSearch US business bankruptcy cases by debtor name. Individual debtors and adversary proceedings (lawsuits) are omitted unless include_individuals or include_adversary is true. Case numbers are shortCaseNumber. FREE (exact/prefix, no *): limited fields, no auth. Use *term for contains (paid). Optional court filter. total is the full match count; pass skip for the next page.get_case_by_ein_toolLook up case by debtor EIN. Paid (full data + optional last filing date). live_update (subscribers) triggers one-time source refresh.get_case_by_case_number_toolLook up case(s) by short case number (e.g. 26-10543). FREE for 7-digit format (limited fields, all courts). Paid: full + live_update + court filter.get_cases_by_industry_toolUS business bankruptcy cases by industry label or key (Hotels, Retail, real-estate, etc.). Individual debtors and adversary proceedings (lawsuits) are omitted unless include_individuals or include_adversary is true. start_date and end_date are inclusive calendar days (YYYY-MM-DD). When a date is set, total is the full match count and skip (or offset) pages past limit (max 100). Paid.get_cases_by_naics_toolUS business bankruptcy cases by NAICS (2-4 digits). Individual debtors and adversary proceedings (lawsuits) are omitted unless include_individuals or include_adversary is true. start_date and end_date are inclusive calendar days (YYYY-MM-DD). When a date is set, total is the full match count and skip (or offset) pages past limit (max 100). Paid.get_cases_by_state_toolUS business bankruptcy cases by debtor state (2-letter). Individual debtors and adversary proceedings (lawsuits) are omitted unless include_individuals or include_adversary is true. start_date and end_date are inclusive calendar days (YYYY-MM-DD). When a date is set, total is the full match count and skip (or offset) pages past limit (max 100). Paid.get_cases_by_date_range_toolUS business bankruptcy cases filed in a date range (dateFiled). Individual debtors and adversary proceedings (lawsuits) are omitted unless include_individuals or include_adversary is true. Omitting both dates defaults to yesterday. start_date and end_date are inclusive calendar days (YYYY-MM-DD), including filings later that day. Case numbers are shortCaseNumber. total is the full match count, not the page size. limit is one page (max 500, default 100); pass skip or offset for the next page. has_more is true when more rows remain. Paid.get_docket_entries_toolDocket entries for a case, ordered by itemNumber ascending. Each entry includes the full PACER itemText (never sliced) and docket_id — call get_document_tool with that docket_id (no accept_charge) for an inline cost preview, then again with accept_charge: true to download the PDF. Pass simple_name (preferred, see list_monitored_cases_tool) or short_case_number / case_number (e.g. 26-42901; use court_state to disambiguate). Optional docket_id, item_number, or item_from/item_to to fetch specific entries. Single Case plan: monitored cases only. limit max 50 (default 25); pass skip (or offset, or 1-based page) to walk past the first block. A page may contain fewer than limit entries so every caption stays complete for MCP clients. Response includes total, skip, limit, returned, and has_more. Optional live_update refreshes from court sources first. Subscribers only.get_case_summary_toolPlain-English structured summary of one case: debtor, chapter, court, case number, key dates (filed, plan confirmed, discharged, closed), asset/liability ranges, nature of business, judge, and AI-extracted case profile data when available. Pass simple_name (preferred, see list_monitored_cases_tool) or a 7-digit case_number. Subscribers only.get_document_cost_toolPreview the cost to download a court filing PDF. Identify the entry with docket_id (preferred) or simple_name + item_number (legacy connectors). Does not pull the document and does not charge. Same preview as get_document_tool when accept_charge/download is omitted. Confirm the cost with the user before download. Cost is $0 if already purchased, or if the PDF is already in our library and the plan has flagFreeLibrary. Free-page allowances (if any) come from plan limitDocuments and apply to billable pulls. Returns page_count, chargeable_pages, cost, plan_limit_documents, pages_used_this_period, free_pages_remaining, document_in_library, and already_owned.get_document_toolCourt filing PDF. Identify the entry with docket_id (preferred) OR simple_name + item_number (legacy cached connectors). Step 1: cost preview — omit accept_charge/download or set false. Step 2: after user confirms, call with accept_charge:true or download:true to purchase and download (signed URL). Returns docket_id in the preview so follow-up calls can use the hash. Pulls from PACER when needed.list_monitored_cases_toolList the cases on your BankruptcyObserver.com monitoring list (case_id, simple_name, name, chapter, court, case number, dateFiled, last docket date). Use get_docket_entries_tool for docket_id values passed to get_document_tool. Requires your MCP token to be linked to your subscriber account. Subscribers only.find_casesDiscover federal court cases you don't have the court+number for yet. Pass a party/company name, a (partial) case number, or free-text keywords. Returns court_code + case_number needed by all other tools. No PACER cost. Note: keyword search (search-filings) charges 1 CourtAPI API call per 25 results returned. Examples: query='Sbarro', query='1:14-bk', query='retail chapter 11 2026'.get_caseGet all metadata for a known case: title, chapter, judge, key dates (filed/closed/discharged), assets, liabilities, and links to sub-resources (dockets, claims, parties, etc.) with their last-modified timestamps. Always call this first after finding a case. The response includes a 'menu' object where each entry has a 'modified' timestamp (null = never purchased) showing what sub-resources are available. Free unless include_live_pacer=true.get_docketsGet the docket sheet for a case — all filings in chronological order with dates, descriptions, and attached document info (is_cached, download_cost). The header includes judge, attorneys, trustees, and 341 meeting date. Supports keyword search and date/number range filtering. Free unless include_live_pacer=true.get_documentGet a PDF attached to a docket entry. Always checks the cache first. If cached (is_cached=true), returns download_url + preview_url + ocr_link at no cost. If not cached and purchase=true, buys from PACER and returns download_url + receipt. If not cached and purchase=false (default), returns cost info so you can decide. docket_seq comes from docket entries (e.g. '42.00000'). part defaults to 1 (main doc).get_claimsGet the bankruptcy claims register — all proofs of claim filed by creditors, with amounts (filed/allowed/paid), claim type (secured/unsecured), creditor names, and filing dates. Essential for Chapter 11 analysis and creditor research. Supports keyword search and date/number range filtering.get_partiesGet all parties in a case (debtors, creditors, plaintiffs, defendants, trustees) and optionally their attorneys with firm name, contact info, and bar number. Useful for conflicts checks, service lists, and identifying who is involved.get_creditorsGet the creditor list for a bankruptcy case — all creditors scheduled in Schedules D/E/F, whether or not they filed a proof of claim. Different from get_claims (which shows filed proofs of claim).ncl_searchSearch PACER's National Case Locator across all federal courts at once. More comprehensive than find_cases for party name searches — queries PACER directly. Costs PACER credits. Returns up to ~50 cases per page; pass search_id + page to paginate. Use for: finding a person's cases across all courts, SSN lookups, cross-court party searches.list_courtsList all PACER courts with their court codes. Call this when you need a court_code and don't know it. Returns ~200 courts; use type to filter. Common codes: nysbke, debke, ilnbke, cacdbe, txnbke.get_pacer_credentialsCheck or update PACER credentials stored in CourtAPI. PACER credentials are required before any include_live_pacer=true call. action='check' → show stored username (password not returned). action='set' → store pacer_user + pacer_pass. action='validate' → test credentials without storing. action='delete' → remove stored credentials.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"bankruptcy-observer": {
"url": "https://mcp.bankruptcyobserver.com/mcp"
}
}
}
{
"mcpServers": {
"courtapi-federal-court-data": {
"command": "npx",
"args": [
"-y",
"@courtio/courtapi-mcp"
],
"env": {
"COURTAPI_APP_ID": "YOUR_COURTAPI_APP_ID_HERE",
"COURTAPI_APP_KEY": "YOUR_COURTAPI_APP_KEY_HERE",
"COURTAPI_BASE_URL": "YOUR_COURTAPI_BASE_URL_HERE"
}
}
}
}