laws

laws

Provides local, offline semantic search across 24 Russian Federation legal codes using natural-language queries, with tools to retrieve full articles by identifier and list available codes.

Category
Visit Server

README

Кодексы РФ: поиск по смыслу

Поиск по 24 кодексам Российской Федерации обычными словами. Спрашиваете «что грозит за неуплату алиментов» — получаете статью 115 Семейного кодекса, хотя дословно этих слов в ней нет. Работает без интернета, целиком на вашей машине: ни запросы, ни тексты никуда не уходят.

Искать можно двумя способами: из терминала одной командой или подключив репозиторий к Claude Code как MCP-сервер — тогда поиск доступен прямо в разговоре.

Что внутри

data/       тексты 24 кодексов, разобранные по статьям (9 250 статей, каждая — отдельный JSON)
index/      векторный индекс: по нему и идёт поиск
src/        сам поиск — MCP-сервер, команда для терминала и общий код под ними

Кодексы выгружены 24 августа 2026 года — редакции актуальны на эту дату. Источник — официальный портал pravo.gov.ru, консолидированные тексты из «Эталонного банка правовой информации». Дата редакции каждого кодекса по отдельности видна командой --codes-list (см. ниже): кодексы меняются в разное время, и у некоторых последняя редакция заметно старше даты выгрузки.

Подготовка (один раз)

Нужен Python 3.11 или новее. Видеокарта не нужна — всё считается на процессоре.

# создать виртуальное окружение
python -m venv .venv

Дальше самое простое — попросить Claude Code: /x-prepare-system. Скилл поставит библиотеки, скачает модели и проверит, что всё работает.

То же самое одной командой, если Claude Code под рукой нет:

# Windows
.\setup.cmd --install

# Linux и macOS
./setup --install

Скачается поисковая модель (~2,3 ГБ) и вспомогательная модель-переоценщик (~0,5 ГБ). Это единственный шаг, которому нужен интернет. В репозиторий модели не входят — они слишком велики для git.

Проверить готовность в любой момент: та же команда без --install ничего не меняет, только рассказывает, что на месте, а чего не хватает.

# Windows
.\setup.cmd

# Linux и macOS
./setup

Попробовать прямо в терминале

В комплекте есть короткая обёртка — она сама подставляет пути и кодировку:

# Windows
.\laws.cmd "что грозит за неуплату алиментов"

# Linux и macOS
./laws "что грозит за неуплату алиментов"

Ответ выглядит так:

=== что грозит за неуплату алиментов ===
1. sk-rf ст. 115 — Ответственность за несвоевременную уплату алиментов  [0.0164]
   РАЗДЕЛ V. АЛИМЕНТНЫЕ ОБЯЗАТЕЛЬСТВА > ГЛАВА 17. ПОРЯДОК УПЛАТЫ И ВЗЫСКАНИЯ | действует
   1. При образовании задолженности по вине лица, обязанного уплачивать алименты...

Что ещё умеет команда (на Linux и macOS вместо .\laws.cmd пишите ./laws):

# несколько вопросов за один запуск: так быстрее, модель грузится один раз
.\laws.cmd "увольнение по собственному желанию" "продолжительность отпуска"

# статья целиком, по номеру
.\laws.cmd --article uk-rf:105

# искать только в одном кодексе
.\laws.cmd --code=koap-rf "превышение скорости"

# список кодексов с датами редакций
.\laws.cmd --codes-list

# точнее на расплывчатых вопросах, но на 4 секунды медленнее
.\laws.cmd --rerank "сосед залил квартиру кто возмещает ущерб"

# показать и статьи, утратившие силу: по умолчанию они скрыты
.\laws.cmd --repealed "запрос"

Первый запрос занимает около 6 секунд — столько грузится модель. Дальше, если вопросов несколько в одной команде, каждый следующий считается за 0,2 секунды.

Совет по формулировкам: пишите вопрос так, как спросили бы человека, а не ключевыми словами. И помните, что одно и то же слово живёт в разных кодексах — «испытательный срок» найдёт и трудовой, и условное осуждение из Уголовного кодекса. Если знаете, где искать, добавьте --code=tk-rf.

Если обёртка почему-то не подходит, то же самое полной командой:

# Windows, PowerShell
$env:PYTHONPATH="src"; $env:PYTHONIOENCODING="utf-8"
.venv\Scripts\python.exe -m laws_mcp.cli "вопрос"
# Linux и macOS
PYTHONPATH=src .venv/bin/python -m laws_mcp.cli "вопрос"

Подключить к Claude Code (MCP-сервер)

Если поиском пользуетесь часто, удобнее поднять сервер: модель останется в памяти, и каждый запрос будет занимать доли секунды вместо шести.

Проще всего попросить Claude Code: /x-run-mcp — скилл подключит и проверит.

Вручную — одной строкой:

# Windows, PowerShell
claude mcp add laws -e PYTHONPATH=C:\путь\к\репозиторию\src -e LAWS_ROOT=C:\путь\к\репозиторию -e PYTHONIOENCODING=utf-8 -- C:\путь\к\репозиторию\.venv\Scripts\python.exe -m laws_mcp.server
# Linux и macOS
claude mcp add laws -e PYTHONPATH=/путь/к/репозиторию/src -e LAWS_ROOT=/путь/к/репозиторию -- /путь/к/репозиторию/.venv/bin/python -m laws_mcp.server

Пути обязательно полные: Claude Code запускает сервер из своего каталога, и относительные пути не найдутся. После подключения перезапустите сессию — список инструментов читается при старте.

Сервер даёт три инструмента: найти статьи по смыслу, показать статью целиком по номеру и перечислить кодексы.

Что этот поиск не умеет

Стоит знать заранее, чтобы не полагаться на него зря:

  • Только кодексы. Отдельных федеральных законов (о защите прав потребителей, об ООО, об исполнительном производстве и прочих), подзаконных актов, судебной практики и разъяснений Пленума Верховного Суда здесь нет и найти их нельзя.
  • Ответ верен на дату выгрузки. Право меняется; дату показывает --codes-list.
  • Это поиск, а не юридическая консультация. Он показывает, что написано в законе; выводы и решения остаются за человеком.
  • По умолчанию ищутся только действующие статьи. Утратившие силу — с флагом --repealed.

Развернуть на сервере или доработать под себя

Claude Code с этим поможет: репозиторий устроен так, чтобы агент мог сам разобраться — рядом лежит CLAUDE.md с описанием внутреннего устройства, а в комплекте есть Dockerfile для сборки образа с поиском внутри.

Попросите его словами, например:

  • «разверни этот поиск на моём сервере в docker»
  • «подними MCP-сервер и подключи к моему Claude Code»
  • «сделай веб-интерфейс к этому поиску»
  • «проверь, всё ли готово к работе» — он запустит проверку и объяснит, чего не хватает

Из коробки есть образ, который включает и данные, и модели, так что контейнеру не нужен интернет:

# собрать образ и запустить сервер
docker build -t laws-mcp .
docker run -i --rm laws-mcp

Флаг -i у docker run обязателен: MCP-сервер общается через стандартный ввод и вывод, без него контейнер сразу завершится. Перед сборкой образа выполните подготовку — модели копируются в образ из папки models/.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured