Skip to content

mikhashev/law7

Law7 Logo

Law7 MCP - Up-to-date Legal Documents For AI Assistants

License: AGPL-3.0 Version

Without Law7

AI assistants rely on outdated training data for laws:

  • LLMs use training data from years ago
  • Hallucinated legal articles that don't exist
  • Generic answers without specific legal citations
  • Unable to track legal changes or amendments

With Law7

Law7 MCP pulls up-to-date, version-specific legal documents directly from official government sources and places them into your AI conversation.

Ask questions like:

What are the notice periods for terminating an employment contract in Russia?
What changes were made to the Russian Labor Code in 2025?

Law7 fetches current legal documents right into your AI's context. No tab-switching, no hallucinated articles, no outdated legal information.

Legal Disclaimer

IMPORTANT: This project provides text information from open sources only. See DISCLAIMER.md for full details.

  • NOT for official use in court or government bodies
  • NO guarantee of accuracy, completeness, or timeliness
  • Always consult qualified lawyers for legal matters
  • AGPL-3.0 licensed - modifications must be shared

Installation

Claude Desktop

Quick Start (Recommended)
# Build the server
npm run build

# Add to Claude Desktop
claude mcp add law7 --node \path\to\folder\law7\dist\index.js
Detailed Instructions

Step 1: Build and Test the Server

npm run build
npm start

Step 2: Add to Claude Desktop

Option A - Via config file (C:\Users\<user>\AppData\Roaming\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "law7": {
      "command": "node",
      "args": ["/path/to/folder/law7/dist/index.js"],
      "env": {}
    }
  }
}

Important: The mcpServers is an object, not an array. Each server is a key with command and args properties.

Step 3: Test with Claude Desktop

Once added, the law7 MCP server appears in your chat with these tools:

  • list-countries - List available countries
  • get-statistics - Get database statistics
  • query-laws - Search legal documents by text
  • get-law - Get specific document by eo_number

Example query:

Can you search for documents about "трудовой договор" in Russia and show me the results?

Important Tips

Add a Rule

To automatically invoke Law7 for legal questions, add a rule to your CLAUDE.md file:

Always use Law7 MCP when I need legal information, document lookup, or legal analysis without me having to explicitly ask.

Specify Country

Currently only Russia is supported, but you can specify for clarity:

What are the labor laws in Russia regarding overtime?

Query Historical Versions

Ask for specific dates to get historical legal versions:

What was the Russian Labor Code article 80 text on January 1, 2024?

Available Tools

Law7 MCP provides the following tools that AI assistants can use:

Tool Description
query-laws Search legal documents by semantic/keyword search
get-law Retrieve specific document by eo_number
list-countries List supported countries (currently Russia)
get-statistics Get database statistics
get-code-structure Get structure of consolidated legal codes
get-article-version Get article version at specific date
trace-amendment-history Track amendment history of articles

Architecture

This project uses a hybrid architecture with two separate components:

  • Data Pipeline (Python): Crawls, parses, and indexes legal documents into local database
  • MCP Server (TypeScript): Queries the local database and serves results to AI assistants
Python Pipeline → PostgreSQL + Qdrant → TypeScript MCP Server → AI

Components

Component Language Location
Data Pipeline Python /scripts
MCP Server TypeScript /src
Docker Compose /docker

Phase 1: Current Implementation (Russia)

Status: Operational

  • Documents: 1,134,985 Russian legal documents (2019-2026)
  • Content Coverage: 47,871 documents with full text (4.22%)
  • Code Articles: 6,232 articles across 22 consolidated legal codes
  • Embeddings: 265 semantic vectors (test data - full embeddings pending)
  • Database Backup: Download (218 MB) - SHA256: 70a1d8fc6b27b67ad7f12f03f017d02b5f68a0c895447159039800965895f8b2
  • Sources:
  • Codes: All 19 consolidated Russian legal codes imported:
    • Constitution (KONST_RF)
    • Civil Code (4 parts: GK_RF, GK_RF_2/3/4)
    • Criminal Code (UK_RF)
    • Labor Code (TK_RF)
    • Tax Code (2 parts: NK_RF, NK_RF_2)
    • Family, Housing, Land codes (SK_RF, ZhK_RF, ZK_RF)
    • Administrative Code (KoAP_RF)
    • Procedure Codes (GPK_RF, APK_RF, UPK_RF, KAS_RF)
    • Budget, Urban Planning, Criminal Executive codes (BK_RF, GRK_RF, UIK_RF)
    • Environmental codes (VZK_RF - Air, VDK_RF - Water, LK_RF - Forest)

Quick Start Pipeline:

  1. Import Base Codes (~6 hours) - 19 core legal codes (~5,000 articles) - Civil, Labor, Criminal, etc.
  2. Document Sync (partial: ~6h, full: 100+h) - Amendment documents from official sources (optional)
  3. Content + Embeddings (~2-3 hours) - Extract text and generate vectors (optional)

For most users: Step 1 gives you the essential legal codes. Steps 2-3 add amendment coverage.

See docs/DATA_PIPELINE.md for complete data pipeline documentation.

Phase 2: Future Vision (Global)

Status: Planned - See docs/VISION.md

  • Multi-country support
  • Decentralized data distribution (IPFS, libp2p)
  • Community verification system
  • Country adapter pattern for adding new jurisdictions
  • Delta updates and change tracking

Quick Start (Development)

Note: Default ports are PostgreSQL 5433, Redis 6380, Qdrant 6333 (to avoid conflicts with other projects).

Option A: Restore from Backup (Recommended - ~5 minutes)

Skip the data sync and use the pre-built database:

# 1. Download backup (218 MB)
#    https://drive.google.com/file/d/1DPLpFpuwUZbLZEGo2TxnCAcLRdb2V1aD/view?usp=sharing

# 2. Start Docker services
cd docker
docker-compose up -d

# 3. Restore backup (place .tar.gz in docker/backups/ directory)
./restore.sh law7_backup_20260211_014519

# 4. Start MCP server
npm install && npm run build && npm start

Option B: Fresh Installation (from official sources)

1. Start Docker Services

cd docker
docker-compose up -d

2. Run Initial Data Sync (Python)

# Using Poetry
poetry run python scripts/sync/initial_sync.py

3. Start MCP Server (TypeScript)

npm install
npm run build
npm start

4. Test with MCP Inspector

npx @modelcontextprotocol/inspector node dist/index.js

Dependencies

TypeScript (MCP Server)

  • @modelcontextprotocol/sdk - MCP protocol
  • pg - PostgreSQL client
  • @qdrant/js-client-rest - Qdrant vector DB client
  • ioredis - Redis client

Python (Data Pipeline)

  • pandas - Data processing
  • sqlalchemy - Database ORM
  • beautifulsoup4 - HTML parsing
  • pdfplumber - PDF text extraction
  • sentence-transformers - Embeddings (multilingual models)
  • qdrant-client - Vector DB client
  • torch - PyTorch with CUDA support (for GPU acceleration)

Hardware Requirements for GPU Acceleration:

  • NVIDIA GPU with CUDA support (tested on RTX 3060 12GB)
  • CUDA 12.x compatible drivers

More Documentation

License

AGPL-3.0 - see LICENSE for details.

This means:

  • Source code is freely available
  • Any modifications must be shared under the same license
  • If you run a modified version on a server and provide services to users, you must make the source code available to those users

About

Law7 MCP Server and Core Engine -- Open up-to-date legal database for AI assistants

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors