A comprehensive legal research tool for accessing and analyzing Polish legal acts from the Sejm API, covering both Dziennik Ustaw (Official Journal of Laws) and Monitor Polski (Polish Monitor).
Search & Discovery - Advanced multi-criteria search by year, title, keywords, document type, effectiveness dates, and active status; browse complete annual collections by publisher with pagination support
Document Analysis - Retrieve full metadata, content (PDF/HTML), hierarchical table of contents, legal relationships (references and amendments), and document lifecycle tracking
Reference Data - Access legal keywords, publishers, document statuses (active/repealed/consolidated), document types (laws/regulations/ordinances), and involved institutions (ministries, authorities, organizations)
Date Utilities - Get current date in legal format (YYYY-MM-DD) and calculate date offsets (days/months/years) for legal periods and deadlines
Utilizes Git version control for repository management and development workflow
Hosted on GitHub for source code management, distribution, and collaborative development
Built using Python programming language with FastMCP framework for MCP server implementation
Displays project status badges for Python version, license, and version information
Law Scrapper MCP šāļø
A comprehensive Model Context Protocol (MCP) server for accessing and analyzing Polish legal acts from the Sejm API, enabling AI-powered legal research and document analysis.
⨠Features
Comprehensive legal act access - Full access to Polish legal acts from Dziennik Ustaw and Monitor Polski
Advanced search & filtering - Multi-criteria search by date, type, keywords, publisher, and status
Detailed document analysis - Complete metadata, structure, references, and content retrieval
Date & time utilities - Specialized date calculations for legal document analysis
System metadata access - Keywords, statuses, document types, and institution data
FastMCP integration - Built with FastMCP framework following best practices
SSE transport - Server-Sent Events for reliable real-time communication
Professional documentation - Extensive examples and clear parameter descriptions
RESTful API integration - Direct connection to official Sejm API endpoints
š Requirements / prerequisites
Python: 3.12 or higher
Package manager: uv (recommended) or pip
Internet connection: Required for accessing Sejm API endpoints
MCP-compatible tool: Cursor IDE, Claude Code, or other MCP-supported applications
š Installation
Using uv (recommended)
Using pip
Using uvx (no installation required)
For quick testing or development without cloning the repository:
This will download and run the server with SSE transport on port 7683.
āļø Configuration
MCP server configuration
This server uses Server-Sent Events (SSE) transport for better performance and reliability. The server runs on http://localhost:7683/sse and provides real-time communication with MCP clients.
Important notes:
Make sure port 7683 is available before starting the server
The server must be running before connecting MCP clients
SSE provides better error handling and connection management than STDIO
Add the following configuration to your MCP client's configuration file:
For Cursor IDE (.cursor/mcp.json):
For Claude Code:
Note: Claude Code will run the server process automatically. The server uses SSE transport and runs on port 7683
For other MCP tools (.mcp.json or mcp_config.json):
šÆ Quick start / usage
Once configured, you can start using the legal research tools:
Basic usage examples
Get current date for legal analysis:
"What is today's date?"
Search for specific legal acts:
"Find all regulations from 2020 containing 'environment'"
Analyze document structure:
"Show me the table of contents for act DU/2020/1"
Get comprehensive document details:
"Give me full information about legal act DU/2020/1280"
Available tool categories
The server provides 14 specialized tools organized in 4 categories:
š Dates & time (2 tools)
get_current_date- Get current date for legal analysiscalculate_date_offset- Calculate date ranges for legal periods
š System metadata (6 tools)
get_legal_keywords- Access all available search keywordsget_legal_publishers- List all legal publishers (DU, MP)get_publisher_details- Detailed publisher informationget_legal_statuses- Document status typesget_legal_types- Legal document typesget_legal_institutions- Involved institutions
š Acts browsing & search (2 tools)
search_legal_acts- Advanced multi-criteria searchget_publisher_year_acts- Browse acts by publisher and year
š Act details & analysis (4 tools)
get_act_comprehensive_details- Complete document metadataget_act_content- PDF/HTML content retrievalget_act_table_of_contents- Document structure analysisget_act_relationships- Legal references and amendments
š Project structure
š ļø Development
Development setup
Server information:
Transport: Server-Sent Events (SSE)
Host: 0.0.0.0 (accessible from any network interface)
Port: 7683
Endpoint:
http://localhost:7683/sse
Running tests
Code quality
The project follows FastMCP best practices:
Tagged Tools: All tools have descriptive tags for filtering
Annotated Parameters: Every parameter has clear descriptions
Comprehensive Examples: Minimum 5 examples per tool
Professional Documentation: Detailed docstrings and usage examples
š¤ Contributing
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes using Conventional Commits format
Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Development guidelines
Follow FastMCP best practices for tool definitions
Include comprehensive examples and parameter descriptions
Add appropriate tags for tool categorization
Test all new functionality before submitting
Use English for all code comments and documentation
š License
This project is licensed under the MIT License
š¤ Author
Legal disclaimer: This tool provides access to Polish legal documents for research purposes. Always consult with qualified legal professionals for legal advice and interpretation of laws.