Syfert Legal Research
com.syfert/legal-research · 1.1.0
Verify legal citations, case treatment, quotes and whole briefs against 10.7M U.S. opinions
Nobody here has read this server's code, because it publishes none. The description above is the maker's own, from the registry. A connection test shows whether it answers and what tools it says it has; it never calls a tool, so it cannot show what one does with your data.
Where it sits in the directory's order
What can be seen from outside, weighed as the directory publishes.
Observable signals: 60 of 100 points (at most 60 here)
| Input | Points | What was seen |
|---|---|---|
| Source published | held at 0 | No entry here publishes source: that is what puts it in this directory. |
| Licence stated | held at 0 | With no files, there is nothing for a licence to be stated in or held against. |
| Advisory state | held at 0 | Advisory databases index packages, and these entries publish none, so there is nothing to look up. |
| Auth declared | 15 of 15 | The registry entry declares a key or a token. |
| Latest connection test reached it | 20 of 20 | The latest test had its handshake answered. |
Where it answers
https://mcp.syfert.com/mcpstreamable-httpAuthorizationrequired, secret: Bearer <token> - free tokens at https://syfert.com/mcp/
Connection test
The MCP handshake, then a request for the tool list, with no key and no data of yours. Run nightly, and by anyone, at most once every ten minutes per server.
It completed the handshake and listed 18 tools.
- Protocol
- 2025-06-18
- Calls itself
- syfert-legal-research 1.2.0
- Handshake time
- 269 ms
- HTTP status
- 200
The tools it lists (18, as of 22 hours ago)
The tool-description rules found nothing in these descriptions. They look for instructions aimed at a model and for hidden characters; they cannot see what a tool does when it runs.
search_casesFull-text search over 10.7M U.S. court opinions (all states + federal, via syfert.com). Call this to find case law on a topic, locate a case by name, or find cases citing a statute. Routing: a proposition or quoted language -> find_authority (pasted verbatim); a doctrine name or fact pattern -> find_issues; a party name, statute number or keywords -> search_cases. Each hit carries bluebook and url (snippet up to 240 chars); a hit whose snippet quotes an earlier case carries passage_origin, the case to cite for that language. A q that is one citation or an "X v. Y" caption naming one case decis
find_caseFast direct lookup: give a citation or a case caption and get THE case (or 'not decisive' with up to 5 candidates) without a full-text search. Use search_cases for topics and words. A citation ("384 U.S. 436", "Miranda v. Arizona, 384 U.S. 436, 444 (1966)", "449 F. App'x 901", "2019-Ohio-10") resolves through the reporter index; when a case name is given (in the query or as expected_case_name) and the case at that citation carries a different name, the answer is NOT decisive (problem name_mismatch) and names the case that is really there. A caption ("Miranda v. Arizona", or one distinctive nam
get_caseFetch one case: metadata, parallel citations, treatment flag, and full opinion text (paginated via offset/max_chars). cited_by is CourtListener's citation count; for a decision filed as several twin clusters it is summed over them (cited_by_note says so), and a duplicate or stub twin id is answered with its survivor (note says so). Citations inside the returned text are checked against the reporter index (embedded_citations); citation_warnings names any the court itself got wrong. Identify the case by cluster_id (from search_cases results) or by reporter citation. find_text returns passages: u
check_citationVerify a legal citation actually exists before using it. CASES: returns the real case at that citation, its treatment flag, and whether the name matches: expected_case_name, or else a case name written in the citation itself ("Roe v. Wade, 410 U.S. 113"). This catches hallucinated or miscopied citations. A reporter cite that is not indexed comes back with a verdict, and the verdict is what to act on (MCP13_20260925): exists_unindexed = the case is REAL (a court in the corpus prints this exact citation, see cited_by_corpus, or the case is found by name and year, see name_candidates) and only ou
How this entry becomes a listing
For the maker. The catalogue lists what it can read, and this server publishes nothing to read yet. There are two routes, and only the first is open today.
Publish the source Open today
- Put the server's source in a public repository on github.com, with a licence.
- Keep a server.json in that repository naming this server,
com.syfert/legal-research, and declare the repository in it:"repository": { "url": "https://github.com/owner/repo", "source": "github" }, adding"subfolder"when the server lives in a folder. - Publish that version to the official MCP registry.
- The nightly registry sweep records the declaration. This page stays, dated, and says the source is declared but not yet read.
- The catalogue reads declared repositories at a pinned commit, in batches run by hand, and lists the servers that meet the batch's rules (among them a server.json at that commit naming the server, an https endpoint and a licence). When it lists this server, this page links to the listing. There is no schedule, so no date can be promised.
List it through the maker studio Not open yet
From the official MCP registry, last updated there 27 days ago. The registry entry · syfert.com