Back to MCP directory
publicPublicdnsLocal runtime

law-scrapper-mcp

波兰法律文档MCP服务器,提供全面的法律条文访问、搜索和分析功能,支持从波兰议会API获取法律文件并进行AI驱动的法律研究。

article

README

🚀 法律抓取器MCP 📜⚖️

法律抓取器MCP是一个全面的模型上下文协议(MCP)服务器,用于从众议院API访问和分析波兰法律法案,支持基于人工智能的法律研究和文档分析。

Python版本 许可证 版本

✨ 主要特性

  • 全面的法律法案访问:可全面访问《法律公报》(Dziennik Ustaw)和《波兰公报》(Monitor Polski)中的波兰法律法案。
  • 高级搜索与过滤:支持按日期、类型、关键词、发布者和状态进行多标准搜索。
  • 详细的文档分析:可检索完整的元数据、结构、引用和内容。
  • 日期和时间实用工具:提供专门用于法律文档分析的日期计算功能。
  • 系统元数据访问:可获取关键词、状态、文档类型和机构数据。
  • FastMCP集成:基于FastMCP框架构建,遵循最佳实践。
  • 专业文档:提供丰富的示例和清晰的参数说明。
  • RESTful API集成:可直接连接到官方众议院API端点。

📋 要求/先决条件

  • Python:3.12或更高版本
  • 包管理器:推荐使用uv,也可使用pip
  • 互联网连接:访问众议院API端点需要网络连接
  • 兼容MCP的工具:Cursor IDE、Claude Code或其他支持MCP的应用程序

📦 安装指南

使用uv(推荐)

# 克隆仓库
git clone https://github.com/numikel/law-scrapper-mcp.git
cd law-scrapper-mcp

# 安装依赖
uv sync

使用pip

# 克隆仓库
git clone https://github.com/numikel/law-scrapper-mcp.git
cd law-scrapper-mcp

# 安装依赖
pip install -e .

🔧 配置

MCP服务器配置

将以下配置添加到您的MCP客户端配置文件中:

对于Cursor IDE(.cursor/mcp.json):

{
  "mcpServers": {
    "law-scrapper-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/numikel/law-scrapper-mcp",
        "law-scrapper"
      ],
      "transport": "stdio"
    }
  }
}

对于Claude Code:

claude mcp add law-scrapper-mcp uvx '--from' 'git+https://github.com/numikel/law-scrapper-mcp' 'law-scrapper'

对于其他MCP工具(.mcp.jsonmcp_config.json):

{
  "mcpServers": {
    "law-scrapper-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/numikel/law-scrapper-mcp",
        "law-scrapper"
      ],
      "transport": "stdio"
    }
  }
}

💻 使用示例

基础用法示例

  • 获取用于法律分析的当前日期

    "今天的日期是什么?"

  • 搜索特定法律法案

    "查找2020年包含'环境'的所有法规"

  • 分析文档结构

    "显示法案DU/2020/1的目录"

  • 获取全面的文档详细信息

    "提供法律法案DU/2020/1280的完整信息"

可用工具类别

服务器提供14个专业工具,分为4个类别:

🕒 日期和时间(2个工具)

  • get_current_date - 获取用于法律分析的当前日期
  • calculate_date_offset - 计算法律期间的日期范围

📚 系统元数据(6个工具)

  • get_legal_keywords - 访问所有可用的搜索关键词
  • get_legal_publishers - 列出所有法律发布者(DU、MP)
  • get_publisher_details - 获取详细的发布者信息
  • get_legal_statuses - 获取文档状态类型
  • get_legal_types - 获取法律文档类型
  • get_legal_institutions - 获取涉及的机构

🔍 法案浏览和搜索(2个工具)

  • search_legal_acts - 高级多标准搜索
  • get_publisher_year_acts - 按发布者和年份浏览法案

📋 法案详细信息和分析(4个工具)

  • get_act_comprehensive_details - 获取完整的文档元数据
  • get_act_content - 检索PDF/HTML内容
  • get_act_table_of_contents - 分析文档结构
  • get_act_relationships - 获取法律引用和修订信息

📚 详细文档

项目结构

law-scrapper-mcp/
├── app.py                    # 包含14个法律研究工具的主要MCP服务器实现
├── pyproject.toml           # 项目配置、依赖项和CLI脚本
├── uv.lock                  # 确保可重复构建的锁文件
├── README.md               # 项目文档
└── __pycache__/            # Python字节码缓存(自动生成)

开发

开发设置

# 以开发模式安装
uv sync

# 直接运行服务器
uv run app.py

# 或使用安装的脚本
law-scrapper

运行测试

# 运行基本功能测试
uv run python -c "
import app
print('服务器导入成功')
funcs = [name for name in dir(app) if name.startswith('get_')]
print(f'可用工具数量: {len(funcs)}')
"

代码质量

项目遵循FastMCP最佳实践:

  • 标记工具:所有工具都有描述性标签,便于过滤。
  • 参数注释:每个参数都有清晰的描述。
  • 丰富示例:每个工具至少有5个示例。
  • 专业文档:提供详细的文档字符串和使用示例。

贡献

  1. 分叉仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 使用规范提交格式提交更改
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

开发指南

  • 遵循FastMCP工具定义的最佳实践。
  • 提供丰富的示例和参数说明。
  • 为工具分类添加适当的标签。
  • 在提交前测试所有新功能。
  • 所有代码注释和文档使用英语。

📄 许可证

本项目采用MIT许可证。

👤 作者

@numikel


法律免责声明:本工具仅用于研究目的,提供对波兰法律文档的访问。如需法律建议和法律解释,请始终咨询合格的法律专业人士。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client