CaseMagic — Court Case Monitor
REMOTE · CASEMAGIC.AI · SCANNED SEP 28
Watch US federal court cases for new filings and keep a Case Passport any AI assistant can load.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3920 tokens (~261/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the CaseMagic — Court Case Monitor MCP server?
CaseMagic — Court Case Monitor is a hosted endpoint at https://casemagic.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · casemagic.ai
claude mcp add --transport http sustany-casemagic 'https://casemagic.ai/mcp'
{
"mcpServers": {
"sustany-casemagic": {
"url": "https://casemagic.ai/mcp"
}
}
} {
"servers": {
"sustany-casemagic": {
"type": "http",
"url": "https://casemagic.ai/mcp"
}
}
} [mcp_servers.sustany-casemagic] url = "https://casemagic.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sustany-casemagic": {
"type": "remote",
"url": "https://casemagic.ai/mcp",
"enabled": true
}
}
} openclaw mcp add sustany-casemagic --url 'https://casemagic.ai/mcp' --transport streamable-http
mcp_servers:
sustany-casemagic:
url: "https://casemagic.ai/mcp" {
"McpServers": {
"sustany-casemagic": {
"Transport": "http",
"Url": "https://casemagic.ai/mcp"
}
}
} assistant mcp add sustany-casemagic -t streamable-http -u 'https://casemagic.ai/mcp'
{
"mcpServers": {
"sustany-casemagic": {
"type": "http",
"url": "https://casemagic.ai/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Sept 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Schema quality: 3417 → 3920 ▼ functional
- New tool “get_case_docket” functional
- New tool “read_case_document” functional
- 26 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 68
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 28 Sept 2026 · Probed https://casemagic.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=casemagic.ai | CN=YE2,O=Let's Encrypt,C=US | 18 Sept 2026 | 17 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 6e1fc45990a03105d2ef8a79db844e24386 |
| SANs: casemagic.ai, www.casemagic.ai | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of casemagic.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| casemagic.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| content-security-policy | upgrade-insecure-requests |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://casemagic.ai/mcp | Verified | 200 | |
| http (plaintext) | http://casemagic.ai/mcp | HTTPS enforced | 301 | https://casemagic.ai/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
create_case_passport Save a case to the account ~124
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.
| Name | Type | Req | Description |
|---|---|---|---|
| connect_token | string | yes | The connect_token returned by find_federal_case for the case the user confirmed. |
| user_role | string | yes | The user's own role in the case. Ask them rather than guessing. |
No output schema declared.
No examples provided.
explain_docket_entry Get the full text of a docket entry ~333
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.
| Name | Type | Req | Description |
|---|---|---|---|
| case_number | string | – | 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. |
| court | string | – | 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. |
| docket_number | string | – | The docket entry number to explain, as shown on the docket, for example "312". Omit it for the most recent entry. |
| matter_id | string | – | 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. |
No output schema declared.
No examples provided.
find_federal_case Find a federal court case ~383
Find a United States federal court case and return the court, the judge, the case status and its latest docket activity. 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, what was filed, whether the other side responded, to check or look up a docket or lawsuit, or to find their case by name — and as the first step whenever they want a case monitored. 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. Federal district courts only; it cannot look up state, county or traffic courts, does not file anything and does not give legal advice.
| Name | Type | Req | Description |
|---|---|---|---|
| case_name | string | – | The case caption, for example "Smith v. Acme". Used only when no case number is known. |
| case_number | string | – | 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. |
| court | string | – | 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. |
| notify_email | string | – | 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 s… |
No output schema declared.
No examples provided.
get_case_deadlines Get deadlines and dates the docket sets ~389
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.
| Name | Type | Req | Description |
|---|---|---|---|
| case_number | string | – | 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. |
| court | string | – | 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 | string | – | 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. |
No output schema declared.
No examples provided.
get_case_docket Read the whole docket of a saved case ~236
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | How many entries to return. Defaults to 200. |
| matter_id | string | – | 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. |
| offset | integer | – | How many entries to skip, newest first. Defaults to 0. |
No output schema declared.
No examples provided.
get_case_documents List available case documents ~297
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.
| Name | Type | Req | Description |
|---|---|---|---|
| case_number | string | – | 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. |
| court | string | – | 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 | integer | – | How many documents to return, newest first. Defaults to 20. |
| matter_id | string | – | 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. |
No output schema declared.
No examples provided.
get_case_mail Read CaseMail correspondence ~243
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.
| Name | Type | Req | Description |
|---|---|---|---|
| after | string | – | An ISO-8601 timestamp; only messages received after it are returned. |
| limit | integer | – | How many messages to return. Defaults to 20. |
| matter_id | string | – | 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. |
| query | string | – | Plain text matched against sender, subject and body. |
No output schema declared.
No examples provided.
get_case_passport Load the Case Passport ~125
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.
| Name | Type | Req | Description |
|---|---|---|---|
| matter_id | string | – | 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. |
No output schema declared.
No examples provided.
get_case_status Get the status of a case ~269
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.
| Name | Type | Req | Description |
|---|---|---|---|
| case_number | string | – | 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. |
| court | string | – | 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 | string | – | 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. |
No output schema declared.
No examples provided.
get_case_updates Get what changed since last time ~229
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | How many items to return. Defaults to 50. |
| matter_id | string | – | 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. |
| since | string | – | An ISO-8601 timestamp. Everything added after it is returned. Omit it to get the most recent activity rather than the whole docket. |
No output schema declared.
No examples provided.
get_recent_case_activity Get recent docket activity ~307
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.
| Name | Type | Req | Description |
|---|---|---|---|
| case_number | string | – | 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. |
| court | string | – | 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 | integer | – | How many entries to return, newest first. Defaults to 10. |
| matter_id | string | – | 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. |
| since | string | – | An ISO-8601 timestamp. Only entries filed after it are returned. |
No output schema declared.
No examples provided.
read_case_document Read the text of a filing ~217
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.
| Name | Type | Req | Description |
|---|---|---|---|
| document_id | string | yes | The document_id of a document listed by get_case_docket. |
| matter_id | string | – | 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. |
| offset | integer | – | Where to start reading, in characters. Defaults to 0. |
No output schema declared.
No examples provided.
send_case_mail Draft a CaseMail message for approval ~180
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.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | The message body, as plain text. |
| cc | array | – | Optional copied addresses. |
| matter_id | string | – | 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. |
| subject | string | yes | The subject line. |
| to | array | yes | Recipient email addresses. |
No output schema declared.
No examples provided.
stop_watch Stop watching the case ~104
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.
| Name | Type | Req | Description |
|---|---|---|---|
| matter_id | string | – | 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. |
No output schema declared.
No examples provided.
watch_case Watch the case for new filings ~169
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. It never charges anyone by itself.
| Name | Type | Req | Description |
|---|---|---|---|
| matter_id | string | – | 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. |
No output schema declared.
No examples provided.
What is the CaseMagic — Court Case Monitor MCP server?
CaseMagic — Court Case Monitor is an MCP server listed in the public MCP registry as io.github.sustany/casemagic. Watch US federal court cases for new filings and keep a Case Passport any AI assistant can load. This page covers its hosted endpoint (https://casemagic.ai/mcp).
Is the CaseMagic — Court Case Monitor MCP server safe to use?
CaseMagic — Court Case Monitor scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the CaseMagic — Court Case Monitor MCP server expose?
CaseMagic — Court Case Monitor exposes 15 tools: find_federal_case, get_case_status, get_recent_case_activity, explain_docket_entry, get_case_documents, and 10 more. Their descriptions and schemas cost roughly 3,605 tokens of context every time the server is loaded.
Does the CaseMagic — Court Case Monitor MCP server require authentication?
No. We connected to CaseMagic — Court Case Monitor without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the CaseMagic — Court Case Monitor MCP server still maintained?
CaseMagic — Court Case Monitor is still listed as active in the MCP registry. We last reached this channel on 28 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.