Skip to main content
Glama

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

России의 24개 법전을 평범한 단어로 검색합니다. «위자료 안 내면 어찌 되나»라고 물으면, 그 단어가 그대로 적혀 있지 않아도 Семейный кодекс 115조를 찾아줍니다. 인터넷 없이 전부 내 컴퓨터 안에서 동작합니다 — 검색어도 텍스트도 밖으로 나가지 않습니다.

검색 방법은 두 가지입니다: 터미널에서 명령 하나로 실행하거나, 저장소를 MCP-сервер로 만들어 Claude Code에 연결하면 대화 중에 바로 검색할 수 있습니다.

구성

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

법전들은 2026년 8월 24일자로 내려받아졌습니다 — 판본(편집본)은 이 날짜를 기준으로 합니다. 출처 — 공식 포털 pravo.gov.ru의 «Эталонный банк правовой информации»(법률정보 기준 은행) 통합 텍스트입니다. 각 법전의 개별 판본 날짜는 --codes-list 명령으로 확인할 수 있습니다(아래 참고): 법전마다 개정 시기가 다르고, 어떤 것들은 마지막 판본이 내려받기 날짜보다 훨씬 오래된 경우도 있습니다.

Related MCP server: code-memory-rs

준비(한 번만)

Python 3.11 이상이 필요합니다. 그래픽 카드는 필요 없어요 — 모든 계산은 CPU에서 처리됩니다.

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

그다음은 가장 간단한 방법 — Claude Code에게 **/x-prepare-system**을 요청하세요. 스킬(Skill)이 라이브러리를 설치하고, 모델을 내려받고, 모든 것이 작동하는지 알려 줍니다.

Claude Code가 없는 경우에도 한 줄로 동일한 작업을 할 수 있습니다:

# Windows
.\setup.cmd --install

# Linux и macOS
./setup --install

검색 모델(~2,3 ГБ)과 보조 re-ranking(재순위화) 모델(~0,5 ГБ)이 다운로드됩니다. 이게 인터넷이 필요한 유일한 단계입니다. 모델은 저장소에 포함되지 않습니다 — git에 넣기에는 너무 크기 때문입니다.

준비 상태 확인은 언제든 가능합니다: 같은 명령을 --install 없이 실행하면 아무것도 바꾸지 않고, 무엇이 갖춰져 있고 무엇이 없는지 보여줍니다.

# Windows
.\setup.cmd

# Linux и macOS
./setup

터미널에서 바로 사용해 보기

패키지에는 짧은 래퍼(wrapper)가 들어 있습니다 — 경로와 인코딩을 자동으로 설정해 줍니다:

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

자주 검색한다면 서버를 띄우는 것이 편리합니다: 모델이 메모리에 유지되면서, 요청 시간이 6초 대신 0.1초 단위로 줄어듭니다.

가장 간단한 방법은 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는 자신의 디렉터리에서 서버를 실행하기 때문에, 상대 경로를 찾을 수 없습니다. 연결을 마친 뒤 세션을 다시 시작하세요 — 도구 목록은 시작 시 읽어집니다.

서버는 세 가지 도구를 제공합니다: 의미별로 조문(cтатья)을 찾기, 번호로 전체 조문 읽기, 법전 목록 보기.

이 검색이 할 수 없는 것

잘못 믿지 않도록 미리 알아 두셔야 합니다:

  • 법전만 취급합니다. 개별 федеральные законы(소비자 권리 보호, ООО, 집행 절차 등), 부당 명령, 일반 혹은 특정 사례 판례, 대법원 Plenum의 해설 등은 포함되지 않아 찾을 수 없습니다.

  • 답변은 내려받기 날짜 기준으로 정확합니다. 법률은 변합니다; 날짜는 --codes-list가 보여줍니다.

  • 이것은 검색 도구일 뿐, 법률 상담이 아닙니다. 법에 적힌 내용을 보여줄 뿐, 결론과 결정은 사람의 몫입니다.

  • 기본적으로 유효한 조문만 검색합니다. 효력을 잃은 조문은 --repealed 플래그를 사용하세요.

서버 배포 또는 직접 커스텀

Claude Code가 도와줄 수 있습니다: 저장소는 에이전트가 스스로 이해하도록 구성되어 있고 — CLAUDE.md 파일 안에 내부 설명이 있으며, 안에는 검색을 위한 Dockerfile도 함께 있습니다.

예를 들어, 이렇게 요청해 보세요:

  • «이 검색을 내 서버의 docker에 배포해 줘»

  • «MCP-сервер를 올리고 내 Claude Code에 연결해 줘»

  • «이 검색용 웹 인터페이스를 만들어 줘»

  • «작동 준비가 되었는지 확인해 줘» — 확인을 실행하고 부족한 것도 설명해 줍니다.

이미지는 데이터와 모델을 포함한 상태로 제공되므로, 컨테이너에는 인터넷이 불필요합니다:

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

docker run에서 -i 플래그는 필수입니다: MCP-сервер는 표준 입력/출력으로 통신합니다. 이 플래그가 없으면 컨테이너가 즉시 종료됩니다. 이미지를 유래기 전에 설치 절차를 먼저 완료하세요 — 모델은 models/ 폴더에서 이미지로 복사됩니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    RAG-powered document search server that enables semantic search across large collections of legal and business documents (PDF, Word, Excel, PowerPoint) using local embeddings with no API costs.
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables local semantic code search across repositories using natural language, with AST-aware chunking and hybrid vector/FTS5 retrieval.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Provides offline access to the French legal corpus (Legifrance/DILA) with full-text search, verbatim article retrieval, and citation grounding to prevent hallucinations.
    4
    125 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides local semantic search over files using embeddings, enabling directory indexing and natural language queries without external services.
    51 PyPI
    MIT