Skip to main content
Glama

Сервер CanLII MCP

npm version License: MIT

Сервер 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)

Полнотекстовый поиск по ключевым словам по всему 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.

Типичный рабочий процесс исследования

  1. Поискsearch({ query: "gatekeeping parenting time" }) для поиска релевантных дел

  2. Получение деталейget_case_metadata(...) для получения полного цитирования и URL CanLII

  3. Проверка цитированийget_case_citator(..., metadataType: "citingCases") для проверки того, что дело является действующим прецедентом

  4. Чтение решения — Нажмите на 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:

  1. Сделайте форк этого репозитория

  2. Создайте ветку для функции (git checkout -b feature/my-improvement)

  3. Внесите изменения и протестируйте локально (npm run build && CANLII_API_KEY=your_key npm run start)

  4. Закоммитьте и отправьте изменения в свой форк

  5. Откройте pull request с описанием того, что вы изменили и почему

Если вы обнаружили проблемы с ответами API CanLII, несоответствия схем или у вас есть идеи для новых инструментов, которые помогли бы исследователям права, пожалуйста, откройте issue — даже если вы не уверены, как это исправить. Мы разберемся вместе.

Безопасность

Этот сервер спроектирован так, чтобы быть прозрачным и минималистичным:

  • Соединяется только с api.canlii.org — никаких других сетевых вызовов, телеметрии или аналитики

  • Ключ API остается локальным — передается через переменную окружения, никогда не логируется и не включается в ответы

  • Все входные данные проверяются — ID баз данных, ID дел и даты проверяются регулярными выражениями перед использованием; сегменты путей кодируются в URI

  • Все ответы API проверяются — парсятся через схемы Zod перед возвратом

  • Нет доступа к файловой системе — сервер делает только HTTPS-вызовы к CanLII

  • Нет выполнения команд оболочки — нет child_process, exec или spawn

  • 2 зависимости времени выполнения@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.

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