Skip to the content.

Bankruptcy Observer — MCP

Public documentation for the Bankruptcy Observer Model Context Protocol server. It provides agent-first access to US business bankruptcy filings, dockets, court documents, case summaries, and monitoring workflows.

Website: bankruptcyobserver.com
MCP docs: mcp.bankruptcyobserver.com/docs
Subscribe: mcp.bankruptcyobserver.com/subscribe
Laravel controller: Laravel13/app/Http/Controllers/BKO/BkoMcpController.php

MCP endpoint

Transport Streamable HTTP (JSON-RPC 2.0 over HTTPS)
URL https://mcp.bankruptcyobserver.com/mcp
Auth Optional — free tier works without credentials; paid tools require a subscriber MCP token
Server name bko-mcp
Version 1.5.0

Send a standard MCP session: initialize → notifications/initialized (optional) → tools/list → tools/call.

Authentication

Website subscribers get MCP access included. Tokens are visible in the subscriber dashboard at /subscriber/mcp-setup. New users can also call list_plans_tool and purchase_plan_tool without auth to start Stripe checkout.

OAuth sign-in on Bankruptcy Observer accepts the account email and password, then an Allow / Deny step. ?mode=token still accepts a pasted API token in one step, which is what existing Claude and ChatGPT clients use. TrollerBk stays on the token paste. redirect_uri must exactly match a URI registered for that client. Dynamic registration rejects a non-https URI, and a Google host that is not an official oauth-redirect prefix with an /r/ or /a/ path.

Google clients keep the same refresh token and receive a new access token; the refresh expiry slides about 180 days. Other clients still rotate the refresh token. Revoking a refresh token also revokes its access token.

EIN lookup, case-number lookup, and docket lookup read the stored record. They do not take live_update. Court refresh is refresh_docket_tool and get_case_status_tool. get_document_cost_tool is preview only and does not take accept_charge or download. Those flags remain on get_document_tool. check_subscription_tool takes no arguments.

Domain verification is GET or HEAD https://mcp.bankruptcyobserver.com/.well-known/google-connected-apps. Privacy: bankruptcyobserver.com/privacy. Terms: bankruptcyobserver.com/legal.

Subscription tiers

Tier Access
Anonymous Free-shape lookups only (exact name, 7-digit case number)
Single-Case Agent Case tools scoped to monitored cases on your BKO account
Full Access Agent All search tools plus full case/docket/document access

Tools

Free / lookup tools

search_bankruptcy_cases_tool

Search US business bankruptcy cases by debtor name.

Parameter Type Description
search_term string Debtor name (prefix or *contains for paid wildcard search)
limit integer Max results (1–100); default 25
skip integer Pagination offset
court string Court name as returned on a case, for example Delaware or Texas Southern
court_state string Two-letter state to filter court name

Free: exact/prefix match without *. Paid: *term contains search and full fields.

get_case_by_case_number_tool

Look up case(s) by short case number (e.g. 26-10543).

Parameter Type Required Description
short_case_number string yes Short case number
court string no Court name as returned on a case, for example Delaware
court_state string no Two-letter state

Free: 7-digit format returns limited fields across all courts. Paid: full data and court filters. This lookup does not contact the court.

get_case_by_ein_tool

Look up cases by debtor EIN.

Parameter Type Required Description
debtor_ein string yes Employer Identification Number
include_last_filing boolean no Include lastFilingDate from docket

get_cases_by_industry_tool

Cases by industry label or key (Hotels, Retail, real-estate, etc.).

Parameter Type Required Description
industry string yes Industry label or key
limit integer no Max results
start_date string no YYYY-MM-DD
end_date string no YYYY-MM-DD

get_cases_by_naics_tool

Cases by NAICS code (2–4 digits).

Parameter Type Required Description
naics string yes NAICS code
limit integer no Max results
start_date string no YYYY-MM-DD
end_date string no YYYY-MM-DD

get_cases_by_state_tool

Cases by debtor state.

Parameter Type Required Description
state string yes Two-letter state
limit integer no Max results
start_date string no YYYY-MM-DD
end_date string no YYYY-MM-DD

get_cases_by_date_range_tool

Cases filed in a date range on dateFiled. Omitting both dates defaults to yesterday.

Parameter Type Description
start_date string YYYY-MM-DD
end_date string YYYY-MM-DD
limit integer Max results

Case intelligence tools (subscribers)

get_docket_entries_tool

Docket entries for a case, ordered by itemNumber ascending. Each entry includes the full PACER itemText (never sliced). The response identifies the case by simpleName and each filing by itemNumber. It does not include caseId or docketId. limit is capped at 50; use skip (or offset, or 1-based page) to walk past the first block. Optional item_number or item_from/item_to fetch specific entries. docket_id is accepted only as an input filter when the caller already has one. A page may contain fewer than limit entries so every caption stays complete for MCP clients. The response includes total, skip, limit, returned, and has_more.

Parameter Type Description
simple_name string Case simpleName (preferred). simpleName is accepted as an alias
case_number string Short or full case number
short_case_number string Alias for case_number
court string Court name as returned on a case, for example Delaware
court_state string Two-letter state to disambiguate
docket_id string Optional input filter for one entry the caller already knows. Not returned
item_number integer Return only this docket item number (full itemText)
item_from integer Filter to itemNumber >= this value
item_to integer Filter to itemNumber <= this value
limit integer Max entries (default 25, max 50). Captions are never cut; a page may return fewer when text is long
skip integer Number of entries to skip (default 0). Example: limit=50, skip=50 returns items 51–100
offset integer Alias for skip
page integer 1-based page; equivalent to skip=(page-1)*limit. Ignored if skip or offset is set

list_monitored_cases_tool

List cases on your BankruptcyObserver.com monitoring list. No parameters.

add_monitored_case_tool

Add a case to your monitoring list (hourly court checks, daily docket updates).

Parameter Type Description
simple_name string Case simpleName
case_number string 7-digit short case number alternative
court string Court name as returned on a case, for example Delaware
court_state string Two-letter state to disambiguate

get_case_status_tool

Refresh one case from the court case summary and return the dates the court has on file. This calls the court, so use it for one case at a time. Single Case plan: monitored cases only.

The response identifies the case by simpleName and includes name, chapter, and dates. dates contains only the fields that have a value:

Date field Meaning
dateFiled Date filed
dateLastFiling Date of the latest filing
dateConverted Date the case converted
datePlanConfirmed Date the plan was confirmed
dateDischarged Debtor discharge date
dateDischargedJoint Joint debtor discharge date
dateDismissed Debtor dismissal date
dateDismissedJoint Joint debtor dismissal date
dateTerminated Date terminated
dateClosed Date closed
dateUpdated When this summary was saved

Each date is YYYY-MM-DD. dateUpdated is the calendar date the summary was saved.

Parameter Type Description
simple_name string Case simpleName. simpleName is accepted as an alias
case_number string 7-digit short case number
court string Court name as returned on a case, for example Delaware
court_state string Two-letter state

refresh_docket_tool

Request an immediate docket refresh from court sources.

Parameter Type Description
simple_name string Case simpleName
case_number string 7-digit short case number
court string Court name as returned on a case, for example Delaware
court_state string Two-letter state

get_recent_developments_tool

Docket entries since a date (default: last 7 days) for one monitored case or all monitored cases.

Parameter Type Description
simple_name string Optional; omit for all monitored cases
since_date string YYYY-MM-DD; default 7 days ago
limit integer Max entries (default 100, max 250)

Document tools (subscribers)

Recommended flow:

  1. get_docket_entries_tool → simpleName and itemNumber
  2. get_document_tool with simple_name and item_number → cost preview
  3. User confirms → the same arguments plus accept_charge: true → signed PDF URL

get_document_cost_tool

Preview cost to download a court filing PDF. Does not pull or charge.

get_document_tool

Court filing PDF. Omit accept_charge/download for preview; set accept_charge: true or download: true after user confirms.

get_document_cost_tool accepts simple_name, item_number, and docket_id only. accept_charge and download belong on get_document_tool.

Parameter Type Description
simple_name string Case simpleName. Use with item_number
item_number integer Docket item number. Use with simple_name
docket_id string Optional, when the caller already has a docket entry id. Responses still identify the filing by simpleName and item_number
accept_charge boolean get_document_tool only. true after the user approves the cost
download boolean get_document_tool only. Alias for accept_charge: true

Note: get_document_cost is a dispatch alias of get_document_cost_tool but is filtered out of tools/list to avoid duplicate catalog entries.

Meta / account tools

list_plans_tool

List available BKO subscription plans with pricing and agent tiers. No auth required.

purchase_plan_tool

Get a Stripe checkout URL for a plan. No auth required.

Parameter Type Required Description
plan_id string yes Plan ID or Stripe price ID from list_plans_tool
email string no Email to prefill on checkout

check_subscription_tool

Check the signed-in subscriber plan and remaining quota. No parameters. A missing bearer token returns a sign-in-required tool result.

MCP Registry

Listed (or publishable) in the official MCP Registry as com.bankruptcyobserver/mcp.

Example: Cursor / IDE config

Free tier (no headers):

{
  "mcpServers": {
    "bankruptcy-observer": {
      "type": "streamableHttp",
      "url": "https://mcp.bankruptcyobserver.com/mcp"
    }
  }
}

Subscriber:

{
  "mcpServers": {
    "bankruptcy-observer": {
      "type": "streamableHttp",
      "url": "https://mcp.bankruptcyobserver.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_BKO_MCP_TOKEN"
      }
    }
  }
}

License and data

Bankruptcy data is aggregated from public court records. Access and use are subject to Bankruptcy Observer terms of service and subscriber agreements.