MCP Server

CourtListener

io.github.Vaquill-AI/courtlistener-mcp
Legal & Compliance Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Searches and retrieves US court opinions, dockets, legal citations, judges, oral arguments, and federal regulations.

citation_batch_lookup_citations
Look up multiple legal citations in a single request. This is more efficient than making individual requests for each citation. Accepts up to 100 citations at once.
Read only Open world
Input schema
{'type': 'object', 'required': ['citations'], 'properties': {'citations': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 100, 'minItems': 1, 'description': 'List of citations to look up (max 100)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
citation_enhanced_citation_lookup
Enhanced citation lookup combining citeurl parsing with CourtListener data. This tool first uses citeurl to parse and validate the citation format, then optionally queries the CourtListener API for additional case information.
Read only Open world
Input schema
{'type': 'object', 'required': ['citation'], 'properties': {'citation': {'type': 'string', 'description': 'The citation to look up and analyze'}, 'include_courtlistener': {'type': 'boolean', 'default': True, 'description': 'Whether to also perform CourtListener API lookup'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
citation_extract_citations_from_text
Extract all legal citations from a block of text using citeurl. This tool finds and parses all legal citations within a given text, including both long-form and short-form citations (like 'id.' references).
Read only
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'Text containing legal citations to extract'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
citation_lookup_citation
Look up a legal citation to find the opinion it references in CourtListener. This tool accepts various citation formats including: - U.S. Reporter citations (e.g., "410 U.S. 113") - Federal Reporter citations (e.g., "123 F.3d 456") - WestLaw citations (e.g., "2023 WL 12345") - State reporter citations
Read only Open world
Input schema
{'type': 'object', 'required': ['citation'], 'properties': {'citation': {'type': 'string', 'description': "The citation to look up (e.g., '410 U.S. 113', '2023 WL 12345')"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
citation_parse_citation_with_citeurl
Parse a legal citation using citeurl's advanced citation recognition. This tool uses the citeurl library to parse legal citations and extract structured information including tokens, normalized format, and URL generation. Returns detailed information about the citation including: - Recognized citation format and source - Extracted tokens (volume, reporter, page, etc.) - Generated URL if available - Normalized citation text
Read only
Input schema
{'type': 'object', 'required': ['citation'], 'properties': {'broad': {'type': 'boolean', 'default': True, 'description': 'Use broad matching for more flexible parsing'}, 'citation': {'type': 'string', 'description': "The citation to parse (e.g., '410 U.S. 113', '42 USC § 1988')"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
citation_verify_citation_format
Verify if a citation string is in a valid format using citeurl's advanced parsing. This tool performs validation using citeurl's comprehensive citation templates to check if a citation appears to be in a recognized legal citation format. This is much more accurate than simple regex matching. Returns information about the citation format and any detected issues.
Read only
Input schema
{'type': 'object', 'required': ['citation'], 'properties': {'citation': {'type': 'string', 'description': 'The citation to verify'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_ancestry
Get the ancestry chain (title -> ... -> node) for a CFR node on a date.
Read only Open world
Input schema
{'type': 'object', 'required': ['title', 'date'], 'properties': {'date': {'type': 'string', 'description': 'Snapshot date (YYYY-MM-DD)'}, 'part': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Restrict to a part, e.g. '75'"}, 'title': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'CFR title number (1-50)'}, 'section': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Restrict to a section, e.g. '75.1'"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_daily_search_counts
Get search result counts broken down by date (daily histogram).
Read only Open world
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'As-of date (YYYY-MM-DD)'}, 'query': {'type': 'string', 'description': 'Full-text search query over the CFR'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_hierarchy_search_counts
Get search result counts distributed across the CFR hierarchy.
Read only Open world
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'As-of date (YYYY-MM-DD)'}, 'query': {'type': 'string', 'description': 'Full-text search query over the CFR'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_search_count
Get the total number of CFR sections matching a search query.
Read only Open world
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'As-of date (YYYY-MM-DD)'}, 'query': {'type': 'string', 'description': 'Full-text search query over the CFR'}, 'title': {'anyOf': [{'type': 'integer', 'maximum': 50, 'minimum': 1}, {'type': 'null'}], 'default': None, 'description': 'Restrict to a title'}, 'agency_slugs': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Restrict to agency slugs'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_search_suggestions
Get search-term suggestions for a partial CFR query.
Read only Open world
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Partial query to get suggestions for'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_search_summary
Get summary details (counts + metadata) for a CFR search query.
Read only Open world
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'As-of date (YYYY-MM-DD)'}, 'query': {'type': 'string', 'description': 'Full-text search query over the CFR'}, 'title': {'anyOf': [{'type': 'integer', 'maximum': 50, 'minimum': 1}, {'type': 'null'}], 'default': None, 'description': 'Restrict to a title'}, 'agency_slugs': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Restrict to agency slugs'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_source_xml
Fetch the source regulation TEXT (XML) for a CFR node on a snapshot date. Pass a part or section to scope the request. Fetching an entire large title at once can time out on the eCFR side, so narrowing is strongly recommended. Returns the raw XML under ``content_xml``.
Read only Open world
Input schema
{'type': 'object', 'required': ['title', 'date'], 'properties': {'date': {'type': 'string', 'description': 'Snapshot date (YYYY-MM-DD)'}, 'part': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Part to fetch, e.g. '75'. STRONGLY recommended: whole-title fetches can time out."}, 'title': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'CFR title number (1-50)'}, 'chapter': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Chapter, e.g. 'I'"}, 'section': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Section, e.g. '75.1'"}, 'subpart': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Subpart, e.g. 'C'"}, 'appendix': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Appendix identifier'}, 'subtitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Subtitle, e.g. 'A'"}, 'subchapter': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Subchapter, e.g. 'B'"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_title_search_counts
Get search result counts broken down by CFR title.
Read only Open world
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'As-of date (YYYY-MM-DD)'}, 'query': {'type': 'string', 'description': 'Full-text search query over the CFR'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_title_structure
Get the full hierarchical structure (title -> section) of a CFR title on a date.
Read only Open world
Input schema
{'type': 'object', 'required': ['title', 'date'], 'properties': {'date': {'type': 'string', 'description': 'Snapshot date (YYYY-MM-DD)'}, 'title': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'CFR title number (1-50)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_get_title_versions
List the available content versions (issue dates) for one CFR title.
Read only Open world
Input schema
{'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'CFR title number (1-50)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_list_agencies
List all agencies that appear in the CFR, with their title/chapter references.
Read only Open world
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_list_all_corrections
List CFR corrections, optionally filtered by title and/or effective date.
Read only Open world
Input schema
{'type': 'object', 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Corrections in effect on this date (YYYY-MM-DD)'}, 'title': {'anyOf': [{'type': 'integer', 'maximum': 50, 'minimum': 1}, {'type': 'null'}], 'default': None, 'description': 'Restrict to a CFR title number'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_list_corrections_by_title
List all corrections for a single CFR title.
Read only Open world
Input schema
{'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'CFR title number (1-50)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_list_titles
List all 50 CFR titles with their latest amended/issue dates and status.
Read only Open world
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
ecfr_search_regulations
Full-text search over federal regulations, returning matching sections with hierarchy.
Read only Open world
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Search the CFR as of this date (YYYY-MM-DD)'}, 'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'order': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Sort order: 'relevance', 'hierarchy', 'newest_first', 'oldest_first'"}, 'query': {'type': 'string', 'description': 'Full-text search query over the CFR'}, 'title': {'anyOf': [{'type': 'integer', 'maximum': 50, 'minimum': 1}, {'type': 'null'}], 'default': None, 'description': 'Restrict to a CFR title number'}, 'per_page': {'type': 'integer', 'default': 20, 'maximum': 20, 'minimum': 1, 'description': 'Results per page (max 20)'}, 'agency_slugs': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Restrict to one or more agency slugs (from list_agencies)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_audio
Get oral argument audio information by ID from CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['audio_id'], 'properties': {'audio_id': {'type': 'string', 'description': 'The audio recording ID to retrieve'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_cluster
Get an opinion cluster by ID from CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['cluster_id'], 'properties': {'cluster_id': {'type': 'string', 'description': 'The opinion cluster ID to retrieve'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_court
Get court information by ID from CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['court_id'], 'properties': {'court_id': {'type': 'string', 'description': "The court ID to retrieve (e.g., 'scotus', 'ca9')"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_docket
Get a specific court docket by ID from CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['docket_id'], 'properties': {'docket_id': {'type': 'string', 'description': 'The docket ID to retrieve'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_opinion
Get a specific court opinion by ID from CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['opinion_id'], 'properties': {'opinion_id': {'type': 'string', 'description': 'The opinion ID to retrieve'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_person
Get judge or legal professional information by ID from CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['person_id'], 'properties': {'person_id': {'type': 'string', 'description': 'The person (judge) ID to retrieve'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
search_audio
Search oral argument audio recordings in CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string', 'description': 'Search query for oral argument audio'}, 'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Court ID filter (e.g., 'scotus', 'ca9')"}, 'judge': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by judge name'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results from this page (upper bound; CL pages ~20)'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Pagination cursor from a prior response's next_cursor"}, 'order_by': {'type': 'string', 'default': 'score desc', 'description': "Sort by 'score desc', 'dateArgued desc', or 'dateArgued asc'"}, 'case_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by case name'}, 'argued_after': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter arguments after this date (YYYY-MM-DD)'}, 'argued_before': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter arguments before this date (YYYY-MM-DD)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
search_dockets
Search federal cases (dockets) from PACER in CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string', 'description': 'Search query for docket text'}, 'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Court ID filter (e.g., 'scotus', 'ca9')"}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results from this page (upper bound; CL pages ~20)'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Pagination cursor from a prior response's next_cursor"}, 'order_by': {'type': 'string', 'default': 'score desc', 'description': "Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc'"}, 'case_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by case name'}, 'party_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by party name'}, 'docket_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific docket number to search for'}, 'date_filed_after': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter dockets filed after this date (YYYY-MM-DD)'}, 'date_filed_before': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter dockets filed before this date (YYYY-MM-DD)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
search_dockets_with_documents
Search federal cases (dockets) with up to three nested documents. If there are more than three matching documents, the more_docs field will be true.
Read only Open world
Input schema
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string', 'description': 'Search query for federal cases'}, 'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Court ID filter (e.g., 'scotus', 'ca9')"}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results from this page (upper bound; CL pages ~20)'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Pagination cursor from a prior response's next_cursor"}, 'order_by': {'type': 'string', 'default': 'score desc', 'description': "Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc'"}, 'case_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by case name'}, 'party_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by party name'}, 'docket_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific docket number to search for'}, 'date_filed_after': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter dockets filed after this date (YYYY-MM-DD)'}, 'date_filed_before': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter dockets filed before this date (YYYY-MM-DD)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
search_opinions
Search case law opinion clusters with nested Opinion documents in CourtListener.
Read only Open world
Input schema
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string', 'description': 'Search query for full text of opinions'}, 'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Court ID filter (e.g., 'scotus', 'ca9')"}, 'judge': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by judge name'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results from this page (upper bound; CL pages ~20)'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Pagination cursor from a prior response's next_cursor"}, 'cited_gt': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'default': None, 'description': 'Minimum number of times opinion has been cited'}, 'cited_lt': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'default': None, 'description': 'Maximum number of times opinion has been cited'}, 'order_by': {'type': 'string', 'default': 'score desc', 'description': "Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc'"}, 'case_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by case name'}, 'filed_after': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only show opinions filed after this date (YYYY-MM-DD)'}, 'filed_before': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only show opinions filed before this date (YYYY-MM-DD)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
search_people
Search judges and legal professionals in the CourtListener database.
Read only Open world
Input schema
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string', 'description': 'Search query for judges and legal professionals'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Filter by person's name"}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results from this page (upper bound; CL pages ~20)'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Pagination cursor from a prior response's next_cursor"}, 'school': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by school attended'}, 'order_by': {'type': 'string', 'default': 'score desc', 'description': "Sort by 'score desc' or 'name asc'"}, 'appointed_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by appointing authority'}, 'position_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Filter by position type (e.g., 'jud' for judge)"}, 'selection_method': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by selection method'}, 'political_affiliation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by political affiliation'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
search_recap_documents
Search federal filing documents from PACER in the RECAP archive.
Read only Open world
Input schema
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string', 'description': 'Search query for RECAP filing documents'}, 'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Court ID filter (e.g., 'scotus', 'ca9')"}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results from this page (upper bound; CL pages ~20)'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Pagination cursor from a prior response's next_cursor"}, 'order_by': {'type': 'string', 'default': 'score desc', 'description': "Sort by 'score desc', 'dateFiled desc', or 'dateFiled asc'"}, 'case_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by case name'}, 'party_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter by party name'}, 'filed_after': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter documents filed after this date (YYYY-MM-DD)'}, 'filed_before': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Filter documents filed before this date (YYYY-MM-DD)'}, 'docket_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific docket number to search for'}, 'document_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific document number to search for'}, 'attachment_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific attachment number to search for'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
status
Check the status of the CourtListener MCP server. Returns: A dictionary containing server status, system metrics, and service information.
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
Added
ecfr_get_search_suggestions
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_hierarchy_search_counts
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_daily_search_counts
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_title_search_counts
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_search_summary
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_search_count
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_search_regulations
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_list_corrections_by_title
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_list_all_corrections
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_list_agencies
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_source_xml
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_ancestry
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_title_structure
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_get_title_versions
Sept. 17, 2026, 12:53 p.m.
Added
ecfr_list_titles
Sept. 17, 2026, 12:53 p.m.
Added
citation_enhanced_citation_lookup
Sept. 17, 2026, 12:53 p.m.
Added
citation_extract_citations_from_text
Sept. 17, 2026, 12:53 p.m.
Added
citation_parse_citation_with_citeurl
Sept. 17, 2026, 12:53 p.m.
Added
citation_verify_citation_format
Sept. 17, 2026, 12:53 p.m.
Added
citation_batch_lookup_citations
Sept. 17, 2026, 12:53 p.m.
Added
citation_lookup_citation
Sept. 17, 2026, 12:53 p.m.
Added
get_court
Sept. 17, 2026, 12:53 p.m.
Added
get_person
Sept. 17, 2026, 12:53 p.m.
Added
get_cluster
Sept. 17, 2026, 12:53 p.m.
Added
get_audio
Sept. 17, 2026, 12:53 p.m.
Added
get_docket
Sept. 17, 2026, 12:53 p.m.
Added
get_opinion
Sept. 17, 2026, 12:53 p.m.
Added
search_people
Sept. 17, 2026, 12:53 p.m.
Added
search_audio
Sept. 17, 2026, 12:53 p.m.
Added
search_recap_documents
Sept. 17, 2026, 12:53 p.m.