canlii-mcp
Servidor MCP de CanLII
Un servidor del Protocolo de Contexto de Modelo (MCP) para buscar información legal canadiense a través de la API de CanLII. Busque casos, explore legislación y verifique citas, todo desde Claude Desktop o Claude Code.
npx canlii-mcpCaracterísticas
Búsqueda de texto completo — busque en todo CanLII por palabra clave, nombre del caso o concepto legal
Citador de casos — verifique si un caso sigue vigente buscando qué casos posteriores lo citan
Exploración de legislación — explore estatutos y reglamentos por jurisdicción
Bilingüe — soporte en inglés y francés en todas las herramientas, incluido el citador
9 herramientas — búsqueda, explorar tribunales, explorar casos, metadatos de casos, citador completo, vista previa del citador, bases de datos de legislación, explorar legislación, metadatos de legislación
Limitación de tasa integrada — la cola de solicitudes serializadas respeta los límites de la API de CanLII (2 req/seg, 1 concurrente, 5,000/día)
Validación de entrada — todos los parámetros validados mediante expresiones regulares y codificados en URI para evitar inyecciones
Huella mínima — 2 dependencias en tiempo de ejecución, ~500 líneas de código, se ejecuta localmente como un proceso stdio
Seguridad primero — sin acceso al sistema de archivos, sin ejecución de shell, solo se conecta a
api.canlii.org
Related MCP server: canlii-mcp
Inicio rápido
Requisitos previos: Node.js 18+ y una clave de API de CanLII (gratuita para uso de investigación).
Claude Desktop — añádalo a su configuración (~/Library/Application Support/Claude/claude_desktop_config.json en macOS):
{
"mcpServers": {
"canlii": {
"command": "npx",
"args": ["-y", "canlii-mcp"],
"env": {
"CANLII_API_KEY": "your_api_key_here"
}
}
}
}Reinicie Claude Desktop después de guardar.
Claude Code:
claude mcp add canlii -e CANLII_API_KEY=your_key -- npx -y canlii-mcpDesde el código fuente (para desarrollo):
git clone https://github.com/mohammadfarooqi/canlii-mcp.git
cd canlii-mcp
npm install && npm run buildHerramientas disponibles (9)
search
Búsqueda de texto completo por palabras clave en todo CanLII: casos, legislación y comentarios. Este es el punto de entrada principal para la investigación legal.
search({ query: "material change in circumstances Ontario", resultCount: 10 })get_courts_and_tribunals
Enumere todas las bases de datos de tribunales disponibles. Devuelve los ID de base de datos necesarios para otras herramientas.
Bases de datos clave de Ontario: onsc (Tribunal Superior), onca (Tribunal de Apelaciones), oncj (Tribunal de Justicia), csc-scc (Corte Suprema de Canadá).
get_case_law_decisions
Explore decisiones de jurisprudencia de una base de datos de tribunales específica, ordenadas por las añadidas más recientemente. Admite filtros de fecha.
get_case_law_decisions({ databaseId: "onsc", resultCount: 20 })get_case_metadata
Obtenga detalles completos de un caso específico: cita, fecha de decisión, número de expediente, palabras clave y URL de CanLII para leer la decisión completa.
get_case_metadata({ databaseId: "onsc", caseId: "2021onsc8582" })get_case_citator
Busque relaciones de citas para un caso. Use citingCases para verificar si un caso sigue vigente.
get_case_citator({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })get_case_citator_tease
Vista previa rápida de citas que devuelve un máximo de 5 resultados. Más rápido que el citador completo para una verificación rápida.
get_case_citator_tease({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })get_legislation_databases
Enumere todas las bases de datos de legislación. Ontario: ons (Estatutos), onr (Reglamentos). Federal: cas (Estatutos), car (Reglamentos).
browse_legislation
Enumere elementos de legislación dentro de una base de datos específica.
browse_legislation({ databaseId: "ons" })get_legislation_regulation_metadata
Obtenga metadatos para un estatuto o reglamento específico, incluida su URL de CanLII.
Flujo de trabajo de investigación típico
Búsqueda —
search({ query: "gatekeeping parenting time" })para encontrar casos relevantesObtener detalles —
get_case_metadata(...)para obtener la cita completa y la URL de CanLIIVerificar citas —
get_case_citator(..., metadataType: "citingCases")para verificar que el caso sigue vigenteLeer la decisión — Haga clic en la URL de CanLII para leer el texto completo en canlii.org
Límites de tasa de la API
Según los términos de la API de CanLII:
5,000 consultas por día
2 solicitudes por segundo
1 solicitud a la vez
Solo acceso a metadatos: el texto completo del documento no está disponible a través de la API
El servidor aplica estos límites automáticamente con un limitador de tasa integrado.
Desarrollo
npm run build # Compile TypeScript
npm run start # Run the server (needs CANLII_API_KEY env var)Estructura del proyecto
src/
index.ts # MCP server — tools, rate limiter, stdio transport
schema.ts # Zod schemas for CanLII API responsesContribución
¡Las contribuciones son bienvenidas! Este proyecto tiene como objetivo hacer que la investigación legal canadiense sea más accesible a través de herramientas de IA.
Formas de contribuir:
Informe errores o comportamiento inesperado de la API: abra un issue
Sugiera nuevas herramientas o mejoras: inicie una discusión
Envíe un PR con correcciones o nuevas funciones
Para enviar un PR:
Haga un fork de este repositorio
Cree una rama de función (
git checkout -b feature/my-improvement)Realice sus cambios y pruebe localmente (
npm run build && CANLII_API_KEY=your_key npm run start)Confirme y envíe a su fork
Abra una solicitud de extracción con una descripción de lo que cambió y por qué
Si encuentra problemas con las respuestas de la API de CanLII, discrepancias en el esquema o tiene ideas para nuevas herramientas que ayudarían a los investigadores legales, abra un issue, incluso si no está seguro de cómo solucionarlo. Investigaremos juntos.
Seguridad
Este servidor está diseñado para ser transparente y minimalista:
Solo se conecta a
api.canlii.org— sin otras llamadas de red, sin telemetría, sin análisisLa clave API permanece local — se pasa a través de una variable de entorno, nunca se registra ni se incluye en las respuestas
Todas las entradas validadas — los ID de base de datos, los ID de caso y las fechas se validan mediante expresiones regulares antes de su uso; los segmentos de ruta están codificados en URI
Todas las respuestas de la API validadas — analizadas a través de esquemas Zod antes de ser devueltas
Sin acceso al sistema de archivos — el servidor solo realiza llamadas HTTPS a CanLII
Sin ejecución de shell — sin
child_process,execospawn2 dependencias en tiempo de ejecución —
@modelcontextprotocol/sdk(SDK oficial de Anthropic MCP) yzod(validación de esquema)Limitador de tasa integrado — la cola de solicitudes serializadas evita el abuso de la API
Licencia MIT, código abierto completo — lea cada línea en src/index.ts (~350 líneas) y src/schema.ts (~140 líneas)
Si descubre un problema de seguridad, consulte SECURITY.md.
Limitaciones conocidas
Sin texto del cuerpo de la decisión — la búsqueda de texto completo funciona (buscando en títulos de casos, citas y contenido), pero la API no puede devolver el texto completo de una decisión. Debe hacer clic en la URL de CanLII para leer la decisión en canlii.org. Los números de párrafo y las citas directas deben verificarse leyendo la fuente.
La búsqueda se basa en palabras clave, no es semántica — consultas como "mother gatekeeping sole decision-making" pueden devolver resultados mixtos. Refine las consultas y verifique los títulos de los casos antes de profundizar en los metadatos.
Los resultados de búsqueda no incluyen detalles del caso — la búsqueda solo devuelve citas y títulos. Debe llamar a
get_case_metadatapor separado para cada caso para obtener palabras clave, temas, fecha de decisión y la URL de CanLII.Sin indicadores de tratamiento — el citador muestra qué casos citan una decisión, pero no indica si fue seguida, distinguida o anulada. Debe leer los casos que citan para determinar el tratamiento.
La vista previa del citador se limita a 5 resultados — use
get_case_citator(versión completa) para un análisis de citas exhaustivo.La búsqueda no tiene filtro de base de datos/jurisdicción — no puede limitar los resultados de búsqueda a un tribunal o provincia específica en el lado del servidor; añada palabras clave de jurisdicción a su consulta en su lugar (p. ej., "custody Ontario" en lugar de solo "custody").
El endpoint de búsqueda no está documentado — funciona pero no está en los documentos oficiales de la API de CanLII, por lo que podría cambiar sin previo aviso.
Los límites de tasa son estrictos — 5,000 consultas/día, 2 req/seg, 1 solicitud concurrente (aplicado automáticamente por el limitador de tasa integrado).
Licencia
MIT — consulte LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceProvides access to Canadian federal parliamentary data (debates, bills, MPs, votes, Hansard transcripts) and legal information (case law and legislation through CanLII) for research and analysis.3
- AlicenseNot gradedqualityCmaintenanceProvides access to the CanLII API for searching and retrieving Canadian legal information, including court decisions, legislation, and citations.22MIT

caselegis-mcpofficial
AlicenseNot gradedqualityDmaintenanceEnables searching, retrieving, and checking citation status of California legal opinions via the Caselegis API.MIT- FlicenseAqualityDmaintenanceEnables Claude Desktop to search the CanLII Canadian legal database and retrieve the full text of matching legal documents.1
Related MCP Connectors
MCP for CanLII: Canadian case law and legislation metadata (federal, provincial, territorial).
Resolve, search and verify legal citations against the official sources, with provenance.
Search Swiss federal legislation: laws, articles, amendments via the Fedlex SPARQL endpoint.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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