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