Skip to main content
Glama

⚖️ RusLaw: MCP & Agent Skills для законодательства РФ

CI License: MIT Node.js

RusLaw — это комплекс из MCP-сервера и агентского скилла (ruslaw-expert) для работы с законодательством Российской Федерации через любых современных ИИ-агентов (Claude, Cursor, Antigravity, Cline, Roo Code, ChatGPT).

Идея-фикс: Вы спрашиваете агента о том, как регулируется любая жизненная или бизнес-ситуация по закону РФ, а агент отвечает максимально актуальной информацией на сегодняшнюю дату с дословными цитатами норм, статусом редакции и конкретными проверяемыми ссылками на первоисточники.


⚡ Главные возможности

  • 🕒 Временной якорь (Temporal Grounding): Модели ИИ часто цитируют законы по состоянию на момент своего обучения. RusLaw заставляет агента привязываться к сегодняшней системной дате пользователя.

  • 🔮 Детекция будущих редакций: Если закон уже принят, но вступает в силу через месяц или с 1 января следующего года, агент обязательно предупредит об этом.

  • 🛡️ Защита от устаревших норм (Repealed Check): Если статья отменена или признана Конституционным Судом РФ неконституционной, агент прямо сообщит об этом и не будет ссылаться на неё как на действующее право.

  • 🔗 Проверяемые первоисточники: Ссылки формируются только на официальные и легитимные порталы:

  • 🚫 Нулевая толерантность к галлюцинациям: Агенту запрещено выдумывать нормы из головы. При любых сомнениях предоставляется ссылка на официальный поиск.


Related MCP server: Pasal — Indonesian Law

🚀 Быстрый старт (для человека)

1. Установка и сборка

git clone https://github.com/HowardSalibert/ruslaw.git
cd ruslaw
npm install
npm run build

2. Автоматическая установка скилла в среду ИИ

Скрипт автоматически скопирует скилл ruslaw-expert в конфигурационные каталоги Cursor, Antigravity и Claude:

npm run setup:skills

🤖 Инструкция для ИИ-агента

Если вы попросили своего агента установить этот репозиторий, передайте ему эту команду:

"Склонируй репозиторий RusLaw, выполни npm install && npm run build && npm run setup:skills и подключи MCP-сервер из файла dist/index.js в мои настройки MCP."


⚙️ Подключение к MCP-клиентам

{
  "mcpServers": {
    "ruslaw": {
      "command": "node",
      "args": ["/АБСОЛЮТНЫЙ/ПУТЬ/К/dist/index.js"]
    }
  }
}

🛠️ Набор инструментов MCP (Tools)

Инструмент

Назначение

search_legislation

Интеллектуальный поиск статей, кодексов и ФЗ по жизненным или юридическим запросам с фильтром по Консультанту/Гаранту/pravo.gov.ru.

get_norm_text

Извлечение чистого текста статьи в Markdown без рекламы и навигационного мусора.

check_norm_status

Проверка действующего статуса статьи, даты действующей редакции и выявление принятых будущих поправок с датой вступления в силу.

track_bill

Мониторинг законопроектов в Государственной Думе РФ (СОЗД) и текущей стадии их рассмотрения (1/2/3 чтения, СФ, Президент).

Каждый инструмент автоматически возвращает метаданные metadata.current_system_date для строгого временного якоря.


📋 Формат ответа агента

Агент, использующий скилл ruslaw-expert, отвечает по единому стандарту юридической чистоты:

### 📋 Правовое заключение: [Краткий вывод по вопросу]

**Разъяснение простыми словами:**
[Пошаговый план действий для пользователя]

**Применимая норма права:**
* **Закон/Кодекс:** Гражданский кодекс РФ (часть вторая)
* **Статья:** Статья 502, пункт 1

**Дословная цитата нормы:**
> «Покупатель вправе в течение четырнадцати дней с момента передачи ему непродовольственного товара... обменять купленный товар...»

**Статус актуальности (на дату: 2026-10-28):**
* 🟢 **Редакция:** Действующая (в ред. Федерального закона от 08.08.2024 № 287-ФЗ).
* ⚠️ **Будущие изменения:** Будущих изменений на данный момент не зарегистрировано.

**Проверяемые первоисточники:**
* [Открыть статью в КонсультантПлюс](https://www.consultant.ru/document/...)
* [Официальный текст на pravo.gov.ru](http://pravo.gov.ru/...)

🧪 Тестирование

Проект покрыт автоматическими тестами на реальных снапшотах правовых документов:

npm test

📄 Лицензия

Распространяется под свободной лицензией MIT.

Available Tools

4 tools
check_norm_statusB

Критический инструмент проверки актуальности нормы: проверяет статус действия статьи, дату действующей редакции и наличие принятых будущих поправок с датой вступления в силу относительно сегодняшнего дня.

NameRequiredDescriptionDefault
actNoНаименование закона или кодекса.
urlNoПрямая ссылка на статью или документ.
articleNoНомер статьи.
raw_htmlNoСырой HTML текст (для тестирования).

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the checks performed (validity status, revision date, future amendments relative to today), which is meaningful behavioral context, but it does not state whether the operation is read-only, whether authentication is required, or how errors are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that quickly establishes the tool's purpose and scope. The phrase 'Критический инструмент' is minor fluff, but overall it is efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description helpfully explains what the check returns (status, revision date, future amendments). However, it does not clarify how the four optional input parameters should be combined (e.g., act+article vs. url vs. raw_html), leaving a meaningful gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (act, url, article, raw_html) are already documented in the schema. The description adds no parameter-level meaning or input-combination guidance, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('проверяет') and resource ('актуальность нормы'), then enumerates exactly what is checked: article validity status, current revision date, and future amendments. It is clearly distinct from siblings like search_legislation and get_norm_text, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as search_legislation or track_bill, nor any when-not conditions. The opening phrase implies its purpose but does not tell the agent how to choose it over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_norm_textB

Извлечение чистого структурированного текста статьи нормативно-правового акта РФ в формате Markdown (без рекламного мусора, баннеров и навигации).

NameRequiredDescriptionDefault
actNoНаименование акта (например: "Трудовой кодекс РФ" или "ЗоЗПП").
urlNoПрямая ссылка на документ/статью (из результатов search_legislation).
articleNoНомер статьи (например: "ст. 80" или "18").
raw_htmlNoСырой HTML текст (для тестирования или оффлайн-парсинга).

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden: it discloses the useful behavioral trait that output is clean Markdown with ads, banners, and navigation stripped out. However, it doesn't say whether the tool fetches live over the network or how it behaves when the fetch fails and raw_html is supplied, so important operational context is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single tight sentence with zero waste, and the key deliverable (clean structured Markdown text) is front-loaded before the parenthetical about what gets removed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It has four optional parameters and no output schema, so the description needs to explain the return shape on its own; it does so by specifying Markdown and what is cleaned out. It is still a bit thin on which parameters trigger live fetching versus offline parsing, but the essential information for calling it is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, giving a baseline of 3. The description adds only the output-format detail and does not clarify how act, url, article, and raw_html relate to each other or which combinations are valid.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action (extraction) applied to a specific resource (the article text of a Russian normative legal act) and even specifies the output format (Markdown). It doesn't explicitly differentiate itself from search_legislation, which also touches legislation, but the extraction/cleanup focus is distinct enough that an agent can identify it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never states when to use this tool rather than search_legislation or check_norm_status. The only usage hint ('url from search_legislation results') appears in the schema, not the description, so the description itself provides no routing guidance or preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_legislationA

Поиск статей, кодексов и законов РФ по смысловому запросу или номеру статьи с фильтрацией по авторитетным порталам (КонсультантПлюс, Гарант, pravo.gov.ru, СОЗД Госдумы).

NameRequiredDescriptionDefault
limitNoМаксимальное количество результатов поиска (по умолчанию 5).
queryYesПоисковый запрос (например: "возврат сложного товара без чека ЗоЗПП" или "статья 80 ТК РФ").
target_sourceNoПриоритетный источник правовой информации (по умолчанию "all").

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the authoritative portals and query modes, but says nothing about result ordering, return format, rate limits, or permissions; the search nature implies read-only behavior but does not state it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words. The main purpose, query modes, and source filtering are all packed efficiently into one line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, query modes, and authoritative sources, which is a reasonable minimum for a search tool. But with no output schema and no annotations, it should say more about what a result contains and how results are ranked or limited.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description reinforces the query and source-filter semantics but adds little beyond what the schema examples and enum already provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Поиск') and resource ('статей, кодексов и законов РФ'), plus supported query modes and source filtering. It does not explicitly differentiate from sibling tools such as get_norm_text, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool by mentioning semantic queries, article-number queries, and authoritative-portal filtering. However, it gives no explicit when-not-to-use guidance or comparison to alternatives like get_norm_text or check_norm_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_billA

Отслеживание прохождения законопроектов в Государственной Думе РФ (СОЗД ГД): стадия рассмотрения, чтения, профильный комитет и ссылки на паспорт инициативы.

NameRequiredDescriptionDefault
queryYesНомер законопроекта (например: "654321-8") или ключевые слова инициативы.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It implies a read-only lookup and describes the returned status fields, but it does not disclose side effects, permissions, rate limits, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, front-loading the core purpose and then listing the concrete data returned. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter lookup with no output schema, the description sufficiently explains what information is returned. It could be more complete by mentioning what happens for ambiguous or missing bill numbers, but the core context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the single query parameter is documented with an example bill number and keyword option. The description adds no parameter-specific meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Отслеживание прохождения законопроектов') and enumerates the tracked fields: stage, readings, committee, and links. It is clear what the tool does, but it does not explicitly differentiate itself from siblings like check_norm_status or search_legislation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use this to track a bill's progress when you have a bill number or keywords. However, there is no explicit guidance on when to choose this over search_legislation or check_norm_status, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observedcheck_norm_status
    • First observedget_norm_text
    • First observedsearch_legislation
    • First observedtrack_bill

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct role: discovery of norms, retrieval of norm text, verification of norm status, and tracking of bills. There is little risk of confusing search with retrieval or status checking because the actions and resources are explicitly separated.

Naming Consistency5/5

All tool names follow a predictable snake_case verb_noun pattern: search_legislation, get_norm_text, check_norm_status, and track_bill. The convention is consistent across the entire set.

Tool Count5/5

Four tools is well-scoped for a focused Russian legal research server. Each tool earns its place by covering a distinct step in legal lookup, reading, validity checking, and bill tracking.

Completeness4/5

The surface covers the core workflow: find legislation, retrieve text, check current status, and track bill progress. Minor gaps remain, such as direct retrieval of full bill text or broader discovery of bills beyond tracking an already known initiative, but agents can largely work around these via provided links.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI assistants with up-to-date legal documents from official sources, enabling accurate legal information retrieval and analysis.
    20
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Search Indonesian regulations, resolve citations, read specific articles, and find Constitutional Court decisions with official-source links. Six research and feedback tools plus a health probe provide structured text, legal-status context, and amendment relationships. Hosted Streamable HTTP; free account with OAuth or a personal token.
    2
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables Claude to search the Russian legal database Garant, retrieve verbatim article texts, tables of contents, revision lists, and Supreme Court practice, with provenance data allowing citation verification via the user's own subscription.
    8
    1
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to retrieve the verbatim text of German federal and state statutes, search official case law from BGH, BAG and BVerfG, and compute procedurally exact deadlines under §§ 187–193 BGB with weekend and public-holiday adjustment. It also supplies structured statutory-element blueprints with burden-of-proof allocation and assembles citation-secured research dossiers for pleadings.
    6
    MIT