MCP for CanLII: Canadian case law and legislation metadata (federal, provincial, territorial).
MCPpedia last refreshed this data
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-vaquill-ai-canlii-mcp": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP for CanLII: Canadian case law and legislation metadata (federal, provincial, territorial).
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in legal
Proof primitive for AI agents on MultiversX. Anchor file hashes on-chain as verifiable proofs.
87 tools for Korean law — statutes, precedents, ordinances, interpretations | MCP Server · CLI · npm
956k Swiss court decisions: full-text search, citation graph, statute lookup (DE/FR/IT)
Belgian legislation via MCP — full-text search across statutes and provisions
MCP Security Weekly
Get CVE alerts and security updates for io.github.Vaquill-AI/canlii-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP (Model Context Protocol) server for the CanLII Canadian legal information API. Gives AI assistants access to Canadian case law and legislation metadata across all federal, provincial, and territorial jurisdictions.
Forked from tomilashy/canlii-mcp. This fork adds bring-your-own-key (BYOK) auth, a
/healthroute, and a hosted endpoint atcanlii-mcp.vaquill.ai. Tools are unchanged.
Note: The CanLII API provides metadata only — titles, citations, dates, keywords, and citation relationships. Full document text is not available through the API.
https://canlii-mcp.vaquill.ai/mcp
The hosted instance is public. No Vaquill token is required. Provide your own CanLII key one of two ways:
Header (recommended, keeps the key out of the URL): X-CanLII-Token: <your_canlii_api_key>
URL parameter (simplest; works in header-less clients like the Claude Desktop connector UI and claude.ai web): append ?token=<your_canlii_api_key> to the URL:
https://canlii-mcp.vaquill.ai/mcp?token=YOUR_CANLII_API_KEY
Apply for a key at canlii.org/en/api/. The server never stores your key, and there is no server-side fallback key, so every call counts against your own CanLII quota.
{
"mcpServers": {
"canlii": {
"url": "https://canlii-mcp.vaquill.ai/mcp",
"headers": {
"X-CanLII-Token": "YOUR_CANLII_API_KEY"
}
}
}
}
Same pattern: any client supporting MCP streamable HTTP with custom headers works. For stdio-only clients use mcp-remote to proxy.
| Mode | Header | When |
|---|---|---|
| BYOK header (preferred) | X-CanLII-Token: <key> | Hosted / shared deployments |
| BYOK URL param | ?token=<key> (or ?canlii_token=) | Header-less clients: Claude Desktop connector UI, claude.ai web |
| Server fallback | (env CANLII_API) | Self-hosted single-tenant. Required for stdio. |
| MCP gate | Authorization: Bearer <MCP_AUTH_TOKEN> | Optional, self-host only. The public hosted endpoint at canlii-mcp.vaquill.ai does not use it, so no bearer token is required. |
| Tool | Description |
|---|---|
list_case_databases | List all courts and tribunals in the CanLII collection |
list_cases | Browse decisions from a specific court/tribunal database |
get_case | Get metadata for a specific case (title, citation, date, keywords) |
get_case_citations | Get cases cited by a case, cases citing it, or legislation it references |
list_legislation_databases | List all statute and regulation databases |
list_legislation | Browse statutes or regulations from a specific database |
get_legislation | Get metadata for a specific piece of legislation |
{
"mcpServers": {
"canlii": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@tomilashy/canlii-mcp"],
"env": {
"CANLII_API": "your_api_key"
}
}
}
}
npm install
npm run build
node dist/index.js
Add to your MCP config:
{
"mcpServers": {
"canlii": {
"command": "node",
"args": ["/path/to/canlii-mcp/dist/index.js"],
"env": {
"CANLII_API": "your_api_key"
}
}
}
}
PORT=3000 CANLII_API=your_api_key node dist/index.js --transport http
The MCP endpoint is available at http://localhost:3000/mcp. The server runs in stateless mode — each request is self-contained, no session ID or initialize handshake required. Clients can call tools directly:
... [View full README on GitHub](https://github.com/vaquill-ai/canlii-mcp#readme)