canlii-mcp
CanLII MCP-Server
Ein Model Context Protocol (MCP)-Server zum Durchsuchen kanadischer Rechtsinformationen über die CanLII-API. Suchen Sie nach Fällen, durchstöbern Sie Gesetzestexte und überprüfen Sie Zitate – alles direkt aus Claude Desktop oder Claude Code.
npx canlii-mcpFunktionen
Volltextsuche — durchsuchen Sie das gesamte CanLII-Angebot nach Stichworten, Fallnamen oder Rechtsbegriffen
Fall-Zitator — überprüfen Sie, ob ein Fall noch geltendes Recht darstellt, indem Sie spätere Fälle finden, die ihn zitieren
Gesetzestexte durchsuchen — durchstöbern Sie Gesetze und Verordnungen nach Zuständigkeitsbereich
Zweisprachig — Unterstützung für Englisch und Französisch in allen Tools, einschließlich des Zitators
9 Tools — Suche, Gerichte durchsuchen, Fälle durchsuchen, Fall-Metadaten, vollständiger Zitator, Zitator-Vorschau, Gesetzgebungsdatenbanken, Gesetzestexte durchsuchen, Metadaten zu Gesetzestexten
Eingebaute Ratenbegrenzung — eine serialisierte Anforderungswarteschlange respektiert die API-Limits von CanLII (2 Anfragen/Sek., 1 gleichzeitig, 5.000/Tag)
Eingabevalidierung — alle Parameter sind per Regex validiert und URI-kodiert, um Injektionen zu verhindern
Minimaler Fußabdruck — 2 Laufzeitabhängigkeiten, ca. 500 Zeilen Code, läuft lokal als stdio-Prozess
Sicherheit zuerst — kein Dateisystemzugriff, keine Shell-Ausführung, verbindet sich nur mit
api.canlii.org
Schnellstart
Voraussetzungen: Node.js 18+ und ein CanLII API-Schlüssel (kostenlos für Forschungszwecke).
Claude Desktop — zur Konfiguration hinzufügen (~/Library/Application Support/Claude/claude_desktop_config.json unter macOS):
{
"mcpServers": {
"canlii": {
"command": "npx",
"args": ["-y", "canlii-mcp"],
"env": {
"CANLII_API_KEY": "your_api_key_here"
}
}
}
}Starten Sie Claude Desktop nach dem Speichern neu.
Claude Code:
claude mcp add canlii -e CANLII_API_KEY=your_key -- npx -y canlii-mcpAus dem Quellcode (für die Entwicklung):
git clone https://github.com/mohammadfarooqi/canlii-mcp.git
cd canlii-mcp
npm install && npm run buildVerfügbare Tools (9)
search
Volltext-Stichwortsuche in ganz CanLII – Fälle, Gesetzestexte und Kommentare. Dies ist der primäre Einstiegspunkt für die juristische Recherche.
search({ query: "material change in circumstances Ontario", resultCount: 10 })get_courts_and_tribunals
Listet alle verfügbaren Datenbanken für Gerichte und Tribunale auf. Gibt Datenbank-IDs zurück, die von anderen Tools benötigt werden.
Wichtige Ontario-Datenbanken: onsc (Superior Court), onca (Court of Appeal), oncj (Court of Justice), csc-scc (Supreme Court of Canada).
get_case_law_decisions
Durchsuchen Sie Rechtsprechungsentscheidungen aus einer bestimmten Gerichtsdatenbank, sortiert nach dem Datum der letzten Hinzufügung. Unterstützt Datumsfilter.
get_case_law_decisions({ databaseId: "onsc", resultCount: 20 })get_case_metadata
Erhalten Sie vollständige Details zu einem bestimmten Fall – Zitat, Entscheidungsdatum, Aktenzeichen, Stichworte und CanLII-URL zum Lesen der vollständigen Entscheidung.
get_case_metadata({ databaseId: "onsc", caseId: "2021onsc8582" })get_case_citator
Suchen Sie nach Zitatbeziehungen für einen Fall. Verwenden Sie citingCases, um zu prüfen, ob ein Fall noch geltendes Recht ist.
get_case_citator({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })get_case_citator_tease
Schnelle Zitaten-Vorschau, die maximal 5 Ergebnisse zurückgibt. Schneller als der vollständige Zitator für eine kurze Überprüfung.
get_case_citator_tease({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })get_legislation_databases
Listet alle Gesetzgebungsdatenbanken auf. Ontario: ons (Gesetze), onr (Verordnungen). Bundesebene: cas (Gesetze), car (Verordnungen).
browse_legislation
Listet Gesetzestexte innerhalb einer bestimmten Datenbank auf.
browse_legislation({ databaseId: "ons" })get_legislation_regulation_metadata
Erhalten Sie Metadaten für ein bestimmtes Gesetz oder eine Verordnung, einschließlich der CanLII-URL.
Typischer Recherche-Workflow
Suche —
search({ query: "gatekeeping parenting time" }), um relevante Fälle zu findenDetails abrufen —
get_case_metadata(...), um das vollständige Zitat und die CanLII-URL zu erhaltenZitate prüfen —
get_case_citator(..., metadataType: "citingCases"), um zu verifizieren, dass der Fall noch geltendes Recht istEntscheidung lesen — Klicken Sie auf die CanLII-URL, um den vollständigen Text auf canlii.org zu lesen
API-Ratenbegrenzungen
Gemäß den API-Bedingungen von CanLII:
5.000 Abfragen pro Tag
2 Anfragen pro Sekunde
1 Anfrage gleichzeitig
Nur Zugriff auf Metadaten – der vollständige Dokumenttext ist über die API nicht verfügbar
Der Server erzwingt diese Limits automatisch mit einem eingebauten Ratenbegrenzer.
Entwicklung
npm run build # Compile TypeScript
npm run start # Run the server (needs CANLII_API_KEY env var)Projektstruktur
src/
index.ts # MCP server — tools, rate limiter, stdio transport
schema.ts # Zod schemas for CanLII API responsesMitwirken
Beiträge sind willkommen! Dieses Projekt zielt darauf ab, die kanadische juristische Recherche durch KI-Tools zugänglicher zu machen.
Möglichkeiten zur Mitwirkung:
Melden Sie Fehler oder unerwartetes API-Verhalten — öffnen Sie ein Issue
Schlagen Sie neue Tools oder Verbesserungen vor — starten Sie eine Diskussion
Reichen Sie einen PR mit Korrekturen oder neuen Funktionen ein
Um einen PR einzureichen:
Forken Sie dieses Repository
Erstellen Sie einen Feature-Branch (
git checkout -b feature/my-improvement)Nehmen Sie Ihre Änderungen vor und testen Sie lokal (
npm run build && CANLII_API_KEY=your_key npm run start)Committen und pushen Sie zu Ihrem Fork
Öffnen Sie einen Pull Request mit einer Beschreibung, was Sie geändert haben und warum
Wenn Sie Probleme mit den CanLII-API-Antworten oder Schema-Diskrepanzen finden oder Ideen für neue Tools haben, die Rechtsforschern helfen würden, eröffnen Sie bitte ein Issue – auch wenn Sie nicht sicher sind, wie man es beheben kann. Wir werden es gemeinsam untersuchen.
Sicherheit
Dieser Server ist so konzipiert, dass er transparent und minimal ist:
Verbindet sich nur mit
api.canlii.org— keine anderen Netzwerkaufrufe, keine Telemetrie, keine AnalytikAPI-Schlüssel bleibt lokal — wird über eine Umgebungsvariable übergeben, niemals protokolliert oder in Antworten aufgenommen
Alle Eingaben validiert — Datenbank-IDs, Fall-IDs und Daten werden vor der Verwendung per Regex validiert; Pfadsegmente sind URI-kodiert
Alle API-Antworten validiert — werden vor der Rückgabe durch Zod-Schemata geparst
Kein Dateisystemzugriff — der Server führt nur HTTPS-Aufrufe an CanLII durch
Keine Shell-Ausführung — kein
child_process,execoderspawn2 Laufzeitabhängigkeiten —
@modelcontextprotocol/sdk(offizielles Anthropic MCP SDK) undzod(Schema-Validierung)Eingebauter Ratenbegrenzer — serialisierte Anforderungswarteschlange verhindert API-Missbrauch
MIT-lizenziert, vollständig Open Source — lesen Sie jede Zeile unter src/index.ts (ca. 350 Zeilen) und src/schema.ts (ca. 140 Zeilen)
Wenn Sie ein Sicherheitsproblem entdecken, lesen Sie bitte SECURITY.md.
Bekannte Einschränkungen
Kein Text des Entscheidungskörpers — die Volltextsuche funktioniert (Suche über Falltitel, Zitate und Inhalte), aber die API kann den vollständigen Text einer Entscheidung nicht zurückgeben. Sie müssen auf die CanLII-URL klicken, um die Entscheidung auf canlii.org zu lesen. Absatznummern und direkte Zitate müssen durch Lesen der Quelle verifiziert werden.
Suche ist stichwortbasiert, nicht semantisch — Abfragen wie "mother gatekeeping sole decision-making" können gemischte Ergebnisse liefern. Verfeinern Sie Abfragen und prüfen Sie Falltitel, bevor Sie in die Metadaten eintauchen.
Suchergebnisse enthalten keine Falldetails — die Suche liefert nur Zitate und Titel. Sie müssen für jeden Fall separat
get_case_metadataaufrufen, um Stichworte, Themen, Entscheidungsdatum und die CanLII-URL zu erhalten.Keine Behandlungsindikatoren — der Zitator zeigt, welche Fälle eine Entscheidung zitieren, gibt aber nicht an, ob sie befolgt, unterschieden oder aufgehoben wurde. Sie müssen die zitierenden Fälle lesen, um die Behandlung zu bestimmen.
Zitator-Vorschau auf 5 Ergebnisse begrenzt — verwenden Sie
get_case_citator(vollständige Version) für eine umfassende Zitatanalyse.Suche hat keinen Datenbank-/Zuständigkeitsfilter — Sie können Suchergebnisse nicht serverseitig auf ein bestimmtes Gericht oder eine Provinz beschränken; fügen Sie stattdessen Zuständigkeits-Stichworte zu Ihrer Abfrage hinzu (z. B. "custody Ontario" statt nur "custody").
Such-Endpunkt ist undokumentiert — er funktioniert, ist aber nicht in den offiziellen API-Dokumenten von CanLII enthalten, daher könnte er sich ohne Vorankündigung ändern.
Ratenbegrenzungen sind streng — 5.000 Abfragen/Tag, 2 Anfragen/Sek., 1 gleichzeitige Anfrage (wird automatisch durch den eingebauten Ratenbegrenzer erzwungen).
Lizenz
MIT — siehe LICENSE.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mohammadfarooqi/canlii-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server