Skip to main content
Glama

Servidor MCP de CanLII

npm version License: MIT

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

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

Desde el código fuente (para desarrollo):

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

Herramientas disponibles (9)

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

  1. Búsquedasearch({ query: "gatekeeping parenting time" }) para encontrar casos relevantes

  2. Obtener detallesget_case_metadata(...) para obtener la cita completa y la URL de CanLII

  3. Verificar citasget_case_citator(..., metadataType: "citingCases") para verificar que el caso sigue vigente

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

Contribució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:

  1. Haga un fork de este repositorio

  2. Cree una rama de función (git checkout -b feature/my-improvement)

  3. Realice sus cambios y pruebe localmente (npm run build && CANLII_API_KEY=your_key npm run start)

  4. Confirme y envíe a su fork

  5. 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álisis

  • La 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, exec o spawn

  • 2 dependencias en tiempo de ejecución@modelcontextprotocol/sdk (SDK oficial de Anthropic MCP) y zod (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_metadata por 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.

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