← Back to all apps

Midpage Legal Research

Collaborationby Midpage
Launched Jun 10, 2026 on ChatGPTLaunched Feb 21, 2026 on Claude

Connect Claude to a database of case law. With the Midpage MCP, Claude can conduct complex legal research, review opinions, and craft high quality work product. Everything is hyperlinked to real sources for easy verification.

5ChatGPT Tools
3Claude Tools
MidpageDeveloper
CollaborationCategory

Use Cases

productivitylegal

Available Tools

analyzeDocketFiling

analyzeDocketFiling
Full Description

Analyze one docket filing selected from analyzeDocketReport and answer a focused question using passages from that filing.

Use this when the user needs to understand what a specific filing says. This tool answers from the filing text, not from the docket entry description.

INPUT:

  • caseId: The caseId returned by analyzeDocketReport case.caseId.
  • entryNumber: The docket entry number returned by analyzeDocketReport relevantEntries[].entryNumber.
  • attachmentNumber: Optional attachment number returned by analyzeDocketReport relevantEntries[].attachmentNumber. Omit for the main filing on the docket entry.
  • question: The question to answer about this specific filing.

RETURNS:

  • status: "ok" or a specific resolution/analysis error.
  • filing: Resolved filing metadata, including entryNumber, optional attachmentNumber, dateFiled, suggestedFileName, and a downloadable Midpage file URL for the filing.
  • answer: Direct answer based only on the filing text.
  • supportingPassages: Passages from the filing that support the answer, with passage and relevance.
  • doesNotAddress: Specific parts of the question that the filing text does not answer. Check this before relying on the answer.

CITATION RULES:

  • When using filing content in an answer, cite the filing with the format below.
  • Every citation must be a markdown hyperlink to filing.url.
  • The ECF No. suffix is important and should be included in filing citations.
  • Use a descriptive filing name, then any real page/pin/paragraph if available, followed by this suffix: ECF No. {filing.entryNumber} ({filing.dateFiled formatted as "Mar. 3, 2020"}).
  • Example: [Pl.'s Mot. for Summ. J. 5, ECF No. 30 (Mar. 3, 2020)]({filing.url})
  • If filing.dateFiled is unavailable, omit the parenthetical date rather than inventing one.
  • Never use short cites such as "id." or "supra"; repeat the full linked filing citation.

DOWNLOAD GUIDELINES:

  • If the user asks to download or save the filing, use filing.suggestedFileName as the filename.
Parameters (3 required, 1 optional)
Required
caseIdstring

Case id returned by analyzeDocketReport case.caseId.

entryNumberstring

Docket entry number returned by analyzeDocketReport relevantEntries[].entryNumber.

questionstring

The question to answer about this specific filing.

Optional
attachmentNumberstring/null

Attachment number returned by analyzeDocketReport relevantEntries[].attachmentNumber, when the filing is an attachment. Omit or set null for the main filing on the docket entry.

analyzeDocketReport

analyzeDocketReport
Full Description

Analyze a federal docket report and answer a docket-level question.

Use this for case snapshots, recent activity, procedural posture, service, complaint history, motion history, deadlines, and identifying relevant filings. This tool answers from the docket sheet only; use analyzeDocketFiling when the text of a specific filing is needed.

INPUT:

  • court: Federal court. Prefer Bluebook-style abbreviations such as "N.D. Cal.", "S.D.N.Y.", "D. Del.", "Bankr. D. Del.", "9th Cir.", or "Fed. Cir."; full federal court names are also accepted.
  • docketNumber: Federal case docket number. Prefer full district/bankruptcy numbers with office or division prefix when known, such as "4:24-cv-04722"; appellate numbers look like "24-1234".
  • caseName: Optional case caption/name, such as "Musk v. Altman". Include it when available, especially if the docket number is incomplete.
  • forceFetch: Optional. Set true only when the user explicitly needs the latest official PACER docket instead of available cached or RECAP data.
  • question: The docket-level question to answer.

RETURNS:

  • status: "ok" or a specific resolution/analysis error.
  • case: Resolved case metadata, including caseId for analyzeDocketFiling.
  • docketReport: Docket report metadata, including suggested filename and a downloadable Midpage file URL when one is available.
  • answer: Direct answer based only on the docket sheet.
  • relevantEntries: Docket entries or attachments supporting or relevant to the answer. Use case.caseId plus relevantEntries[].entryNumber and optional relevantEntries[].attachmentNumber with analyzeDocketFiling when the filing text is needed.
  • doesNotAddress: Specific parts of the question that the docket entries do not answer. Check this before relying on the answer.
  • warnings: Important source or parsing limitations, when present.

DOWNLOAD GUIDELINES:

  • If the user asks to download or save the docket report, use docketReport.suggestedFileName as the filename.
Parameters (1 required, 4 optional)
Required
questionstring

The docket-level question to answer about the case.

Optional
caseNamestring

Optional case caption/name, such as Musk v. Altman. Include it when available, especially if the docket number is incomplete.

courtstring

Federal court for the case. Prefer Bluebook-style abbreviations such as "N.D. Cal.", "S.D.N.Y.", "D. Del.", "Bankr. D. Del.", "9th Cir.", or "Fed. Cir."; full federal court names are also accepted.

docketNumberstring

Federal case docket number, preferably the full district/bankruptcy docket number with office or division prefix when known, such as "4:24-cv-04722", or an appellate docket number such as "24-1234".

forceFetchboolean

Set true only when the user explicitly needs the latest official PACER docket instead of available cached or RECAP data.

analyzeOpinion

analyzeOpinion
Full Description

Reviews and annotates a legal opinion, returns key takeaways, holdings, details, excerpts, and tells you how you can use this case in your response. REQUIRED before citing a case.

This tool returns what the case ACTUALLY supports (not necessarily what you asked about). Use this to: 1. Find out what propositions this case actually supports 2. Extract verified quotes 3. Understand the scope/limitations of each proposition 4. Know what the case does NOT address (to avoid misattribution)

DOCUMENT IDENTIFICATION (provide exactly ONE — omit the others):

  • opinionId: Midpage document ID from search results (e.g., "7228818", "c4efd75e-22e7-471f-8bda-95e10a13e588"). OMIT this field if you don't have a Midpage ID.
  • reporterCitation: Bluebook citation (e.g., "556 U.S. 662", "123 F.3d 456") — NOT WL/LEXIS
  • docket: For cases without reporter citations:
    • courtAbbreviation: e.g., "S.D.N.Y.", "9th Cir."
    • docketNumber: e.g., "12-cv-20100" (omit "No." prefix)

HOW TO CHOOSE: 1. If you have an opinionId from search results, use ONLY opinionId (fastest) 2. If you have a reporter citation like "556 U.S. 662", use ONLY reporterCitation (omit opinionId) 3. If you only have a docket number (e.g., "No. 20-16900 (9th Cir.)"), use ONLY docket tuple 4. NEVER use WL or LEXIS citations — use docket tuple instead 5. NEVER pass "0" or placeholder values — omit fields you don't have

INPUT:

  • question: The legal question you want answered. Be specific about the legal element.

RETURNS:

  • citation: Exact bluebook citation string for the case
  • url: General Midpage link for the case as a whole
  • supportedPropositions: Array of propositions this case supports, each with:
    • proposition: Cite-ready statement of what the case holds (USE THIS TEXT when citing)
    • quote: Verbatim quote supporting the proposition
    • scope: Limitations, conditions, what it does NOT apply to
    • centrality: "core_holding" (strongest), "supporting_analysis" (strong), "secondary_matter" (medium), or "background" (weakest)
    • opinionSection (optional): the non-majority opinion that this proposition comes from (e.g., "Jackson, Concurring", "Smith, Dissenting").
    • deeplinkURL: Shareable Midpage deep link that auto-scrolls to that sentence range
    • doesNotAddress: Topics from your question the case does NOT address. CHECK THIS BEFORE CITING.
    • summary: Brief summary of what the case is actually about
    • disposition: Short procedural outcome phrase describing what this court did in this opinion, when available
    • jurisdiction: Court and jurisdiction
    • treatment: Citator status and citation count

HOW TO USE THE OUTPUT: 1. Check doesNotAddress first - if your intended use is listed, DO NOT cite this case for that purpose 2. Find a supported proposition that matches your intended use 3. Use the proposition text (or close paraphrase) when citing - it's verified to match the quote 4. Include scope limitations when relevant (especially qualifiers) 5. Prefer "core_holding" and "supporting_analysis" over "secondary_matter" or "background" for stronger authority 6. Never characterize non-majority propositions as the court's controlling holding; clearly signal when they come from concurrence/dissent text 7. If a proposition is from any non-majority opinion, it must include opinionSection (e.g., "Jackson, Concurring") 8. When citing a specific supported proposition or quote, prefer that proposition's deeplinkURL over the top-level url 9. Use the top-level url only when referring to the case generally rather than a specific proposition or quote

EXAMPLE: If you ask "Is expert testimony required to prove truth as a defense to a defamation claim?" and the case mentions that an expert testified in such a case in passing:

  • supportedPropositions will contain "An expert testified in order to prove truth of the matter asserted" as background
  • doesNotAddress will contain "Whether expert testimony is REQUIRED" (what you asked about)
  • You should NOT cite this case to say that such testimony is REQUIRED just because the testimony was provided in this one case.

WRITING RULES: 1. FAVOR paragraph-driven writing: Write like an attorney with clear topic sentences, crisp rule statements with hyperlinked citations, and thoughtful analysis. 2. FAVOR direct, concise answers: Keep answers short. Answer the question asked, not an expanded version. 3. FAVOR embedded-quotes in prose: Weave quotes into paragraphs (modify with brackets [] or ellipsis ... while keeping verbatim). 4. LIMIT lists and bullet points: Use sparingly or unless asked. 5. AVOID block quotes: Don't dump quotes in block format. 6. AVOID repetition/summaries. 7. AVOID emojis.

CITATION RULES:

  • ALWAYS include a citation after each quoted passage
  • ALWAYS mention relevant scope limitations when citing if relevant
  • OFTEN add parentheticals after citations beginning with "ing" words or quotes.

CITATION FORMAT: Every citation must be a markdown hyperlink using the returned fields. When citing a specific supported proposition or quote, use: [{citation}]({deeplinkURL})

When referring to the case generally, use: [{citation}]({url})

Example proposition citation: [International Shoe Co. v. Washington, 326 U.S. 310 (1945)](https://app.midpage.ai/document/1234567?lines=10-12)

Example general case citation: [International Shoe Co. v. Washington, 326 U.S. 310 (1945)](https://app.midpage.ai/document/1234567)

  • Use the exact citation string returned by the tool—never abbreviate or modify
  • NEVER use short cites (id., supra)—always full citation with link
  • Prefer deeplinkURL whenever the citation is tied to a specific supported proposition or quote
  • NEVER invent reporter pin cites. If you want a Midpage line-specific link, use the returned deeplinkURL
  • NEVER cite to LEXIS or WL citations; always cite to the exact bluebook citation provided (which may be a docket-number citation in liue of a reporter for unpublished cases)
  • Include a citation after every legal proposition or quote
Parameters (1 required, 3 optional)
Required
questionstring

The legal question you want answered about this opinion.

Optional
docketobject

Docket tuple for cases without reporter citations

opinionIdstring

Midpage opinion ID from prior tool results (e.g., "7228818" or "c4efd75e-22e7-471f-8bda-95e10a13e588")

reporterCitationstring

Canonical reporter citation in the form '<volume> <reporter> <page>' (e.g., '556 U.S. 662', '123 F.3d 456'). Do NOT use WL/LEXIS citations.

findInOpinion

findInOpinion
Full Description

Find quotable passages within a single opinion using keyword search. Fast, free, no AI.

WHEN AND HOW TO USE THIS TOOL:

  • This tool is optional but recommended.
  • Use this tool after a search, or directly if the user gives you a citation.
  • Check if a search result is actually relevant (sort of like double clicking into a result)
  • To decide which cases are worth the AI cost of analyzeOpinion (only the most relevant!)

HOW NOT TO USE THIS TOOL:

  • Do not use this tool alone. If you intend to cite a case, you must use analyzeOpinion.
  • Do not use this tool unless the user has specifically provided a citation to a case. Default to the search tool.

DOCUMENT IDENTIFICATION (provide exactly ONE — omit the others):

  • opinionId: Midpage document ID from search results (e.g., "7228818", "c4efd75e-22e7-471f-8bda-95e10a13e588"). OMIT this field if you don't have a Midpage ID.
  • reporterCitation: Bluebook citation (e.g., "556 U.S. 662", "123 F.3d 456") — NOT WL/LEXIS
  • docket: For cases without reporter citations:
    • courtAbbreviation: e.g., "S.D.N.Y.", "9th Cir."
    • docketNumber: e.g., "12-cv-20100" (omit "No." prefix)

HOW TO CHOOSE: 1. If you have an opinionId from search results, use ONLY opinionId (fastest) 2. If you have a reporter citation like "556 U.S. 662", use ONLY reporterCitation (omit opinionId) 3. If you only have a docket number (e.g., "No. 20-16900 (9th Cir.)"), use ONLY docket tuple 4. NEVER use WL or LEXIS citations — use docket tuple instead 5. NEVER pass "0" or placeholder values — omit fields you don't have

QUERY INPUT:

  • query: Key terms to match, NOT a full question
  • GOOD: "personal jurisdiction minimum contacts purposeful availment"
  • BAD: "Does this case establish personal jurisdiction?" (questions don't work well)

RETURNS:

  • snippets: Verbatim passages from the opinion (can be quoted directly)

LIMITATIONS:

  • Keyword-based only—may miss relevant passages with different wording
  • Easy to take things out of context because you only see a snippet
  • Does NOT tell you if the case supports or contradicts your proposition
  • Does NOT identify qualifiers/exceptions

NEXT STEP: Use analyzeOpinion() on promising cases to get analysis, qualifiers, and verified quotes before citing.

Parameters (1 required, 3 optional)
Required
querystring

Key terms for matching relevant passages (keyword search, not semantic).

Optional
docketobject

Docket tuple for cases without reporter citations

opinionIdstring

Midpage opinion ID from prior tool results (e.g., "7228818" or "c4efd75e-22e7-471f-8bda-95e10a13e588")

reporterCitationstring

Canonical reporter citation in the form '<volume> <reporter> <page>' (e.g., '556 U.S. 662', '123 F.3d 456'). Do NOT use WL/LEXIS citations.

search

search
Full Description

Search US case law across federal and state courts. Returns metadata, highlights, and citator treatment data.

WHEN AND HOW TO USE THIS TOOL:

  • Use this tool to identify US legal opinions that are potentially relevant to the user's question. This is your default legal research tool.
  • Use this tool if your response requires or is likely to require any legal analysis. Alternatively, if the user references a specific citation, you can analyze it directly using analyzeOpinion.
  • Do not presume to know the answer to any legal question - do your research using the tools provided to you.
  • Always use this tool in conjunction with the findInOpinion and/or analyzeOpinion tools.

HOW NOT TO USE THIS TOOL:

  • Do not use this tool alone. This tool is a first step. Follow up with findInOpinion and analyzeOpinion tools to review cases more granularly.
  • You can NEVER cite a case in your response until you have used the analyzeOpinion tool, at minimum, on that case.

WHAT YOU GET:

  • documentId: Use this ID with findInOpinion() and analyzeOpinion()
  • metadata: Bluebook citation (which contains party names, court, date, docket and/or reporter citation)
  • highlights: Brief snippets showing why this case matched (NOT for quoting—use findInOpinion for quotes)
  • treatment: Citator status (positive/negative/caution/neutral), citation counts

QUERY TIPS:

  • This tool defaults to semantic search, so use concepts, natural-language issues, and short propositions.
  • The search works best with key terms and concepts, e.g.:
    • personal jurisdiction minimum contacts purposeful availment
    • noncompete duration length duration unconscionable
  • The search also works well with questions or statements, e.g.:
    • Irreparable harm is the most important factor when analyzing a request for a preliminary injunction.
    • Do Nevada courts consider Delaware law to be persuasive authority on issues of corporate governance?
    • Prefer meaning-based queries over boolean syntax. If you need exact wording or quotable passages, use findInOpinion on promising results.
    • Run multiple queries in parallel for different legal issues
    • Use filters to narrow by jurisdiction and date
    • If you use the publishStatus filter, consider parallel queries that also include "unknown". Some jurisdictions often have missing or uncertain publication metadata, and otherwise key results may be missed. For California, default to filtering for "published" plus "unknown".
    • Each query may return up to 10 results
    • You can run up to 4 queries per call

FILTERS (all optional):

  • jurisdictionType: "federal" | "state" | "state_and_federal"
  • circuits: ["9", "2", "supreme_court", "dc"] for federal courts
  • courts: ["S.D.N.Y.", "9th Cir."] using Bluebook-style court abbreviations
  • states: ["California", "New York"] for state courts
  • publishStatus: "published" | "unpublished" | "unknown" | "in_chambers" | "separate" | "errata" | "relating_to". Use "unknown" for missing or uncertain values. If you filter on publication status, consider an additional parallel query with "unknown", because some jurisdictions often leave this field uncertain or missing. For California, default to filtering for "published" plus "unknown".
  • startDate/endDate: "YYYY-MM-DD" format

POSSIBLE NEXT STEPS: 1. Review highlights and treatment to identify promising cases 2. Use findInOpinion() on 3-5 candidates to extract quotable passages (optional) 3. Use analyzeOpinion() on cases you intend to rely on in your final response (REQUIRED before citing)

Parameters (1 required)
Required
queriesarray

Array of search queries to run in parallel. Each query can have its own filters.