Skip to main content
Glama

CanLII MCP-Server

npm version License: MIT

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-mcp

Funktionen

  • 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-mcp

Aus dem Quellcode (für die Entwicklung):

git clone https://github.com/mohammadfarooqi/canlii-mcp.git
cd canlii-mcp
npm install && npm run build

Verfügbare Tools (9)

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

  1. Suchesearch({ query: "gatekeeping parenting time" }), um relevante Fälle zu finden

  2. Details abrufenget_case_metadata(...), um das vollständige Zitat und die CanLII-URL zu erhalten

  3. Zitate prüfenget_case_citator(..., metadataType: "citingCases"), um zu verifizieren, dass der Fall noch geltendes Recht ist

  4. Entscheidung 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 responses

Mitwirken

Beiträge sind willkommen! Dieses Projekt zielt darauf ab, die kanadische juristische Recherche durch KI-Tools zugänglicher zu machen.

Möglichkeiten zur Mitwirkung:

Um einen PR einzureichen:

  1. Forken Sie dieses Repository

  2. Erstellen Sie einen Feature-Branch (git checkout -b feature/my-improvement)

  3. Nehmen Sie Ihre Änderungen vor und testen Sie lokal (npm run build && CANLII_API_KEY=your_key npm run start)

  4. Committen und pushen Sie zu Ihrem Fork

  5. Ö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 Analytik

  • API-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, exec oder spawn

  • 2 Laufzeitabhängigkeiten@modelcontextprotocol/sdk (offizielles Anthropic MCP SDK) und zod (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_metadata aufrufen, 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.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

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