ruslaw
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ruslawКакая редакция статьи 502 ГК РФ действует сейчас?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚖️ RusLaw: MCP & Agent Skills для законодательства РФ
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 build2. Автоматическая установка скилла в среду ИИ
Скрипт автоматически скопирует скилл 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)
Инструмент | Назначение |
| Интеллектуальный поиск статей, кодексов и ФЗ по жизненным или юридическим запросам с фильтром по Консультанту/Гаранту/pravo.gov.ru. |
| Извлечение чистого текста статьи в Markdown без рекламы и навигационного мусора. |
| Проверка действующего статуса статьи, даты действующей редакции и выявление принятых будущих поправок с датой вступления в силу. |
| Мониторинг законопроектов в Государственной Думе РФ (СОЗД) и текущей стадии их рассмотрения (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 toolscheck_norm_statusB
Критический инструмент проверки актуальности нормы: проверяет статус действия статьи, дату действующей редакции и наличие принятых будущих поправок с датой вступления в силу относительно сегодняшнего дня.
| Name | Required | Description | Default |
|---|---|---|---|
| act | No | Наименование закона или кодекса. | |
| url | No | Прямая ссылка на статью или документ. | |
| article | No | Номер статьи. | |
| raw_html | No | Сырой HTML текст (для тестирования). |
TDQS
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.
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.
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.
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.
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.
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 (без рекламного мусора, баннеров и навигации).
| Name | Required | Description | Default |
|---|---|---|---|
| act | No | Наименование акта (например: "Трудовой кодекс РФ" или "ЗоЗПП"). | |
| url | No | Прямая ссылка на документ/статью (из результатов search_legislation). | |
| article | No | Номер статьи (например: "ст. 80" или "18"). | |
| raw_html | No | Сырой HTML текст (для тестирования или оффлайн-парсинга). |
TDQS
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.
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.
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.
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.
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.
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, СОЗД Госдумы).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Максимальное количество результатов поиска (по умолчанию 5). | |
| query | Yes | Поисковый запрос (например: "возврат сложного товара без чека ЗоЗПП" или "статья 80 ТК РФ"). | |
| target_source | No | Приоритетный источник правовой информации (по умолчанию "all"). |
TDQS
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.
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.
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.
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.
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.
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
Отслеживание прохождения законопроектов в Государственной Думе РФ (СОЗД ГД): стадия рассмотрения, чтения, профильный комитет и ссылки на паспорт инициативы.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Номер законопроекта (например: "654321-8") или ключевые слова инициативы. |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.0.0- First observed
check_norm_status - First observed
get_norm_text - First observed
search_legislation - First observed
track_bill
TDQS
Scored across 4 tools
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.
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.
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.
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
Related MCP Connectors
Russian law for AI: statutes with edition dates, Supreme Court guidance and court practice.
Current law as data for AI: search, read and verify statutes and citations. CIS countries first.
Russian docs for AI agents: invoices/acts PDF, document parsing, INN checks, medical ad checks
Resolve, search and verify legal citations against the official sources, with provenance.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides AI assistants with up-to-date legal documents from official sources, enabling accurate legal information retrieval and analysis.20AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceSearch 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.2AGPL 3.0
- AlicenseAqualityBmaintenanceEnables 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.81Apache 2.0
- AlicenseAqualityBmaintenanceEnables 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.6MIT