canlii-mcp
Сервер CanLII MCP
Сервер Model Context Protocol (MCP) для поиска канадской юридической информации через API CanLII. Ищите судебные дела, просматривайте законодательство и проверяйте цитирования — всё это из Claude Desktop или Claude Code.
npx canlii-mcpВозможности
Полнотекстовый поиск — поиск по всему CanLII по ключевым словам, названию дела или юридическому понятию
Цитирование дел (Citator) — проверка актуальности судебного решения путем поиска дел, ссылающихся на него
Просмотр законодательства — просмотр статутов и нормативных актов по юрисдикциям
Двуязычность — поддержка английского и французского языков во всех инструментах, включая цитатор
9 инструментов — поиск, просмотр судов, просмотр дел, метаданные дел, полный цитатор, предварительный просмотр цитатора, базы данных законодательства, просмотр законодательства, метаданные законодательства
Встроенное ограничение частоты запросов — очередь последовательных запросов соблюдает лимиты API CanLII (2 запроса/сек, 1 одновременный, 5000/день)
Валидация ввода — все параметры проверяются регулярными выражениями и кодируются в URI для предотвращения инъекций
Минимальный объем — 2 зависимости времени выполнения, ~500 строк кода, работает локально как процесс stdio
Безопасность прежде всего — нет доступа к файловой системе, нет выполнения команд оболочки, соединение только с
api.canlii.org
Быстрый старт
Предварительные требования: Node.js 18+ и ключ API CanLII (бесплатно для исследовательских целей).
Claude Desktop — добавьте в конфигурацию (~/Library/Application Support/Claude/claude_desktop_config.json на macOS):
{
"mcpServers": {
"canlii": {
"command": "npx",
"args": ["-y", "canlii-mcp"],
"env": {
"CANLII_API_KEY": "your_api_key_here"
}
}
}
}После сохранения перезапустите Claude Desktop.
Claude Code:
claude mcp add canlii -e CANLII_API_KEY=your_key -- npx -y canlii-mcpИз исходного кода (для разработки):
git clone https://github.com/mohammadfarooqi/canlii-mcp.git
cd canlii-mcp
npm install && npm run buildДоступные инструменты (9)
search
Полнотекстовый поиск по ключевым словам по всему CanLII — делам, законодательству и комментариям. Это основная точка входа для юридических исследований.
search({ query: "material change in circumstances Ontario", resultCount: 10 })get_courts_and_tribunals
Список всех доступных баз данных судов и трибуналов. Возвращает ID баз данных, необходимые для других инструментов.
Ключевые базы данных Онтарио: onsc (Высший суд), onca (Апелляционный суд), oncj (Суд правосудия), csc-scc (Верховный суд Канады).
get_case_law_decisions
Просмотр судебных решений из конкретной базы данных суда, отсортированных по дате добавления. Поддерживает фильтры по дате.
get_case_law_decisions({ databaseId: "onsc", resultCount: 20 })get_case_metadata
Получение полной информации по конкретному делу — цитирование, дата решения, номер дела, ключевые слова и URL CanLII для чтения полного текста решения.
get_case_metadata({ databaseId: "onsc", caseId: "2021onsc8582" })get_case_citator
Поиск связей цитирования для дела. Используйте citingCases, чтобы проверить, является ли дело действующим прецедентом.
get_case_citator({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })get_case_citator_tease
Быстрый предварительный просмотр цитирований, возвращающий максимум 5 результатов. Быстрее, чем полный цитатор, для быстрой проверки.
get_case_citator_tease({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })get_legislation_databases
Список всех баз данных законодательства. Онтарио: ons (Статуты), onr (Нормативные акты). Федеральные: cas (Статуты), car (Нормативные акты).
browse_legislation
Список законодательных актов в конкретной базе данных.
browse_legislation({ databaseId: "ons" })get_legislation_regulation_metadata
Получение метаданных для конкретного статута или нормативного акта, включая его URL на CanLII.
Типичный рабочий процесс исследования
Поиск —
search({ query: "gatekeeping parenting time" })для поиска релевантных делПолучение деталей —
get_case_metadata(...)для получения полного цитирования и URL CanLIIПроверка цитирований —
get_case_citator(..., metadataType: "citingCases")для проверки того, что дело является действующим прецедентомЧтение решения — Нажмите на URL CanLII, чтобы прочитать полный текст на canlii.org
Лимиты API
Согласно условиям API CanLII:
5000 запросов в день
2 запроса в секунду
1 запрос за раз
Только доступ к метаданным — полный текст документа через API недоступен
Сервер автоматически обеспечивает соблюдение этих лимитов с помощью встроенного ограничителя частоты запросов.
Разработка
npm run build # Compile TypeScript
npm run start # Run the server (needs CANLII_API_KEY env var)Структура проекта
src/
index.ts # MCP server — tools, rate limiter, stdio transport
schema.ts # Zod schemas for CanLII API responsesВклад в проект
Мы приветствуем ваш вклад! Этот проект направлен на то, чтобы сделать канадские юридические исследования более доступными с помощью инструментов ИИ.
Как помочь:
Сообщайте об ошибках или неожиданном поведении API — откройте issue
Предлагайте новые инструменты или улучшения — начните обсуждение
Отправляйте PR с исправлениями или новыми функциями
Чтобы отправить PR:
Сделайте форк этого репозитория
Создайте ветку для функции (
git checkout -b feature/my-improvement)Внесите изменения и протестируйте локально (
npm run build && CANLII_API_KEY=your_key npm run start)Закоммитьте и отправьте изменения в свой форк
Откройте pull request с описанием того, что вы изменили и почему
Если вы обнаружили проблемы с ответами API CanLII, несоответствия схем или у вас есть идеи для новых инструментов, которые помогли бы исследователям права, пожалуйста, откройте issue — даже если вы не уверены, как это исправить. Мы разберемся вместе.
Безопасность
Этот сервер спроектирован так, чтобы быть прозрачным и минималистичным:
Соединяется только с
api.canlii.org— никаких других сетевых вызовов, телеметрии или аналитикиКлюч API остается локальным — передается через переменную окружения, никогда не логируется и не включается в ответы
Все входные данные проверяются — ID баз данных, ID дел и даты проверяются регулярными выражениями перед использованием; сегменты путей кодируются в URI
Все ответы API проверяются — парсятся через схемы Zod перед возвратом
Нет доступа к файловой системе — сервер делает только HTTPS-вызовы к CanLII
Нет выполнения команд оболочки — нет
child_process,execилиspawn2 зависимости времени выполнения —
@modelcontextprotocol/sdk(официальный SDK Anthropic MCP) иzod(валидация схем)Встроенный ограничитель частоты запросов — очередь последовательных запросов предотвращает злоупотребление API
Лицензия MIT, полностью открытый исходный код — читайте каждую строку в src/index.ts (~350 строк) и src/schema.ts (~140 строк)
Если вы обнаружили проблему безопасности, пожалуйста, ознакомьтесь с SECURITY.md.
Известные ограничения
Нет текста решения — полнотекстовый поиск работает (поиск по названиям дел, цитированиям и содержанию), но API не может вернуть полный текст решения. Вы должны нажать на URL CanLII, чтобы прочитать решение на canlii.org. Номера абзацев и прямые цитаты должны быть проверены путем чтения источника.
Поиск основан на ключевых словах, а не на семантике — запросы вроде "mother gatekeeping sole decision-making" могут давать смешанные результаты. Уточняйте запросы и проверяйте названия дел перед изучением метаданных.
Результаты поиска не включают детали дела — поиск возвращает только цитирования и названия. Вам нужно вызывать
get_case_metadataотдельно для каждого дела, чтобы получить ключевые слова, темы, дату решения и URL CanLII.Нет индикаторов обработки — цитатор показывает, какие дела ссылаются на решение, но не указывает, было ли оно поддержано, разграничено или отменено. Вам нужно прочитать ссылающиеся дела, чтобы определить статус.
Предварительный просмотр цитатора ограничен 5 результатами — используйте
get_case_citator(полная версия) для комплексного анализа цитирований.В поиске нет фильтра по базе данных/юрисдикции — вы не можете ограничить результаты поиска конкретным судом или провинцией на стороне сервера; вместо этого добавляйте ключевые слова юрисдикции в ваш запрос (например, "custody Ontario" вместо просто "custody").
Эндпоинт поиска не задокументирован — он работает, но его нет в официальной документации API CanLII, поэтому он может измениться без предупреждения.
Строгие лимиты API — 5000 запросов/день, 2 запроса/сек, 1 одновременный запрос (обеспечивается автоматически встроенным ограничителем).
Лицензия
MIT — см. 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