Skip to main content
Glama

CaseMagic — Federal Court Case Lookup & Monitor

Get the full text of a docket entry

explain_docket_entry
Read-onlyIdempotent

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
courtNoThe 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_idNoThe 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_numberNoThe 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_numberNoThe docket entry number to explain, as shown on the docket, for example "312". Omit it for the most recent entry.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
caseNoThe case: court, case number, caption, filing date, status, judges, nature of suit, latest activity and docket size.
entryNoOne docket entry.
errorNoPresent only when the call failed: a code, a message and, where there is one, an action such as a link to give the user.
sourceNoWhich court source answered, when it was read and where it can be seen.
case_urlNoThe case’s public page on CaseMagic, which offers free email alerts and Watch.
guidanceNoHow to explain the entry.
matter_idNoThe account matter id when the case was read through a saved case; null for a lookup.
case_postureNoStatus, judge, cause and nature of suit.
connect_tokenNoShort-lived token for create_case_passport, present on a lookup by case number.
docket_coverageNoHow much of the court docket CaseMagic holds for this case.
what_comes_nextNoOne sentence on where to send a user who wants to hear about new filings.
surrounding_entriesNoEntries around it, for context.
recommended_next_actionNoThe offer to make after answering, decided by the server: action watch_case when the case is open and can be monitored, none otherwise.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "case": {
      +      "additionalProperties": true,
      +      "description": "The case: court, case number, caption, filing date, status, judges, nature of suit, latest activity and docket size.",
      +      "properties": {
      +        "assigned_judge": {
      +          "description": "Assigned judge."
      +        },
      +        "case_name": {
      +          "description": "Caption.",
      +          "type": "string"
      +        },
      +        "case_number": {
      +          "description": "Case number as the court writes it.",
      +          "type": "string"
      +        },
      +        "case_status": {
      +          "description": "open, terminated, or null when the source does not say."
      +        },
      +        "cause": {
      +          "description": "Cause of action."
      +        },
      +        "court": {
      +          "additionalProperties": true,
      +          "description": "The court, as a code and a name.",
      +          "properties": {
      +            "code": {
      +              "description": "Court code, e.g. nysd.",
      +              "type": "string"
      +            },
      +            "name": {
      +              "description": "Court name.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "docket_entry_count": {
      +          "description": "How many entries the court docket has."
      +        },
      +        "filing_date": {
      +          "description": "ISO date the case was filed."
      +        },
      +        "id": {
      +          "description": "CaseMagic id of the court case.",
      +          "type": "string"
      +        },
      +        "latest_activity_at": {
      +          "description": "ISO timestamp of the latest docket activity."
      +        },
      +        "nature_of_suit": {
      +          "description": "Nature of suit."
      +        },
      +        "referred_judge": {
      +          "description": "Referred magistrate judge."
      +        },
      +        "terminated_date": {
      +          "description": "ISO date the case was terminated, or null while it is open."
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "case_posture": {
      +      "additionalProperties": true,
      +      "description": "Status, judge, cause and nature of suit.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "case_url": {
      +      "description": "The case’s public page on CaseMagic, which offers free email alerts and Watch.",
      +      "type": "string"
      +    },
      +    "connect_token": {
      +      "description": "Short-lived token for create_case_passport, present on a lookup by case number.",
      +      "type": "string"
      +    },
      +    "docket_coverage": {
      +      "additionalProperties": true,
      +      "description": "How much of the court docket CaseMagic holds for this case.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "entry": {
      +      "additionalProperties": true,
      +      "description": "One docket entry.",
      +      "properties": {
      +        "description": {
      +          "description": "The text the court published."
      +        },
      +        "docket_number": {
      +          "description": "Entry number as shown on the docket."
      +        },
      +        "document_available": {
      +          "description": "Whether a free document is available."
      +        },
      +        "filed_at": {
      +          "description": "ISO timestamp the entry was filed."
      +        },
      +        "source_url": {
      +          "description": "Link to the entry or document at the source."
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "error": {
      +      "additionalProperties": true,
      +      "description": "Present only when the call failed: a code, a message and, where there is one, an action such as a link to give the user.",
      +      "properties": {
      +        "code": {
      +          "description": "Machine-readable error code, for example CASE_NOT_FOUND or MULTIPLE_CASES_FOUND.",
      +          "type": "string"
      +        },
      +        "message": {
      +          "description": "What went wrong, in a sentence.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "guidance": {
      +      "description": "How to explain the entry.",
      +      "type": "string"
      +    },
      +    "matter_id": {
      +      "description": "The account matter id when the case was read through a saved case; null for a lookup."
      +    },
      +    "recommended_next_action": {
      +      "additionalProperties": true,
      +      "description": "The offer to make after answering, decided by the server: action watch_case when the case is open and can be monitored, none otherwise.",
      +      "properties": {
      +        "action": {
      +          "description": "watch_case or none.",
      +          "type": "string"
      +        },
      +        "card_required": {
      +          "description": "Whether a card is collected for the trial.",
      +          "type": "boolean"
      +        },
      +        "cta": {
      +          "description": "Button text.",
      +          "type": "string"
      +        },
      +        "guidance": {
      +          "description": "How to make the offer.",
      +          "type": "string"
      +        },
      +        "offer": {
      +          "description": "What monitoring does.",
      +          "type": "string"
      +        },
      +        "plans": {
      +          "description": "The three plans with price and how many cases each covers.",
      +          "items": {
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "price_after_trial": {
      +          "description": "Price of the entry plan after the trial.",
      +          "type": "string"
      +        },
      +        "reason": {
      +          "description": "Why, in a sentence the assistant can repeat.",
      +          "type": "string"
      +        },
      +        "suggested_message": {
      +          "description": "One sentence the assistant may say, once.",
      +          "type": "string"
      +        },
      +        "trial_days": {
      +          "description": "Free trial length in days.",
      +          "type": "number"
      +        },
      +        "url": {
      +          "description": "Where the user starts watching this case.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "source": {
      +      "additionalProperties": true,
      +      "description": "Which court source answered, when it was read and where it can be seen.",
      +      "properties": {
      +        "name": {
      +          "description": "Source name.",
      +          "type": "string"
      +        },
      +        "retrieved_at": {
      +          "description": "ISO timestamp of the read."
      +        },
      +        "url": {
      +          "description": "Link to the docket at the source."
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "surrounding_entries": {
      +      "description": "Entries around it, for context.",
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "One docket entry.",
      +        "properties": {
      +          "description": {
      +            "description": "The text the court published."
      +          },
      +          "docket_number": {
      +            "description": "Entry number as shown on the docket."
      +          },
      +          "document_available": {
      +            "description": "Whether a free document is available."
      +          },
      +          "filed_at": {
      +            "description": "ISO timestamp the entry was filed."
      +          },
      +          "source_url": {
      +            "description": "Link to the entry or document at the source."
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "what_comes_next": {
      +      "description": "One sentence on where to send a user who wants to hear about new filings.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, it discloses that no account is required to pass a case number, that CaseMagic returns the court's own words and does not itself write the explanation or give legal advice, and it decodes the recommended_next_action values (watch_case with trial terms and url vs none) while stating the answer is free regardless. These are substantive behavioral facts the annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core function and trigger conditions are front-loaded, which is good, but the whole thing is one dense paragraph that also restates return fields (number, date, text, document link) already covered by the existing output schema, and spends several sentences on the next-action/watch_case promotion. It is usable but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An agent has everything needed to invoke it correctly: zero required parameters with documented defaults, both identification routes, the auth posture, and the non-advice boundary. Because an output schema exists, the description is not obligated to explain return shape, and its additional context more than covers the complexity of this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, and the description adds real value on top: it explains the either/or identification strategy between case_number (+ optional court) and matter_id, and notes that omitting docket_number yields the most recent entry rather than an error or empty result.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Return one docket entry in full') and enumerates the exact payload: entry number, filing date, published text, attachment flag and link, plus surrounding entries and case posture. That makes the singular-entry scope distinguishable in practice from a full-docket sibling, but no sibling tool is named or contrasted explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete triggering intents — 'user asks what the latest filing means, what an order says, or to explain a specific docket entry' — and spells out the identification paths (case_number + court, or matter_id for a saved case). It omits any 'when not to use this / use X instead' framing against siblings such as get_case_docket or read_case_document.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources