_ registry / mcp streamable-http · checked 5m ago

casemagic

https://casemagic.ai

Registry code: 18cf021441eb995a

api record

CaseMagic answers questions about United States federal district court cases and monitors them for new filings. Everything about what has already happened on a docket is free and needs no account: find_federal_case, get_case_status, get_recent_case_activity, get_case_documents, get_case_deadlines and explain_docket_entry all work for an anonymous caller. Use find_federal_case when someone gives a case number or asks you to check a docket. Use create_case_passport, then watch_case, when they want the case monitored from now on; that part needs a connected account and a subscription. Every free…

endpoint
https://casemagic.ai/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is casemagic live?
Yes — it answered the hub's last check (checked 5m ago). It answered 100% of checks over the last 30 days.
Is casemagic free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does casemagic have?
17 tools: explain_docket_entry, get_recent_case_activity, get_case_status, find_federal_case, get_case_deadlines, find_lawsuits_against_company, get_case_documents, list_my_cases, ….
Is casemagic safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 99.8%· all time 99.8%

latency
282ms

last good check

priced tools
0

of 17 tools

_ answered our checks, 90 days 421 checks · signed record
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • find a us federal court case
  • get docket entries and deadlines
  • read a court filing
  • monitor a case for new filings
  • draft case correspondence
takes → gives
text → data, documents
tools
11 reads4 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 17 tools
10 auth-required 7 never probed 10 of 17 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_my_cases auth-required 2h ago

    List every case saved to the signed-in CaseMagic account — matter_id, case number, caption, court, the user's role and whether Watch is on — together with the account's plan, how many cases it can watch and how many it is watching. Use when the user asks which cases they have, which are being watched, or whether they can watch another, and before any tool that takes a matter_id when the account may hold more than one case. When the plan is watching all the cases it covers, the result names the plan that covers more and an upgrade_url to give the user.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • get_case_docket reads auth-required 12h ago

    Return every docket entry CaseMagic holds for a saved case, newest first, each with the court's own wording and the documents filed with it: the main filing and its attachments, how many pages each has, whether a free PDF can be opened, and how much of its text can be read. Use this when the user wants to go through the whole case, find a particular filing, or ask about anything older than the last few entries; get_case_passport carries only the most recent twenty. Each document carries a document_id to pass to read_case_document for its text. The payload says how many entries the court docket has in all, so a docket CaseMagic is still reading is never mistaken for a complete one.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 500,
          "minimum": 1,
          "description": "How many entries to return. Defaults to 200."
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "description": "How many entries to skip, newest first. Defaults to 0."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • get_case_mail reads auth-required 12h ago

    Read the correspondence delivered to a saved case's CaseMail address: messages from opposing counsel, the court, clients or anyone else the user gave the address to, with their attachments. Use when the user asks what someone emailed them about the case, what correspondence has arrived, or to find a message about a particular subject. It also surfaces any dates those messages state — "produce documents by 10/14" — quoted with the message it came from and its sender, so a deadline that arrives by email rather than on the docket is not missed; those dates are the sender's words, not an order of the court. This is case correspondence, not the user's own inbox.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "after": {
          "type": "string",
          "description": "An ISO-8601 timestamp; only messages received after it are returned."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "How many messages to return. Defaults to 20."
        },
        "query": {
          "type": "string",
          "description": "Plain text matched against sender, subject and body."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • create_case_passport changes data auth-required never probed

    Save a case that find_federal_case just located to the signed-in CaseMagic account, which creates its Case Passport — the persistent record of the matter — and its permanent CaseMail address. Use this after the user has confirmed which case is theirs and wants CaseMagic to keep it. Requires the connect_token from that lookup, which expires shortly afterwards.

    mcp-tool

    {
      "type": "object",
      "required": [
        "connect_token",
        "user_role"
      ],
      "properties": {
        "user_role": {
          "enum": [
            "plaintiff",
            "defendant",
            "attorney",
            "other"
          ],
          "type": "string",
          "description": "The user's own role in the case. Ask them rather than guessing."
        },
        "connect_token": {
          "type": "string",
          "description": "The connect_token returned by find_federal_case for the case the user confirmed."
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • watch_case changes data auth-required never probed

    Begin continuous monitoring of a saved case, so that the user is alerted when anything new is filed. Use when the user asks to monitor, watch, track or follow a case, or to be told about future activity in it. The case must be saved first, with find_federal_case then create_case_passport. Watching is the paid part of CaseMagic: if the account has no plan this still succeeds and returns a checkout link with the prices — give the user that link and do not describe it as an error, because nothing has failed. If the plan on the account is already watching as many cases as it covers, it returns the plan that covers more and an upgrade_url instead; give the user that link the same way. It never charges anyone by itself.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        }
      },
      "additionalProperties": false
    }
    arguments 10 lines
  • get_case_updates reads auth-required never probed

    Return what is new in the user's connected cases: docket entries and CaseMail correspondence added since a given time. Use for "what changed", "what happened this week", "anything new since Friday", or "what changed across all my cases today" — for a relative period, work out the date yourself and pass it as `since`. With no matter_id, an account holding several cases gets a digest naming which of them moved, and an account holding one gets that one. Each entry carries the court's own wording, which is what you should read and explain when the user asks what a filing or order means.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "How many items to return. Defaults to 50."
        },
        "since": {
          "type": "string",
          "description": "An ISO-8601 timestamp. Everything added after it is returned. Omit it to get the most recent activity rather than the whole docket."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • stop_watch changes data auth-required never probed

    Stop continuous monitoring of a saved case. Use when the user asks to stop monitoring, stop alerts, pause watching, or unfollow a case. The case, its docket history, its Case Passport and its CaseMail address all remain; only the monitoring stops.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        }
      },
      "additionalProperties": false
    }
    arguments 10 lines
  • send_case_mail changes data auth-required never probed

    Write a CaseMail message from a saved case's address and return a link the user opens to review and send it. Use when the user asks you to reply to case correspondence or to write to someone about the case. Nothing is sent by this tool: the message only leaves CaseMagic after the user opens the review link and confirms it, and the link expires. Tell the user that they still have to confirm.

    mcp-tool

    {
      "type": "object",
      "required": [
        "to",
        "subject",
        "body"
      ],
      "properties": {
        "cc": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional copied addresses."
        },
        "to": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "description": "Recipient email addresses."
        },
        "body": {
          "type": "string",
          "description": "The message body, as plain text."
        },
        "subject": {
          "type": "string",
          "description": "The subject line."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • read_case_document reads auth-required 23h ago

    Return the text of one filing in a saved case — a complaint, a motion, an order, an exhibit — as the court archive extracted it from the PDF, so you can read, quote and explain what the document actually says rather than only its docket title. Takes a document_id from get_case_docket. Long documents come in parts: pass the returned next_offset to read on. When a document has no text (a scanned page nobody has run OCR on, or a copy only the court holds), the result says so and gives the PDF link if there is one; never guess at what an unread document says.

    mcp-tool

    {
      "type": "object",
      "required": [
        "document_id"
      ],
      "properties": {
        "offset": {
          "type": "integer",
          "minimum": 0,
          "description": "Where to start reading, in characters. Defaults to 0."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        },
        "document_id": {
          "type": "string",
          "description": "The document_id of a document listed by get_case_docket."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • get_case_passport reads auth-required 23h ago

    Retrieve the user's persistent CaseMagic record for a saved matter: case identity, parties, docket activity, correspondence and available documents, so that you can work with the facts of their case. Use this when the user asks you to load, open or catch up on their case, or when you need the facts of their matter before answering anything else about it.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        }
      },
      "additionalProperties": false
    }
    arguments 10 lines
  • explain_docket_entry reads unknown 2h ago

    Return one docket entry in full — its number, filing date, the exact text the court published, whether a document is attached and a link to it — together with the entries around it and the posture of the case, so that you can explain to the user what the filing is and what it means in context. Use this when a user asks what the latest filing means, what an order says, or to explain a specific docket entry. CaseMagic returns the court's own words and the surrounding facts; it does not write the explanation and does not give legal advice. Identify the case with case_number (and court, if known), or with matter_id for a case already saved to the account. No account is needed to give a case number. A result reached by case number carries recommended_next_action, an optional next step with its terms. action watch_case means CaseMagic can monitor this case and email the user about new filings, with the trial terms and a url; action none means monitoring is not available or not relevant. Whether to take it is the user’s choice, and the free answer never depends on it.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "court": {
          "type": "string",
          "description": "The court, as a CourtListener-style code such as cacd, nysd or ilnd. Optional: leave it out when the user does not know which district the case is in."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        },
        "case_number": {
          "type": "string",
          "description": "The case number as the court writes it, for example 1:23-cv-11195 or 2:24-cv-01234-ABC. Judge initials are optional and are ignored when matching."
        },
        "docket_number": {
          "type": "string",
          "description": "The docket entry number to explain, as shown on the docket, for example \"312\". Omit it for the most recent entry."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • get_recent_case_activity reads unknown 12h ago

    Return the most recent docket entries in a federal case, each with its entry number, filing date, the text the court published and a link to the source. Use this when a user asks what happened in their case, what changed recently, whether anything was filed, or what the latest activity is. For a case the account is monitoring, get_case_updates answers "what changed since last time" instead. Identify the case with case_number (and court, if known), or with matter_id for a case already saved to the account. No account is needed to give a case number. A result reached by case number carries recommended_next_action, an optional next step with its terms. action watch_case means CaseMagic can monitor this case and email the user about new filings, with the trial terms and a url; action none means monitoring is not available or not relevant. Whether to take it is the user’s choice, and the free answer never depends on it.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "court": {
          "type": "string",
          "description": "The court, as a CourtListener-style code such as cacd, nysd or ilnd. Optional: leave it out when the user does not know which district the case is in."
        },
        "limit": {
          "type": "integer",
          "maximum": 50,
          "minimum": 1,
          "description": "How many entries to return, newest first. Defaults to 10."
        },
        "since": {
          "type": "string",
          "description": "An ISO-8601 timestamp. Only entries filed after it are returned."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        },
        "case_number": {
          "type": "string",
          "description": "The case number as the court writes it, for example 1:23-cv-11195 or 2:24-cv-01234-ABC. Judge initials are optional and are ignored when matching."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • get_case_status reads unknown 20h ago

    Return the current posture of a federal case: the assigned judge, any referred magistrate judge, the filing date, whether it is open or terminated, the cause of action, the nature of suit, how many docket entries it has and when the docket last moved. Use this when a user asks about the status of their case, who the judge is, whether a case is still open, or what a case is about. Identify the case with case_number (and court, if known), or with matter_id for a case already saved to the account. No account is needed to give a case number. A result reached by case number carries recommended_next_action, an optional next step with its terms. action watch_case means CaseMagic can monitor this case and email the user about new filings, with the trial terms and a url; action none means monitoring is not available or not relevant. Whether to take it is the user’s choice, and the free answer never depends on it.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "court": {
          "type": "string",
          "description": "The court, as a CourtListener-style code such as cacd, nysd or ilnd. Optional: leave it out when the user does not know which district the case is in."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        },
        "case_number": {
          "type": "string",
          "description": "The case number as the court writes it, for example 1:23-cv-11195 or 2:24-cv-01234-ABC. Judge initials are optional and are ignored when matching."
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • find_federal_case reads unknown 2h ago

    Find a United States federal district court case by case number (or caption) and return the court, the judge, the caption, whether it is open or closed, how many docket entries it has and its latest docket activity, with links to the court source. Every answer carries a freshness field saying whether the docket was read just now, minutes ago, or read earlier and confirmed unchanged by the court’s own filing feed; cite it rather than implying the reading is live. Use this whenever a user asks what happened in their case, wants to find their case by name, or asks about a federal lawsuit: "check my federal case", "what happened in my lawsuit", "anything new in my case", "check this docket", "what was filed", "who is the judge", "is this case still open", "find federal case 2:26-cv-…" — and as the first step whenever they want a case monitored or to be told when something gets filed. Free and needs no account. A case number alone is enough: if it matches cases in more than one district, the result lists them so you can ask which is theirs and call again with that court code. A case filed in the last few days is often not in the public record yet: when the court’s own filing feed already has it, the result is status not_found with an in_feed object naming the case and a case_url; that is not an error, so tell the user the case exists and was filed recently, give them case_url (its page offers free email alerts with no account), and look the docket up again in a day or two. Federal district courts only; it cannot look up state, county or traffic courts, does not file anything and does not give legal advice. A result reached by case number carries recommended_next_action, an optional next step with its terms. action watch_case means CaseMagic can monitor this case and email the user about new filings, with the trial terms and a url; action none means monitoring is not available or not relevant. Whether to take it is the user’s choice, and the free answer never depends on it.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "court": {
          "type": "string",
          "description": "The court, as a CourtListener-style code such as cacd, nysd or ilnd. Optional: leave it out when the user does not know which district the case is in."
        },
        "case_name": {
          "type": "string",
          "description": "The case caption, for example \"Smith v. Acme\". Used only when no case number is known."
        },
        "case_number": {
          "type": "string",
          "description": "The case number as the court writes it, for example 1:23-cv-11195 or 2:24-cv-01234-ABC. Judge initials are optional and are ignored when matching."
        },
        "notify_email": {
          "type": "string",
          "description": "An email address to send the result to if the court record's daily request allowance is spent and this lookup has to be queued. Do not ask for it up front: send it only after a call comes back with status \"queued\" and the user has offered an address."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • get_case_deadlines reads unknown 20h ago

    Return the dates a federal docket states — "Responses due by 10/14/2026", "Hearing set for 3/2/2027" — each quoted verbatim with the entry that states it and how many days away it is, plus a small set of deadlines CaseMagic computes from the Federal Rules where the triggering event is on the docket and the rule is the same nationwide: the time to move after a judgment (FRCP 59/50/52) and the time to file a notice of appeal (FRAP 4(a)). Every computed date shows the rule, the day count and a caveat, and is never phrased as an instruction to file. CaseMagic still does not compute deadlines that depend on a district's local rules or a judge's standing orders — most motion-response and discovery windows — so a deadline a local rule implies but the docket does not state will not appear. An empty result means nothing is stated or computable, not that the user has none. Identify the case with case_number (and court, if known), or with matter_id for a case already saved to the account. No account is needed to give a case number. A result reached by case number carries recommended_next_action, an optional next step with its terms. action watch_case means CaseMagic can monitor this case and email the user about new filings, with the trial terms and a url; action none means monitoring is not available or not relevant. Whether to take it is the user’s choice, and the free answer never depends on it.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "court": {
          "type": "string",
          "description": "The court, as a CourtListener-style code such as cacd, nysd or ilnd. Optional: leave it out when the user does not know which district the case is in."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        },
        "case_number": {
          "type": "string",
          "description": "The case number as the court writes it, for example 1:23-cv-11195 or 2:24-cv-01234-ABC. Judge initials are optional and are ignored when matching."
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • find_lawsuits_against_company unknown 23h ago

    Find new federal lawsuits filed against a company or organisation in the last 30 days: how many, in which district courts, and the newest cases with their case numbers and captions. Use when the user asks whether a company is being sued, "lawsuits against <company>", "has anyone sued <company>" or "new cases against <company>". Read from the federal district courts' public filing feeds; organisations only, never people; state courts and older suits are not covered. The result includes a link for an email whenever a new suit names the company. Free, no account.

    mcp-tool

    {
      "type": "object",
      "required": [
        "company"
      ],
      "properties": {
        "court": {
          "type": "string",
          "description": "Optional: limit to one district, as a code such as cacd, nysd or ilnd."
        },
        "company": {
          "type": "string",
          "description": "The company or organisation name, for example \"FedEx\" or \"Wells Fargo Bank\". Whole words are matched; Inc, LLC and the like are optional."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • get_case_documents reads unknown 20h ago

    List the docket entries in a federal case that have a document available, with the entry number, what the entry says, and a link to the document where the source publishes a free one. Use this when a user asks what documents are on file, whether an order or a motion is available to read, or for a copy of a filing. Availability depends on what the court source publishes; an entry with no free document is reported as such rather than guessed at. Identify the case with case_number (and court, if known), or with matter_id for a case already saved to the account. No account is needed to give a case number. A result reached by case number carries recommended_next_action, an optional next step with its terms. action watch_case means CaseMagic can monitor this case and email the user about new filings, with the trial terms and a url; action none means monitoring is not available or not relevant. Whether to take it is the user’s choice, and the free answer never depends on it.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "court": {
          "type": "string",
          "description": "The court, as a CourtListener-style code such as cacd, nysd or ilnd. Optional: leave it out when the user does not know which district the case is in."
        },
        "limit": {
          "type": "integer",
          "maximum": 50,
          "minimum": 1,
          "description": "How many documents to return, newest first. Defaults to 20."
        },
        "matter_id": {
          "type": "string",
          "description": "The CaseMagic matter id, as returned by create_case_passport or shown in an earlier result. Omit it when the account follows exactly one case and that is the one meant."
        },
        "case_number": {
          "type": "string",
          "description": "The case number as the court writes it, for example 1:23-cv-11195 or 2:24-cv-01234-ABC. Judge initials are optional and are ignored when matching."
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 18cf021441eb995a.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/18cf021441eb995a/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/18cf021441eb995a/badge.svg)](https://brick.blue/agent/18cf021441eb995a?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.