Token导航 LogoToken导航TokenDH.com
sejm MCP logo
数据服务stdio官方级别未说明来源级核验

sejm MCP

MCP Server

提供对波兰议会API和欧洲立法标识符(ELI)数据库的标准化访问,支持AI助手和应用程序获取议员信息、委员会数据、投票记录及完整法律文本。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
GoClaude数据分析Claude DesktopClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

janisz

提供方

janisz

最后核验

2026/5/17 20:22

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm -i ghcr.io/janisz/sejm-mcp:latest

详细介绍

MCP 服务器

MCP(模型上下文协议)服务器,提供对波兰议会(Sejm)API和欧洲立法标识符(ELI)数据库的全面访问,用于法律文件。

概述

该服务器使人工智能助手和应用程序能够通过标准化的MCP接口与波兰议会数据和法律文件进行交互。它提供有关议员、委员会、投票、质询和完整的波兰法律行为数据库的信息。

特性

🏛️ Sejm API工具

访问波兰众议院的实时议会数据:

  • 瑟姆:检索议员名单
  • sejm_get_mp_details:获取详细的MP配置文件和统计数据
  • 瑟姆各委员会:获取议会委员会信息
  • 瑟姆搜索投票:搜索和分析投票记录
  • 瑟姆质询:浏览议会问答

⚖️ ELI(欧洲法规标识符)API工具

搜索和检索波兰法律文件:

  • eli_search_arts:跨法律行为数据库的高级搜索
  • eli_get_act_details:检索全面的行为元数据
  • eli_get_act_text:下载完整的法律文本(HTML/PDF格式)
  • eli_get_act_references:探索法律文件关系
  • eli_get_publishers:列出可用的法律出版商

安装

先决条件

  • 转到1.21或更高版本
  • Git

快速开始

# Clone the repository
git clone https://github.com/janisz/sejm-mcp.git
cd sejm-mcp

# Build the server
go build -o sejm-mcp ./cmd/sejm-mcp

# Run the server
./sejm-mcp

与MCP客户端一起使用

服务器实现了模型上下文协议,可以与任何兼容MCP的客户端(Claude Desktop、VS Code扩展等)集成。

Docker用法(推荐)

使用服务器最简单的方法是使用Docker:

# Pull the latest image
docker pull ghcr.io/janisz/sejm-mcp:latest

# Run the server
docker run --rm -i ghcr.io/janisz/sejm-mcp:latest

MCP配置

将此配置添加到您的 .mcp.json 或MCP客户端配置:

{
  "servers": {
    "sejm-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/janisz/sejm-mcp:latest"
      ],
      "description": "Polish Parliament and Legal Documents API access"
    }
  }
}

Claude桌面配置

对于Claude Desktop,添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "sejm-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/janisz/sejm-mcp:latest"
      ]
    }
  }
}

Codex配置

对于Codex,请添加到您的 .codex/config.toml:

[mcp_servers.sejm_mcp]
command = "docker"
args = [ "run", "-i", "--rm", "ghcr.io/janisz/sejm-mcp:latest" ]

本地二进制使用

如果您更喜欢在本地构建和运行:

# Build from source
go build -o sejm-mcp ./cmd/sejm-mcp

# Add to your MCP configuration
{
  "servers": {
    "sejm-mcp": {
      "command": "./sejm-mcp",
      "description": "Polish Parliament and Legal Documents API access"
    }
  }
}

高级:HTTP和SSE传输

对于高级用例,服务器还支持HTTP和服务器发送事件(SSE)传输方法:

# Run with HTTP transport
./sejm-mcp --transport http --port 8080

# Run with SSE transport
./sejm-mcp --transport sse --port 8080

HTTP传输配置:

{
  "servers": {
    "sejm-mcp": {
      "url": "http://localhost:8080/mcp",
      "description": "Polish Parliament API via HTTP"
    }
  }
}

SSE传输配置:

{
  "servers": {
    "sejm-mcp": {
      "url": "http://localhost:8080/sse",
      "description": "Polish Parliament API via SSE"
    }
  }
}
注: HTTP和SSE传输是高级功能,主要用于web集成或调试。建议大多数MCP客户端使用默认的stdio传输。

工具文档

API 工具

sejm_get_mps

获取特定任期的议员名单。

参数:

  • term (可选):议会任期编号(1-10,默认值:10)

例子:

{
  "tool": "sejm_get_mps",
  "arguments": {
    "term": "10"
  }
}

退货: 包含个人详细信息、俱乐部隶属关系、地区信息和活动状态的MP对象数组。

______________________________________________________________________

sejm_get_mp_details

检索特定议员的详细信息。

参数:

  • term (可选):议会任期(1-10,默认:10)
  • mp_id (必填):MP标识号

例子:

{
  "tool": "sejm_get_mp_details",
  "arguments": {
    "term": "10",
    "mp_id": "123"
  }
}

退货: 全面的议员档案,包括传记、投票统计、委员会成员和联系信息。

______________________________________________________________________

sejm_get_committees

列出特定任期的所有议会委员会。

参数:

  • term (可选):议会任期(1-10,默认:10)

例子:

{
  "tool": "sejm_get_committees",
  "arguments": {
    "term": "10"
  }
}

退货: 包含名称、代码、成员、工作范围和联系方式的委员会对象数组。

______________________________________________________________________

sejm_search_votings

使用过滤选项搜索议会投票记录。

参数:

  • term (可选):议会任期(1-10,默认:10)
  • sitting (可选):具体座位数
  • limit (可选):最大结果(默认值:50)

例子:

{
  "tool": "sejm_search_votings",
  "arguments": {
    "term": "10",
    "sitting": "1",
    "limit": "25"
  }
}

退货: 包含日期、主题、投票计数和结果的投票记录数组。

______________________________________________________________________

sejm_get_interpellations

检索议会质询(向政府提出的正式问题)。

参数:

  • term (可选):议会任期(1-10,默认:10)
  • limit (可选):最大结果(默认值:50)

例子:

{
  "tool": "sejm_get_interpellations",
  "arguments": {
    "term": "10",
    "limit": "20"
  }
}

退货: 一系列质询对象,包括问题、收件人、日期和政府回应。

ELI API工具

eli_search_acts

使用高级过滤功能搜索波兰法律行为数据库。

参数:

  • title (可选):在动作标题中搜索关键字
  • publisher (可选):出版商代码(例如,《法律杂志》的“DU”)
  • year (可选):出版年份
  • type (可选):文档类型
  • limit (可选):最大结果(默认值:50)

例子:

{
  "tool": "eli_search_acts",
  "arguments": {
    "title": "konstytucja",
    "publisher": "DU",
    "year": "1997",
    "limit": "10"
  }
}

退货: 包含行动摘要、ELI标识符和发布详细信息的搜索结果。

______________________________________________________________________

eli_get_act_details

获取特定法律行为的全面元数据。

参数:

  • publisher (必填):出版商代码
  • year (必填):出版年份
  • position (必填):日记账中的职位编号

例子:

{
  "tool": "eli_get_act_details",
  "arguments": {
    "publisher": "DU",
    "year": "1997",
    "position": "78"
  }
}

退货: 完整的行为元数据,包括标题、日期、状态、关键字和法律关系。

______________________________________________________________________

eli_get_act_text

下载HTML或PDF格式的法律行为全文。

参数:

  • publisher (必填):出版商代码
  • year (必填):出版年份
  • position (必填):职位编号
  • format (可选):“html”或“pdf”(默认:html)

例子:

{
  "tool": "eli_get_act_text",
  "arguments": {
    "publisher": "DU",
    "year": "1997",
    "position": "78",
    "format": "html"
  }
}

退货: 要求格式的完整法律文本,适合分析或显示。

______________________________________________________________________

eli_get_act_references

探索行为之间的法律关系(引用、修订等)。

参数:

  • publisher (必填):出版商代码
  • year (必填):出版年份
  • position (必填):职位编号

例子:

{
  "tool": "eli_get_act_references",
  "arguments": {
    "publisher": "DU",
    "year": "1997",
    "position": "78"
  }
}

退货: 一系列具有关系类型和描述的相关法律文件。

______________________________________________________________________

eli_get_publishers

列出ELI数据库中所有可用的法律文件出版商。

参数:

例子:

{
  "tool": "eli_get_publishers",
  "arguments": {}
}

退货: 包含代码、名称和描述的发布者对象数组。

用例

研究与分析

  • 政治学:分析投票模式、委员会组成、议员活动
  • 法律研究:搜索立法,跟踪法律变化,查找引用的文件
  • 新闻业:获取最新的议会程序和法律发展
  • 学术的:研究波兰政治制度和法律框架

人工智能集成

  • 法律AI:使人工智能助手能够回答有关波兰法律的问题
  • 政治聊天机器人:提供有关议员和议会活动的实时信息
  • 研究工具:自动化政治和法律分析的数据收集
  • 合规体系:监控法律变化和监管更新

数据源

此服务器提供对波兰政府官方API的访问:

  • API 会议:https://api.sejm.gov.pl/sejm.html

- 实时议会数据 - 官方议员档案和投票记录 - 委员会时间表和组成

  • API艾丽: https://api.sejm.gov.pl/eli_pl.html

- 完整的波兰法律行为数据库 - 欧洲立法标识符合规性 - 全文搜索功能

发展

建筑

服务器使用干净、可维护的架构:

├── cmd/sejm-mcp/          # Main application entry point
├── internal/server/       # MCP server implementation
│   ├── server.go         # Core server and HTTP client
│   ├── sejm_tools.go     # Sejm API tool implementations
│   └── eli_tools.go      # ELI API tool implementations
├── pkg/
│   ├── sejm/             # Auto-generated Sejm API types
│   └── eli/              # Auto-generated ELI API types
├── *-codegen.yaml        # OpenAPI code generation configs
├── *.json                # OpenAPI specifications (downloaded)
└── README.md

类型生成

该项目根据官方OpenAPI规范自动生成Go类型:

# Install required tools
go install github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@latest

# Download latest OpenAPI specs
curl -s https://api.sejm.gov.pl/sejm/openapi/ -o sejm-openapi.json
curl -s https://api.sejm.gov.pl/eli/openapi/ -o eli-openapi.json

# Convert YAML to JSON format
yq eval -j sejm-openapi.json > sejm-openapi-converted.json
yq eval -j eli-openapi.json > eli-openapi-converted.json

# Generate Go types from OpenAPI specs
oapi-codegen -config sejm-codegen.yaml sejm-openapi-converted.json
oapi-codegen -config eli-codegen.yaml eli-openapi-converted.json

# Rebuild the server
go build -o sejm-mcp ./cmd/sejm-mcp

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 确保所有类型都是根据OpenAPI规范生成的
  4. 添加新功能的测试
  5. 更新文档
  6. 提交拉取请求

测试

该项目有一个全面的测试套件,具有不同的测试级别:

# Run all tests (recommended before committing)
make test

# Run unit tests only (fast, no network required)
make test-unit

# Run API connectivity smoke test (quick network check)
make test-smoke

# Run integration tests (requires network access)
make test-integration

# Run with coverage report
make test-coverage

# Check API connectivity manually
make check-apis

测试体系结构

  • 单元测试:使用模拟数据,离线运行,专注于逻辑验证
  • 冒烟测试:验证API可访问性的单个连接测试
  • 集成测试:需要真正的API访问的端到端测试
  • 模拟服务器: httptest.NewServer 用于受控HTTP测试

演出

  • 单元测试:~0.01秒(即时模拟数据)
  • 烟雾测试:~0.1秒(快速连接检查)
  • 完整测试套件:约6-8s(包括模拟HTTP服务器)

故障排除

常见问题

构建错误:通常由生成类型中的重复字段引起

  • 重新运行类型生成: oapi-codegen -config sejm-codegen.yaml sejm-openapi-converted.json
  • 检查API规范变更

API费率限制:官方API可能有速率限制

  • 如果需要,实施请求限制
  • 缓存频繁访问数据的响应

网络超时:对于大型数据集,API响应可能较慢

  • 在服务器配置中调整HTTP客户端超时
  • 使用分页参数限制响应大小

测试失败:

  • 单元测试失败:检查最近的代码更改,单元测试使用模拟数据
  • 烟雾测试失败:验证互联网连接,API可能暂时不可用
  • 集成测试失败:检查API状态和网络连接

性能提示

  • 使用 limit 控制响应大小的参数
  • 缓存频繁访问的参考数据(委员会、出版商)
  • 对重复查询实施请求重复数据删除

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢

  • 波兰议会(瑟姆)提供开放API
  • 用于标准化AI工具集成的MCP协议开发人员
  • OpenAPI规范标准倡议

目录标签

目录标签

GoClaude数据分析议会数据混合部署法律数据库政府API政治分析法律研究

支持客户端

Claude DesktopClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP