Korean Law MCP
42 API, объединённые в 10 инструментов. Поиск, получение и анализ корейского законодательства — законов, судебных прецедентов, муниципальных постановлений и договоров. Включает защиту от галлюцинаций LLM при проверке юридических ссылок (законов и прецедентов: наличие и содержание), проверку цитирования прецедентов (cite_check), определение применимой редакции закона на конкретную дату (applicable_law), отслеживание изменений муниципальных постановлений (ordinance_radar) и поиск законов, пришедших на смену отменённым.
MCP-сервер и CLI для официальной базы данных законодательства Кореи (법제처 Open API). Совместимы с Claude Desktop, Cursor, Windsurf, Zed и любыми клиентами с поддержкой MCP.
Начните с одной строки: добавьте https://mcp.gomdori.app/law?oc=YOUR_KEY как пользовательский коннектор в Claude.ai или выполните npx --ignore-scripts --omit=optional korean-law-mcp setup → «Краткое руководство»
Если проект экономит вам время, поставьте ⭐ на GitHub — это поможет другим найти его.
▶ Нажмите, чтобы посмотреть на YouTube. Озвучка — на корейском языке.
v4.15.9: Решения органов по вопросам труда
- В
search_decisionsиget_decision_textдобавлены толкования Министерства занятости и труда (moel), решения комиссии по рассмотрению дел о страховании от производственных травм (iaciac) и решения комиссии по рассмотрению дел о страховании по безработице (eiac). Автор изменений — @adfakdjk332 (#175). Список изменений
v4.15.8: Поиск дополнительных положений
get_law_text(mst, jo="부칙")возвращает дополнительные положения — даты вступления в силу и переходные положения — в порядке от новых к старым. Например, дополнительные положения Конституции, статьи 1–6. Теперь оглавление и полный текст завершаются указанием количества дополнительных положений. Список изменений
v4.15.7: Даты на границе месяца и восьмизначные номера дел
-
Исправлена ошибка, из-за которой
지난달,N개월 전и최근 N개월выбирали неверный месяц на границе месяца. Например, 30 марта지난달теперь означает февраль. -
Исправлена обработка восьмизначных порядковых номеров дел: раньше они терялись при проверке ссылок на прецеденты, а девятизначные номера обрезались, превращаясь в номера других дел. Список изменений, задачи #169 и #170
v4.15.6: Поиск прецедентов по тексту решения
-
Для поиска прецедентов добавлен параметр
search="both": он одновременно выполняет поиск по заголовкам и полному тексту, удаляет дубликаты по идентификатору прецедента и указывает, какой поиск дал каждый результат.search_decisions(domain="precedent", options={search:"both"}) -
Если поиск по заголовкам возвращает не более трёх результатов, система предлагает повторить поиск по полному тексту. Например, поиск «학원강사 근로자» дал 1 результат по заголовку и 70 — по полному тексту.
-
Исправлена обработка строки
search:"2", переданной через options: раньше она интерпретировалась как поиск по заголовку. Поведение по умолчанию не изменилось. Список изменений, задача #167
v4.15.5: Границы получения данных и проверки
-
Исправлены ошибки, связанные с отсутствующими текстами прецедентов, отменой чтения кэша и границами действия закона и его редакций при выборе диапазонов статей.
-
При проверке ссылок на прецеденты теперь учитываются номера дел с пробелами; также исправлена передача кодов статей и извлечение ключевых слов.
-
Исправлены сжатие решений и обработка правовых оснований, иерархии законов и меток примеров, а также отображение ежедневных законов и терминов.
-
Предотвращена подмена исторических редакций; усилена маскировка ключей и ограничение аргументов CLI для MCP и CLI.
-
Повторно проверены все функции. Новых функций и изменений зависимостей нет. Список изменений, отчёт о проверке
v4.15.4: Полная проверка функций и исправления
-
Исправлены сопоставление номеров дел, границы кратких изложений, выбор статей и приложений, а также трёхуровневые ответы в режиме проверки цитирования.
-
Сохранены поля решений, договоров и английского законодательства; теперь пропущенные ссылки помечаются, как и неудачные поиски по сценариям.
-
Исправлены даты муниципальных постановлений и ссылки на исходные законы; восстановлено обнаружение рисков за пределами усечённых фрагментов статей.
-
Исправлены отмена HTTP-запросов и передача ключей, маршрутизация исследований по вопросам конкуренции, официальные ссылки и ввод данных CLI.
-
Проверены все 99 внутренних инструментов и 10 доступных инструментов. Новых функций и изменений зависимостей нет. Список изменений, отчёт о проверке
v4.15.3: Точность и производительность получения данных
-
Добавлен точный поиск по номеру дела и проверка резервного поиска для каждого дела; если проверка последующей обработки отключена, статус явно указывается как неподтверждённый.
-
Для получения текстов и отслеживания цитирования добавлен общий ограниченный кэш на 20 разобранных записей о прецедентах.
-
В пределах пакета запросов к статьям совместно используются выполняющиеся запросы на чтение законов.
-
Добавлены общие временные ограничения и отмена при чтении текстов; исправлены выбор статей и приложений, а также сравнение редакций по датам вступления в силу.
-
Выпуск с исправлениями, без новых функций. Список изменений, отчёт о проверке
v4.15.2: Исправления по результатам аудита последних выпусков
Аудит версий с 4.14.0 по 4.15.1 выявил случаи, когда система незаметно выдавала неверные ответы или работала медленно. Доступные инструменты и аргументы не изменились.
-
Подсказки о следующих шагах в выводе инструментов теперь ссылаются только на доступные инструменты: ранее в 22 подсказках упоминались инструменты, которых не было в списке.
-
В текстах прецедентов больше не остаются исходные теги
\n, а сокращённый текст решения больше не обрывается посреди даты. -
В поиске по истории теперь учитываются версия административного правила на указанную дату, история законов до 1997 года, повторно принятых под тем же названием, а также пометки об отмене и текущем статусе при определении редакции на заданную дату.
-
При достижении временного ограничения цепочки сохраняют уже полученные данные; временное ограничение также добавлено для document_review и статистики по законам.
-
Версия kordoc зафиксирована на 4.18.2, автоматическое OCR для PDF отключено.
v4.15.1: Приложения в соответствии с оригиналом
Парсер приложений в kordoc 4.17.0 теперь считывает их с учётом исходного оформления HWP. В 103 из 272 приложений вся страница была оформлена таблицами в рамках с невидимыми границами, из-за чего содержимое отображалось как одна большая таблица. Теперь рамки без границ преобразуются в обычный текст, таблицами остаются только части с линиями, а дроби, составленные из двух ячеек и линии, записываются в формате $\frac{…}{…}$.
-
Количество таблиц, точно соответствующих оригиналу (всего 346): HWP — с 66 до 346, PDF с law.go.kr — с 56 до 335.
-
Описание
efYdвget_law_textтеперь поясняет, что указанная дата (например, дата выдачи разрешения на строительство или происшествия) используется для выбора редакции, действовавшей в этот день.
v4.15.0: Определение редакции закона на заданную дату с учётом переименований
Корейские законы часто переименовывают: например, закон о пожарной безопасности с 2004 года менял название трижды. Раньше история сопоставлялась по названию, поэтому все редакции, принятые до переименования, пропадали, а applicable_law для даты 2015 года отвечал, что закон ещё не вступил в силу. Теперь редакции связываются по идентификатору закона через поиск eflaw с LID и группируются по периодам действия. По-прежнему доступны 10 инструментов; добавлены только необязательные параметры.
-
applicable_lawнаходит законы под прежними названиями. Например, для указа о пожарной безопасности за 2015 год список истории увеличился с 9 до 79 редакций. Также появляется предупреждение, если между редакциями была полная переработка закона с перенумерацией статей. -
get_annexesпринимает параметрdateи возвращает приложение к редакции, действовавшей в указанную дату, например критерии установки оборудования на момент выдачи разрешения на строительство. -
applicable_lawтакже работает с административными правилами, например с уведомлениями. Для стандарта пожарной безопасности спринклерных систем (NFSC 103 → NFPC 103) учитывается единая история с 2004 года. Вget_admin_ruleподдерживаются номера разделов в формате NFTC, напримерjo: "2.7.3". -
Если
efYdне соответствует дате вступления редакции в силу (например, это сегодняшняя дата или дата происшествия),get_law_textиспользует её как дату, на которую нужно определить редакцию, а не завершается с ошибкой. -
verify_citationsсообщает о переименовании закона, а не об его отмене;get_article_historyбольше не пропускает изменения, выходящие за пределы первой страницы. -
Лимиты размера тела ответа от источника по умолчанию увеличены до 8/24 MiB — до значений, используемых на размещённом сервере. Повторный поиск приложений ускорен с 2,4 до 0,8 секунды. См. список изменений
v4.13.0 — Мониторинг реестра соответствия требованиям: с 98 вызовов до 1–2
Три отчёта о работе сервера с реестром соответствия требованиям ISO (108 законов в 8 областях):
#157 · #158 · #159 (@thkim660207-cmd). Число тестов выросло с 738 до 758.
search_law_bulk: принимает массив названий законов и возвращает по одной краткой строке на каждый закон:law_id · MST · effective_date · upcoming.
Передайте previous={law_id: previous_MST}, чтобы включить режим сравнения: в ответ попадут только законы, у которых изменился MST. Благодаря этому полная проверка реестра занимает один-два вызова. В конце ответа приводится JSON-снимок, который можно напрямую использовать при следующем запуске. Поправки, уже опубликованные, но ещё не вступившие в силу, не меняют текущий MST и отображаются отдельно, а не помечаются как «без изменений».
-
История поправок по статьям теперь включается по запросу (
includeHistory=true— чтобы вернуть прежнее поведение). Раньше она каждый раз выводилась начиная с момента принятия закона. Для Закона об охране труда и промышленной безопасности, принятого в 1981 году, одна только эта секция превышала лимит ответа в 50k символов и обрезала нужную пользователям таблицу сравнения старой и новой редакций. -
Для приложений, содержащих только изображения, это теперь явно указано: в некоторых уведомлениях таблицы предельных значений сбросов передаются как `` без текстового содержимого. Раньше такая запись считалась содержащей данные, что создавало условия для того, чтобы модель начала угадывать числа. Теперь в ответ включаются предупреждение, URL источника и ссылки на исходные вложения (hwpx/pdf) — API возвращал их и раньше, но код не показывал.
v4.12.0 — Пакет из 62 исправлений и устранение ситуаций, когда система ошибочно сообщает «запись не существует»
В рамках пакета проверили три направления: юридическую корректность, эффективность использования токенов и задержку ответа. Закрыто 62 зарегистрированные задачи (#88–#149, PR #150 от @humdrum00001010). Дополнительно исправлен 31 дефект, обнаруженный при проверке предметных областей перед слиянием. Число тестов выросло с 196 до 701.
Теперь сервер не заявляет об отсутствии записи, если она просто недоступна. Для инструмента юридического поиска самая опасная ошибка — не медленная работа, а утверждение, что существующего закона или судебного прецедента нет.
-
При поиске прецедентов один пустой ответ после ошибки 503 или сетевой ошибки раньше считался подтверждением отсутствия записи. Теперь решение основывается на истории наблюдений, а не на количестве попыток.
-
При сбое HTML-резервного пути сервер сообщал
[NOT_FOUND]даже для существующих прецедентов, если получал страницу обслуживания или антибот-страницу. Теперь он отличает неисправность механизма восстановления от отсутствующей записи. -
При поиске приложений HTML-ответы без предупреждения преобразовывались в пустые списки, после чего система делала вывод, что записи «нет в базе данных 법제처».
Запросы больше не зависают и не теряются целиком.
-
Для цепочек исследовательских запросов установлен тайм-аут 45 секунд (
MCP_CHAIN_DEADLINE_MS). По его истечении сервер собирает все полученные результаты и возвращает частичный ответ, отмечая отсутствующие части. Раньше медленные внешние сервисы превышали тайм-аут MCP-клиента (60 секунд), из-за чего терялся весь результат. -
Для тел запросов размером больше 2 MiB: зависание на 300 секунд → явная ошибка за 13 мс (исправлена регрессия в v4.11.0).
-
Поиск отсутствующего прецедента: 12,5 с → 2,2 с; поиск в системном дереве: 10,6–11,6 с → 6,3–8,3 с.
-
Маршрутизация запроса длиной 8,5 тыс. символов занимает 476 мс. Регулярное выражение, обработка которого на специально подобранном вводе занимала до 45,9 с, удалено.
Проверка цитат стала точнее.
-
Теперь
verify_citationsпроверяет не только законы, но и прецеденты и различает ситуации «такой записи быть не может» и «запись не удалось проверить». -
impact_mapсопоставляет название закона, а не только номер статьи. Поэтому статья 1 군형법 больше не влияет на запрос по статье 1 형법. Неоднозначные случаи сохраняются для проверки, а не отбрасываются, в том числе распространённые в конституционном контроле ссылки на «구 OO법». -
cite_checkтеперь обрабатывает правовые позиции, переданные в виде массивов или объектов. Раньше такие случаи приводили к незаметному сбою.
Приложения и поиск. Теперь доступны приложения за пределами первых 100 результатов (проверено на 도로교통법 시행규칙: приложение 28 из 263). Исключена незаметная подмена приложения 1의2 приложением 1. Объём ответов discover_tools уменьшен на 65%, при этом сохранены 10 из 10 правильных ответов.
Два изменения, заметных пользователям: даты теперь отображаются в формате
2024.01.05вместо2024.1.5.(пустые даты вступления в силу показываются какN/A), аdiscover_toolsвозвращает упорядоченный список ссылок.
v4.11.0 — Усиление защиты на границах обработки запросов и выпуска
Закрыты сценарии, в которых один запрос мог приводить к сотням обращений к внешним сервисам или сервер продолжал работу после отключения клиента.
-
Лимит выполнения на запрос: повторные попытки и обращения при обходе антибот-защиты используют общий лимит (
MCP_MAX_UPSTREAM_REQUESTS, по умолчанию 48). -
Передача сигнала отмены: при отключении HTTP-соединения или отмене MCP сигнал теперь передаётся инструментам, цепочкам, запросам к внешним сервисам и ожиданиям между повторными попытками.
-
Проверка пакета: перед публикацией блокируются артефакты без исходных файлов и пакеты с отсутствующими целями
exports.
⚠️ Несовместимые изменения: адрес привязки HTTP по умолчанию изменён с
0.0.0.0на127.0.0.1; значениеTRUST_PROXYпо умолчанию изменено с1наfalse(принимаются только целые числа от 1 до 10); введены ограничения для входных данныхget_batch_articles(20 законов, не более 50 статей для каждого и 100 статей на запрос). Подробности о переходе см. в CHANGELOG.
v4.10.0 — Для утративших силу законов теперь указываются заменившие их акты
Раньше поиск утратившего силу закона не возвращал результатов. Теперь сервер отслеживает историю изменений и сообщает причину отмены, а также действующий сводный акт, как для законов, так и для административных правил. Поэтому запросы о законах, утративших силу, больше не заканчиваются тупиком.
v4.9.7 — Устранение всплеска ошибок 429 для пользователей без собственного ключа: резервная квота на основе token bucket
Пользователи публичного сервера (mcp.gomdori.app/law), у которых нет собственного ключа 법제처, постоянно получали ошибки 429. Резервная квота серверного ключа — это общий лимит для всех пользователей без ключа, рассчитанный по фиксированному временному окну. Если несколько пользователей исчерпывали квоту в начале окна, остальные не могли отправлять запросы до его завершения. По данным измерений в production (2026-08-12), 2 из каждых 3 запросов без ключа отклонялись сразу.
-
Фиксированное окно заменено на token bucket (
src/lib/rate-limit.ts): благодаря непрерывному пополнению квоты пользователь может отправить запрос через несколько секунд после её исчерпания, не дожидаясь окончания окна. Средняя пропускная способность не меняется, но кратковременные всплески запросов обрабатываются — это соответствует тому, как MCP-клиенты вызывают несколько инструментов за один ход диалога. -
Добавлены заголовок
Retry-Afterи время ожидания в сообщении: теперь в ответах 429 указаноretry in Ns, а ответ об ограничении по IP оформлен в формате JSON-RPC. Раньше использовался обычный ответ{error}, который MCP-клиенты не могли разобрать. -
Добавлен
FALLBACK_DAILY_CAP: параметр ограничивает общий расход квоты за скользящие 24 часа. Благодаря этому можно ослабить поминутное ограничение, не подвергая риску внешнюю квоту серверного ключа. Значение0отключает лимит (по умолчанию). -
Настройки публичного сервера: поминутный лимит увеличен с 30 до 120, дневной лимит составляет
43,200(теоретический общий объём за 24 часа при прежнем лимите 30 запросов в минуту). Общий лимит не изменился, но запас для кратковременных всплесков вырос в 4 раза.
Запросы с собственным ключом 법제처 в заголовке apikey не подпадают под это ограничение (бесплатная регистрация: https://open.law.go.kr).
v4.9.0 — Три вида записи, из-за которых проверка ссылок на законы незаметно пропускалась (текущая версия)
Если verify_citations используется в конвейере как фильтр для обнаружения галлюцинаций, опаснее всего не ситуация «проверка завершилась ошибкой», а ситуация, когда проверка вообще не запускалась. Если название закона не распознано, проверка наличия статьи не выполняется, а в результате отображается только предупреждение (⚠). Поэтому даже если в том же тексте приведена вымышленная статья, отметка ✗ не появляется. Пользователи воспринимают это как «проверка пройдена». Эти три варианта записи обнаружили благодаря реальным сообщениям:
「노인장기요양보험법」 제38조제1항 및 같은 법 시행규칙 제30조
("Article 38(1) of the Long-Term Care Insurance Act and Article 30 of the
Enforcement Rule of the same Act")
before ⚠ 0 verified / 2 needs-check — matched only '119 Emergency Report ... Enforcement Rule'
after ✓ Article 38(1) verified · ✓ Enforcement Rule Article 30 verified
└ Article 999 in the same text → ✗ NOT_FOUND (range: 1–44) — gate actually fires
-
Сбой извлечения внутри
「…」(#69, @BW-YU): регулярное выражениеLAW_NAME_REGEXожидает, что название закона заканчивается на$, но закрывающая скобка в конце проверяемого фрагмента мешала срабатыванию этого условия. Ранее удалялись только конечные пробелы. -
Несовпадение интерпункта (#69, @BW-YU): в официальных названиях законов используется корейский интерпункт
ㆍ(U+318D), тогда как в реальных документах, судебных решениях и текстах LLM обычно встречается·(U+00B7). Теперь обрабатываются варианты·ㆍ‧•・. Защита от совпадения с посторонним законом (민법→난민법) не изменилась. -
Анафора
같은 법(тот же закон) (#70, @gonnarun): стандартная форма записи в законах и государственных документах. При сокращении списка кандидатов оставались только окончания названий, например시행규칙, из-за чего находились посторонние законы; предыдущее название закона при этом не учитывалось. Теперь оно наследуется, но не через пустую строку и только при наличии предшествующего упоминания: проверка по неверному закону хуже, чем отсутствие проверки. Если подходящего кандидата нет, система сообщает⚠ law name unclear, а не помечает отсутствие результатов поиска как✗ NOT_FOUND.
+ v4.8.0 — Пять внешних вкладов (#63–#67)
Определение закона на заданную дату, разбор истории изменений, разрешение поисковых запросов, повторные попытки и обработка отменённых законов.
v4.7.0 — Отслеживание изменений постановлений (ordinance_radar)
«Изменился закон, на основании которого принято постановление. Не устарело ли наше постановление?» Один вызов отвечает на вопрос, который ежегодно приходится выяснять сотрудникам местных органов власти.
-
Автоматическое извлечение законов, лежащих в основе постановления: анализирует статью 1 (цели) постановления и извлекает из обозначений в
「」ссылки на базовый закон, указ и правила его исполнения, включая сокращённую форму «같은 법 시행령». Анализ только статьи о целях помогает избежать ложных срабатываний из-за ссылок на посторонние законы в таблицах приложений. -
Сверка изменений: сравнивает текущую дату вступления в силу каждого базового закона с датой вступления в силу постановления. Если закон был изменён после вступления постановления в силу, система сообщает: «базовый закон изменён после вступления постановления в силу → проверьте необходимость пересмотра». Для последующей проверки указываются идентификаторы MST.
-
Официальный API для связывания постановлений с законами (lnkOrd) охватывает недостаточно данных, поэтому вместо него система анализирует стандартный формат ссылок в тексте постановления.
-
В этом выпуске также добавлена обработка пакетных запросов JSON-RPC: каждый вызов
tools/callучитывается при расчёте квот на частоту запросов и резервные операции (устранение риска усиления нагрузки, лимит 20 вызовов на запрос черезMCP_MAX_BATCH_CALLS). Кроме того, обеспечено корректное завершение работы, а вget_article_historyдобавлено разрешение законов с приоритетом точного совпадения.
+ v4.7.1–v4.7.4 — Исправления точности поиска и проверки ссылок на законы
-
v4.7.4:
search_lawбольше не возвращает неподходящий закон. Распространённое название «인공지능법» не входит в официальное название «인공지능 발전과 신뢰 기반 조성 등에 관한 기본법», поэтому поиск с оператором LIKE не находил результатов. Расширенный запрос («AI법») возвращал 50 посторонних законов, игнорируя запрос. Добавлены псевдонимы и проверкаhasRelatedHit: если название или псевдоним ни одного результата не совпадает с запросом, результат отклоняется. -
v4.7.2:
verify_citationsмог возвращатьPARTIAL_VERIFIEDи тем самым пропускать галлюцинации, если перед названием закона стояло уточняющее слово («절도죄는 형법 제329조…»). Исправлено: система повторно вызываетfindLaws, постепенно удаляя начальные слова (#55). Также исправлены проблемы в hono (5 рекомендаций HIGH, #54). -
v4.7.1:
legal_researchтеперь обрабатывает значениеscenario, ошибочно переданное вместоtask, и не прерывает вызов инструмента. Вordinance_radarдобавлен псевдонимquery(по отзывам в рамках проверки PlayMCP).
v4.6.0 — Более глубокая проверка содержания ссылок на законы и защита от антибот-систем в облаке
-
Проверка содержания в
verify_citations: теперь система не только подтверждает существование статьи, но и обнаруживает галлюцинации в её содержании, например민법 제750조(계약해제): статья 750 существует, но указано неверное название. Система сравнивает название цитируемой статьи с фактическим и отмечает несовпадение как[CONTENT_MISMATCH]. Для этого используетсяcitation-content-matcherиз LexDiff (нормализованная общая подстрока и коэффициент Жаккара для символьных биграмм). Такая же проверка выполняется вlegal_analysis(mode=verify_citations). -
Обход JS-антибота law.go.kr: если 법제처 вместо данных API возвращает облачным IP-адресам (GCP/AWS/Fly) JS-перенаправление
location.assign, клиент разбирает запутанный URL и переходит по ссылке с токеном (до 3 переходов; при ответе 404 повторяет запрос к исходному URL). Для локальных IP-адресов и зарегистрированных IP-адресов механизм не активируется. Это дополнительный уровень защиты для облачных развёртываний, где недостаточно подменыReferer(v4.0.9).
v4.5.0 — Обнаружение законов, которые вступят в силу в будущем (предотвращает ошибки «переименованный закон не найден»)
search_law выполняет дополнительный поиск с target=eflaw (дата вступления в силу) и дополняет результаты.
-
Ожидающее вступления в силу переименование: например, «데이터기반행정 활성화에 관한 법률» → «인공지능 및 데이터 기반 행정 활성화에 관한 법률» (вступает в силу 2026-08-28). Система сопоставляет прежнее и новое названия, чтобы при поиске по новому названию результат не ограничивался сообщением об отсутствии точного совпадения, которое может привести LLM к неверному выводу, что закона не существует.
-
Ожидающая вступления в силу поправка: если для действующего закона подготовлена поправка, которая ещё не вступила в силу, система показывает дату вступления в силу, номер обнародования и MST будущей редакции.
-
Новый закон, ещё не вступивший в силу: отдельно отмечаются обнародованные, но ещё не вступившие в силу законы, которые не попадают в результаты обычного поиска по действующему законодательству. Также отображается предупреждение об отсутствии юридической силы.
v4.4.1–4.4.3 — Исправления стабильности
-
v4.4.3: версия
zodзафиксирована на^4. Это устраняет сбой, при котором после чистой установки версия zod 3.x вызывала ошибкуz.toJSONSchema is not a functionпри первом вызовеlistTools. -
v4.4.2: восстановлен
get_annexesдля таблиц и форм административных правил: сначала анализируется ключadmrulbyl, автоматически распознаются названия, оканчивающиеся на «...시행세칙», а совпадения таблиц и форм с одинаковым bylSeq разделяются (#50/#49/#51). -
v4.4.1: исправлена ошибка в поле
requiredрекламируемой схемы: поля.default()(legal_research.task,search_law.display) ошибочно отображались как обязательные входные параметры. Проблема исправлена с помощьюio:"input". Также добавлена передача параметров стоимостиlegal_analysisи предупреждения о несовместимых сценариях.
v4.4.0 — Число доступных инструментов сокращено с 19 до 9 (контекст уменьшен на 52%)
Размер данных ListTools, которые каждый MCP-клиент получает при запуске сеанса, сокращён примерно с 15,1 КБ до 7,2 КБ.
-
8 инструментов
chain_*объединены в один —legal_research(параметрtask: full_research·law_system·action_basis·dispute_prep·amendment_track·ordinance_compare·procedure_detail·document_review) -
4 ключевые возможности (
verify_citations·cite_check·applicable_law·impact_map) объединены в один инструмент —legal_analysis(параметрmode) -
Обратная совместимость: прямой вызов по имени инструмента и маршрутизация через
execute_toolпо-прежнему поддерживаются; изменился только список рекламируемых инструментов.
Новое в v4.3 — Поиск по судебным прецедентам и законодательство на заданную дату
cite_check — «Сохраняет ли этот судебный прецедент силу?» (корейский аналог Shepard's)
Передайте номер дела, например 2007다27670. Система находит все более поздние решения, в которых цитируется это дело, с помощью полнотекстового поиска, тщательно проверяет решения пленума на предмет формулировок об изменении практики («…변경하기로 한다») и отслеживает ссылки под другими названиями, например «(이하 '2008년 전원합의체 판결'이라 한다)». Результат: ✅ продолжает цитироваться / ⚠️ есть последующее решение пленума / ❌ обнаружено изменение практики. Система также показывает точный контекст правовой позиции.
applicable_law — «Какая редакция закона применяется к дате моего дела?»
Передайте закон и дату. Система определяет редакцию, действовавшую на указанную дату (MST), получает текст статьи в той редакции, сравнивает его с текущим текстом и извлекает переходные положения (적용례·경과조치) из дополнений ко всем последующим поправкам. Также приводятся рекомендации по применению закона во времени (статья 1 Criminal Act и статья 14 General Act on Public Administration).
v3.5 — Защита от вымышленных ссылок на статьи законов
В реальном времени выявляет вымышленные ссылки на статьи законов в ответах ИИ. Проверяет каждую ссылку по официальной базе законодательства Кореи.
"Согласно статье 750 Гражданского кодекса, можно требовать возмещения ущерба за причинение вреда;
пункт 1 статьи 60 Закона о трудовых стандартах предусматривает ежегодный отпуск;
пункт 7 статьи 401-2 Коммерческого кодекса устанавливает ответственность директоров;
статья 9999 Уголовного кодекса предусматривает усиленное наказание."
→ Запустите verify_citations (результат фактической проверки по API 법제처):
-
✓ Статья 750 Гражданского кодекса (ответственность за причинение вреда) — существует
-
✓ Статья 60 Закона о трудовых стандартах (ежегодный оплачиваемый отпуск), пункт 1 — существует
-
✗ Коммерческий кодекс, статья 401-2 — пункта 7 не существует (максимум — пункт 2)
-
✗ Уголовный кодекс, статья 9999 — такой статьи нет (действительный диапазон: статьи 1–372)
Не доверяйте ответам ChatGPT и Claude о законодательстве без проверки. Это необходимая проверка надежности для юридических ИИ-сервисов, юридических фирм, студентов и при анализе договоров.
Новое в v3.2.0+ — интеллектуальные сценарии
Те же 10 инструментов, 9 сценариев анализа. Просто сформулируйте запрос на естественном языке — ИИ определит, что вам нужно, и автоматически выполнит дополнительный анализ.
| Спросите | Получите |
|---|---|
| «Можно ли снизить штраф по Закону о санитарии пищевых продуктов?» | Шкала штрафов + статьи о нарушениях + решения по апелляциям, в которых штрафы были снижены |
| «Проверка импорта и таможенных пошлин по FTA» | Таможенный кодекс + разъяснения таможенных органов + договоры FTA + таблицы тарифов + решения налогового трибунала |
| «Порядок получения разрешения по Закону о строительстве» | Правовая основа (закон → указ → правило) + сборы и формы + административные правила + исключения в местных постановлениях |
| «Делегирование полномочий по Закону о национальном медицинском страховании» | Поиск делегированных положений, для которых еще не приняты исполнительные указы |
| «Анализ влияния Закона о строительстве» | Подзаконные акты + затронутые местные постановления по всей стране + связанные административные правила |
| «Хронология поправок к Закону о трудовых стандартах» | Сравнение старой и новой редакций + история статей + прецеденты и разъяснения в хронологическом порядке |
| «Проверка соответствия постановлению о парковках» | Решения Конституционного суда + отмены по итогам административных апелляций + положения базового закона |
Порядок использования не меняется. Задавайте вопросы обычным языком и автоматически получайте более глубокий анализ.
Изменения в v3.3.0~v3.3.1
v3.3.1 — расширен словарь альтернативных названий законов (с 11 до 52 записей, +41)
Изменение стало ответом на случай галлюцинации lexdiff: «산안기준규칙» (Правила о стандартах охраны труда и безопасности) было сопоставлено по ключевым словам с «국가표준기본법» через aiSearch в Korea Law Open API. В lib/search-normalizer.ts расширен список LAW_ALIAS_ENTRIES: добавлены часто используемые сокращения для трудового законодательства и охраны труда (산안법, 중처법, 근기법), защиты персональных данных и телекоммуникаций (개보법, 정보통신망법), борьбы с коррупцией (청탁금지법, 이해충돌방지법), государственных закупок (국가계약법, 지방계약법), недвижимости (주임법, 상임법, 부거법), антимонопольного регулирования (공정거래법, 하도급법, 약관법, 표시광고법, 가맹사업법), финансов (자본시장법, 특금법, 전금법), городского планирования (국토계획법, 도정법), охраны окружающей среды и здоровья (감염병예방법, 대기환경법), транспорта (여객운수법, 화물운수법), судопроизводства (민소법, 형소법, 민집법), социального страхования (국건법, 산재보험법, 고보법) и телекоммуникаций (전기통신사업법). Поскольку api-client.ts и law-parser.ts уже используют resolveLawAlias(), улучшение автоматически применяется в существующем конвейере поиска. Все 45 тестов пройдены: 41 новый и 4 регрессионных.
v3.3.0 — режим HTTP без сохранения состояния + kordoc 2.3.0
Устранена первопричина периодической потери сессий удаленным сервером (korean-law-mcp.fly.dev) из-за перезапусков, вызванных нехваткой памяти. Сервер переведен на официальный stateless-подход MCP (sessionIdGenerator: undefined): для каждого запроса создаются новые Server + Transport, которые освобождаются после закрытия ответа. Удалены карта сессий в памяти, InMemoryEventStore и очистка неактивных сессий — таким образом устранены сами источники утечек. Сервер устойчив к перезапускам, масштабированию и последовательным развертываниям без прерывания работы клиентов. Запросы GET /mcp и DELETE /mcp возвращают 405, как и в примере SDK. API keys изолируются для каждого запроса с помощью AsyncLocalStorage.
-
Переход HTTP на режим без сохранения состояния — src/server/http-server.ts (пример:
@modelcontextprotocol/sdk/examples/server/simpleStatelessStreamableHttp.js) -
Обновление kordoc с 2.2.5 до 2.3.0
-
Удален код управления сессиями — карта
sessions,MAX_SESSIONS,setIntervalдля очистки бездействующих сессий через 10 минут,InMemoryEventStore, ветвление POST/GET/DELETE (в итоге примерно на 50 строк кода меньше)
v3.2.2 — прямое предоставление get_annexes. Автоматическая загрузка приложений при наличии ключевых слов, связанных с возвратом средств или сборами.
v3.2.1 — обновление kordoc до версии 2.2.5.
Изменения в v3.1.0~v3.1.5
v3.1.5 — kordoc 2.2.4 + обновление README.
v3.1.4 — обновление kordoc до версии 2.2.4. Обработка HTML `` для объединенных ячеек, улучшения markdownToHwpx.
v3.1.3 — подсказки при пустых результатах поиска для 18 инструментов. Уменьшен интервал очистки сессий.
v3.1.2 — обновление kordoc до версии 2.2.1. Экранирование таблиц GFM.
v3.1.1 — обновление kordoc с версии 2.1 до 2.2.
v3.1.0 — подготовка к промышленной эксплуатации: исправления в 20 файлах.
v3.1.3 — подсказки при пустых результатах поиска для 18 инструментов. Интервал очистки сессий уменьшен с 30 до 10 минут.
v3.1.2 — обновление kordoc до версии 2.2.1. Экранирование специальных символов в таблицах GFM и предотвращение конфликтов с символом вертикальной черты.
v3.1.1 — обновление kordoc с версии 2.1 до 2.2.
v3.1.0 — подготовка к промышленной эксплуатации: исправления в 20 файлах. Ограничение truncateResponse в 50 КБ применено к 17 инструментам, добавлен лимит HTTP-сессий (MAX_SESSIONS=100), предупреждение об использовании подстановочного знака CORS, защита от загрязнения параметров, передача ошибок авторизации в цепочечных инструментах, удаление неиспользуемого кода SSE-сервера.
Изменения в v3.0.x
В v2 41 юридический API был структурирован в 89 инструментов MCP. В v3 они объединены в 14 инструментов.
| Исходные API | v2 | v3 | |
|---|---|---|---|
| Количество инструментов | 41 | 89 | 14 |
| Объем контекста ИИ | - | ~110 КБ | ~20 КБ |
| Охват | - | 100% | 100% |
| Управление профилями | - | разделение на lite/full | Единый вариант (не требуется) |
Что изменилось: 34 отдельных инструмента поиска и получения данных о прецедентах, Конституционном суде, налоговом трибунале, FTC и других темах объединены в 2 инструмента: search_decisions(domain) + get_decision_text(domain). Они охватывают 17 областей с помощью одного параметра domain.
-
Обновление kordoc с версии 1.6 до 2.2.5 — обновлен механизм обработки документов: поддержка XLSX/DOCX, повышение безопасности, заполнение форм
-
Исправления ошибок — получение текстов решений по административным апелляциям и английских текстов законов
v2.2.0
-
23 новых инструмента (с 64 до 87) — договоры, связи между законами и постановлениями, ведомственные правила, специальные административные апелляции, анализ документов и многое другое.
-
Механизм анализа документов — 8 типов документов, 17 правил проверки рисков, извлечение сумм и сроков, выявление противоречий между пунктами.
-
Связи между законами и постановлениями (4 инструмента) — отслеживание цепочек делегирования полномочий между национальными законами и местными постановлениями.
-
Поддержка договоров (2 инструмента) — поиск и получение двусторонних и многосторонних договоров.
-
Усиление безопасности — контроль источников CORS, передача API key только в заголовке, заголовки безопасности, маскирование идентификаторов сессий.
Возможности v1.8.0 – v1.9.0
-
8 цепочечных инструментов — составные рабочие процессы для исследования права, выполняемые одним вызовом:
chain_full_research(поиск ИИ → законы → прецеденты → разъяснения),chain_law_system,chain_action_basis,chain_dispute_prep,chain_amendment_track,chain_ordinance_compare,chain_procedure_detail. -
Пакетное получение статей —
get_batch_articlesпринимает массивlawsдля запросов по нескольким законам за один вызов. -
Фильтр типов для поиска с помощью ИИ —
search_ai_lawтеперь поддерживает фильтрlawTypes. -
Структурированный формат ошибок — для всех 64 инструментов используется формат
[ErrorCode]+ имя инструмента + рекомендация. -
Исправление обработки таблиц HWP — устаревший парсер HWP теперь извлекает таблицы из пути
paragraph.controls[].content.
Зачем нужен этот проект
В Южной Корее действует более 1 600 законов и более 10 000 административных правил. Система прецедентов включает решения Верховного суда и Конституционного суда, налоговых трибуналов и таможенных органов. Все эти данные доступны через неудобный государственный API, которым сложно пользоваться разработчикам.
Этот проект объединяет всю правовую систему в 10 инструментов, доступных любому ИИ-ассистенту или скрипту. Его создал корейский государственный служащий, которому надоело в сотый раз вручную искать информацию на 법제처.
Быстрый старт
Вариант 1: MCP-сервер (Claude Desktop / Cursor / Windsurf)
Автоматическая настройка (рекомендуется):
npx --ignore-scripts --omit=optional korean-law-mcp setup
Интерактивный мастер поможет указать API key, выбрать клиент и зарегистрировать конфигурационный файл.
Поддерживаются Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Gemini CLI, Zed и Antigravity.
Конфигурационные файлы в папке проекта (.mcp.json для Claude Code и .vscode/mcp.json для VS Code) можно добавить в git: API key не будет записан в открытом виде.
Claude Code получает ссылку ${LAW_OC} — добавьте export LAW_OC=your-key в файл профиля оболочки. При первом запуске VS Code запросит API key.
Ручная настройка:
npm install --ignore-scripts --omit=optional -g korean-law-mcp
Добавьте запись в конфигурацию MCP-клиента:
{
"mcpServers": {
"korean-law": {
"command": "korean-law-mcp",
"env": {
"LAW_OC": "your-api-key"
}
}
}
}
Получите бесплатный API key на сайте 법제처 Open API.
| Клиент | Конфигурационный файл |
|---|---|
| Claude Desktop | %APPDATA%\Claude\claude_desktop_config.json (Win) / ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) |
| Cursor | .cursor/mcp.json |
| Windsurf | .windsurf/mcp.json |
| Continue | ~/.continue/config.json |
| Zed | ~/.config/zed/settings.json |
Вариант 2: удалённое подключение (без установки)
Claude Desktop не поддерживает удалённые HTTP-серверы MCP напрямую. Используйте адаптер mcp-remote (для npx требуется Node.js версии 18 или выше):
{
"mcpServers": {
"korean-law": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.gomdori.app/law?oc=your-api-key"
]
}
}
}
Cursor, Windsurf и другие клиенты с поддержкой удалённого HTTP-подключения — используйте URL напрямую:
{
"mcpServers": {
"korean-law": {
"url": "https://mcp.gomdori.app/law?oc=your-api-key"
}
}
}
Для веб-клиентов (Claude.ai и других) — используйте тот же URL. По умолчанию доступны только 10 инструментов; выбирать профиль не нужно.
10 инструментов (исследование, анализ, 3 инструмента по законам, радар муниципальных нормативных актов, 2 универсальных и 2 служебных) охватывают все 42 API. Для доступа к специализированным инструментам используйте
discover_tools→execute_tool.
Передача API key (в порядке приоритета):
| Метод | Пример | Примечания |
|---|---|---|
| Параметр URL | ?oc=your-key | Самый простой способ для веб-клиентов. Применяется ко всему сеансу автоматически |
| HTTP-заголовок | apikey: your-key | Также поддерживаются law-oc, x-api-key и Authorization: Bearer |
| Параметр инструмента | apiKey: "your-key" | Переопределение для отдельного инструмента |
Получите бесплатный API key на сайте 법제처 Open API.
Вариант 3: CLI
npm install --ignore-scripts --omit=optional -g korean-law-mcp
export LAW_OC=your-api-key
korean-law search_law --query "관세법"
korean-law get_law_text --mst 160001 --jo "제38조"
korean-law search_precedents --query "부당해고"
korean-law list # all tools
korean-law list --category 판례 # filter by category
korean-law help search_law # tool help
Вариант 4: Docker
docker build -t korean-law-mcp .
docker run -e LAW_OC=your-api-key -e MCP_HTTP_HOST=0.0.0.0 \
-e MCP_AUTH_TOKEN=replace-with-a-secret -p 3000:3000 korean-law-mcp
Структура инструментов (10 инструментов)
В версии v4.4.0 число объявляемых инструментов было сокращено, что уменьшило расход контекста на 52%. Прежние 8 инструментов chain_* стали значениями task инструмента legal_research, а 4 функции анализа — значениями mode инструмента legal_analysis. Другие специализированные инструменты по-прежнему доступны через discover_tools → execute_tool. Для обратной совместимости можно вызывать и старые названия инструментов. В версии v4.7.0 добавлен ordinance_radar, доведя общее число инструментов до 10.
| Категория | Инструмент | Описание |
|---|---|---|
| Исследование (1) | legal_research | Многоэтапное правовое исследование — выберите одно из 8 значений task |
| Анализ (1) | legal_analysis | Проверка и анализ — выберите одно из 4 значений mode |
| Законы (3) | search_law | Поиск законов → получение lawId и MST |
get_law_text | Получение полного текста статьи | |
get_annexes | Получение приложений и форм (таблиц сборов и тарифов, бланков; укажите date, чтобы получить редакцию, действовавшую на эту дату) | |
| Муниципальные нормативные акты (1) | ordinance_radar | Отслеживание изменений муниципальных нормативных актов: автоматически сравнивает упомянутые в них законы верхнего уровня (v4.7.0) |
| Универсальные (2) | search_decisions | Единый поиск по 18 категориям: судебные прецеденты, Конституционный суд, налоговый трибунал, NTS, FTC, NLRC, таможня, разъяснения, административные апелляции, PIPC, ACR, специальные дела ACR, пересмотр апелляций, школьные правила, государственные корпорации, государственные учреждения, договоры и законодательство на английском языке |
get_decision_text | Получение полного текста документов из 18 категорий | |
| Служебные (2) | discover_tools | Поиск специализированных инструментов (термины, приложения, история, сравнение и другие) |
execute_tool | Запуск найденного специализированного инструмента |
Примеры использования
User: "관세법 제38조 알려줘"
→ search_law("관세법") → get_law_text(mst, jo="003800")
User: "화관법 최근 개정 비교"
→ "화관법" → "화학물질관리법" auto-resolved → compare_old_new(mst)
User: "근로기준법 제74조 해석례"
→ search_interpretations("근로기준법 제74조") → get_interpretation_text(id)
User: "산업안전보건법 별표1 내용"
→ get_annexes("산업안전보건법 별표1") → HWPX download → Markdown table
Возможности
-
42 API → 10 инструментов — законы, судебные прецеденты, административные правила, муниципальные нормативные акты, решения Конституционного суда, налоговые разъяснения, таможенные толкования, договоры, правила учреждений и юридическая терминология
-
MCP + CLI — используйте сервер из Claude Desktop или командной строки
-
17 категорий решений —
search_decisionsпозволяет искать судебные прецеденты, решения Конституционного суда и налогового трибунала, материалы FTC, NLRC и таможни, а также документы ещё из 11 категорий -
Анализ корейского законодательства — автоматически распознаёт сокращения (
화관법→화학물질관리법), преобразует номера статей (제38조↔003800) и визуализирует трёхуровневое делегирование полномочий -
Извлечение приложений — загружает приложения в форматах HWPX/HWP/PDF/XLSX/DOCX и преобразует их в Markdown с помощью движка kordoc
-
8 инструментов для цепочек операций — объединяют несколько этапов исследования в один вызов (например,
chain_full_research: поиск с помощью AI → законы → судебные прецеденты → разъяснения) -
Кэширование — результаты поиска хранятся в кэше 1 час, тексты статей — 24 часа
-
Удалённая конечная точка — подключайтесь без установки по адресу
https://mcp.gomdori.app/law(прежняя конечная точкаkorean-law-mcp.fly.dev/mcpсохраняет обратную совместимость)
Переменные окружения
| Переменная | Обязательная | Значение по умолчанию | Описание |
|---|---|---|---|
LAW_OC | Да | — | API key 법제처 (получить бесплатно) |
PORT | Нет | 8000 | Порт HTTP-сервера |
CORS_ORIGIN | Нет | * | Разрешённый источник CORS. Если указать значение явно, этот источник также будет принят при проверке Origin |
ALLOWED_ORIGINS | Нет | — | Список разрешённых источников, разделённых запятыми. Запросы с заголовком Origin отклоняются, если источник не включён в список (защита от DNS rebinding) |
MCP_AUTH_TOKEN | Нет | — | Если задано значение, для доступа к /mcp требуется x-mcp-token или Authorization: Bearer. Обязательно для развёртываний за пределами локального интерфейса, если явно не задано иное |
MCP_HTTP_HOST | Нет | 127.0.0.1 | Адрес привязки. Для адреса за пределами локального интерфейса требуется MCP_AUTH_TOKEN, если не задано указанное ниже намеренное переопределение |
MCP_ALLOW_UNAUTHENTICATED_REMOTE | Нет | 0 | Установите значение 1 только для намеренно открытого развёртывания за пределами локального интерфейса без аутентификации доступа к MCP |
TRUST_PROXY | Нет | false | Укажите положительное число промежуточных прокси (например, 1 при использовании одного прокси Fly/ingress). Не используйте true или all |
ALLOW_QUERY_API_KEY | Нет | 1 | Установите значение 0, чтобы запретить API key в строке запроса ?oc= (ключ может попасть в журналы доступа прокси) |
ACCESS_LOG | Нет | 0 | Установите значение 1, чтобы записывать каждый запрос в журнал. В журнал попадает только req.path, без строки запроса, поэтому ключ oc= туда не попадёт |
RATE_LIMIT_RPM | Нет | 60 | Вызовы инструментов в минуту на один IP-адрес. Значение 0 отключает только ограничение на число запросов с одного IP; ограничения на пакетные вызовы и выполнение остаются активными |
MCP_MAX_BATCH_CALLS | Нет | 20 | Максимальное число элементов tools/call в одном HTTP-конверте JSON-RPC |
MCP_MAX_BODY_BYTES | Нет | 102400 | Максимальный размер входящего JSON-запроса. Для совместимости также поддерживается прежняя переменная MCP_BODY_LIMIT (100kb и другие значения) |
MCP_MAX_UPSTREAM_REQUESTS | Нет | 48 | Общий лимит попыток отправки запросов к внешним сервисам на один запрос, включая повторы и переходы при защите от ботов |
MCP_MAX_UPSTREAM_BODY_BYTES | Нет | 2097152 | Максимальный объём данных, считываемых из тела одного ответа внешнего сервиса |
MCP_MAX_TOTAL_UPSTREAM_BODY_BYTES | Нет | 8388608 | Максимальный суммарный объём данных из тел ответов внешних сервисов, считываемых для одного внешнего запроса |
MCP_MAX_TOOL_RESPONSE_CHARS | Нет | 50000 | Максимальное число символов в ответе инструмента MCP |
Все числовые ограничения проверяются при запуске: значения должны быть целыми числами. При некорректном значении запуск завершается с ошибкой, а ограничение не ослабляется. legal_research и другие документированные инструменты для цепочек операций используют общий лимит в 48 попыток на запрос; пакетные элементы JSON-RPC учитываются совместно, но каждый из них сохраняет собственный сигнал отмены MCP.
Параметры развертывания HTTP по умолчанию
По умолчанию HTTP-режим работает локально: сервер принимает подключения только на 127.0.0.1, не доверяет заголовку X-Forwarded-For, а проверка токена для такого режима, ограниченного loopback-интерфейсом, необязательна. Для развертывания за обратным прокси явно укажите публичный адрес привязки и точное количество доверенных промежуточных узлов. Например:
MCP_HTTP_HOST=0.0.0.0 TRUST_PROXY=1 MCP_AUTH_TOKEN=replace-with-a-secret \
korean-law-mcp --mode http --port 8000
Параметр MCP_ALLOW_UNAUTHENTICATED_REMOTE=1 позволяет сохранить намеренно открытые для доступа удалённые развертывания, созданные по прежней схеме. При запуске сервер выдаст предупреждение. Используйте этот параметр только при наличии другого уровня контроля доступа.
Границы зависимостей и установки
kordoc остаётся в составе проекта, поскольку разбор приложений к документам — доступная функция сервера. Проверенная версия pdfjs-dist@4.10.38 на чистом JavaScript закреплена как обычная зависимость; серверу не требуются дополнительные средства OCR, машинного обучения и нативные модули. При установке плагина, документированной установке и установке через Docker используются параметры --omit=optional --ignore-scripts. В CI и при публикации сохраняются привязки необязательных инструментов разработки, а проверка выполняется с отключёнными скриптами. Затем зависимости сокращаются до производственного набора, после чего запускается smoke-тест обработки PDF-приложений. Отчёты сканеров по транзитивным пакетам HTTP-фреймворков следует оценивать с учётом доступного серверу пути выполнения, а не считать доказательством того, что сервер использует уязвимое промежуточное ПО.
Часто задаваемые вопросы
Как искать корейские законы и судебные прецеденты с помощью Claude или ChatGPT?
Подключите этот MCP-сервер. В Claude.ai добавьте https://mcp.gomdori.app/law?oc=YOUR_KEY как пользовательский коннектор. Инструкции для Claude Desktop, Cursor, Windsurf и Zed см. в разделе «Краткое руководство»; для ChatGPT — в видеоинструкции (озвучка на корейском).
Это бесплатно?
Да. Код распространяется по лицензии MIT, а необходимый ему ключ Open API от 법제처 предоставляется бесплатно (open.law.go.kr).
Может ли сервер выявлять вымышленные языковой моделью ссылки на законодательство?
legal_analysis(mode="verify_citations") проверяет указанные в тексте статьи законов и номера судебных дел по официальным данным 법제처: существуют ли они и соответствует ли им содержание текста. mode="cite_check" позволяет узнать, сохраняет ли прецедент юридическую силу.
Какие материалы охватывает сервер?
Законы, судебные прецеденты, административные правила, местные постановления, договоры и правовые толкования, в том числе от Национальной налоговой службы, а также приложения и формы. Сервер также находит прежние редакции законов и указывает, какие акты пришли на смену отменённым.
Документация
-
docs/API.md — справочник по инструментам
-
docs/ARCHITECTURE.md — устройство системы
-
docs/DEVELOPMENT.md — руководство по разработке
Благодарности
-
법제처 Open API — официальная правовая база Кореи
-
Anthropic — Model Context Protocol
-
kordoc — парсер HWP/HWPX от того же автора
Лицензия
Создано корейским госслужащим из AI-клуба администрации округа Кванжингу — AI.Do.