mcpField
K
Knesset MCP Server

Knesset MCP Server

本地服务
github.com/zohar法律与政务327 周前更新

关于 Knesset MCP Server

Knesset MCP Server 通过以色列议会的 OData 服务连接 AI 助手与议会信息。其工具涵盖法案、委员会、议员和党团,并可按立法状态、阶段及当前任职情况筛选。

主要功能

  1. 01按关键词搜索法案
  2. 02获取法案详情与提案人
  3. 03按状态、阶段或类型筛选法案
  4. 04列出委员会及其详情
  5. 05浏览议员与党团

适用场景

  1. 01追踪不同立法阶段的法案
  2. 02查找特定政策主题的法案
  3. 03查看委员会信息
  4. 04列出某党团的现任议员

MCP 相关

向 MCP 客户端提供专用工具,通过 Knesset OData 服务查询法案、委员会、议员及党团信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"knesset": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
启动命令npx -y @modelcontextprotocol/inspector

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@modelcontextprotocol/inspector

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Knesset MCP Server

用于访问以色列议会 Knesset 信息 API 的模型上下文协议(MCP)服务。它提供一组专用工具,让 Claude 等 AI 助手能够通过 Knesset OData 服务查询法案、委员会和议员信息。

要求

  • Node.js >= 20.10.0(旧版本访问 knesset.gov.il 时会出现 SELF_SIGNED_CERT_IN_CHAIN 错误)

安装

git clone https://github.com/yourusername/knesset-mcp-server.git
cd knesset-mcp-server
npm install
npm run build

用法

运行服务
npm start       # run the built server
npm run dev     # run TypeScript directly via ts-node
与 Claude Desktop 搭配使用
  1. 安装 Claude Desktop。
  2. 编辑 Claude Desktop 配置文件:~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
  "mcpServers": {
    "knesset": {
      "command": "npx",
      "args": ["-y", "knesset-mcp"]
    }
  }
}
  1. 重启 Claude Desktop,即可使用 Knesset 工具。

npx -y 标志会在首次运行时自动安装软件包并缓存。需要 Node.js >= 20.10.0。

工具

法案
  • get-bill-info — 根据 BillID 获取法案详细信息,包括提案人。
  • search-bills-by-name — 按关键词搜索法案名称(最多返回最近的 20 条匹配结果)。可选的 knessetNum 筛选条件。
  • list-bills-by-status — 按 KNS_Status 中的原始 StatusID 筛选法案,并按 LastUpdatedDate 降序排列。
  • list-recent-bills-by-stage — 获取处于指定立法阶段的法案: first-reading-approved、first-reading-plenum、second-third-approved、second-third-plenum、third-reading-plenum、passed。 注意:Knesset 会将二读和三读合并为一次表决,因此 second-third-approved 最接近“二读通过”;passed 表示法案已成为法律。
  • list-bills-by-type — 按来源获取法案:private、government 或 committee。可选的 knessetNum。
委员会
  • get-committee-info — 根据 CommitteeID 获取委员会详情。
  • list-committees — 获取指定届 Knesset 的委员会,可选 onlyCurrent 筛选条件。
议员与党团
  • list-factions — 列出指定届 Knesset 中的政党(党团)。首先使用此工具查找你关注的政党的 FactionID。可选 onlyCurrent 筛选条件,用于排除已解散或合并的党团。
  • list-knesset-members — 列出 Knesset 议员(MK)及其党派归属。可选的 factionId 筛选条件仅返回特定政党的议员(可与 list-factions 配合使用以查找 ID)。可选 onlyCurrent 筛选条件仅返回当前任职的议员。

如何获取某个政党的议员名单:

  1. 调用 list-factions 并提供 Knesset 届数 → 查找该政党的 FactionID。
  2. 调用 list-knesset-members 并提供该届的 knessetNum 和 factionId → 获取议员名单。

注意:任期内更换党派的议员会按每段任职经历各显示一次。传入 onlyCurrent: true 可仅查看当前党派任职情况。

示例提示词

接入服务后可尝试的希伯来语提示词示例。每条示例都会调用特定工具或组合工具。

单工具提示词

list-factions

  • “目前第 25 届议会有哪些活跃党团?”
  • “请列出第 24 届议会的所有党团,包括分裂或合并的党团。”

list-knesset-members

  • “当前议会中利库德党团的议员有哪些?”
  • “请列出目前第 25 届议会所有在任议员。”

list-committees

  • “今天议会有哪些活跃委员会?”
  • “第 24 届议会有哪些委员会?”

get-committee-info

  • “请提供财政委员会的详细信息。”
  • “ID 为 2010 的委员会有哪些信息?”

search-bills-by-name

  • “搜索包含‘养老金’一词的法案。”
  • “查找第 25 届议会中关于‘公共住房’的法案。”

list-bills-by-type

  • “请列出第 25 届议会最近的政府法案。”
  • “最新的 20 项私人法案有哪些?”

list-bills-by-status

  • “最近有哪些法案通过三读(状态 118)?”
  • “请列出第 25 届议会中已获委员会批准、进入二读和三读的法案。”

list-recent-bills-by-stage

  • “最近有哪些法律通过并列入法典?”
  • “请列出本届议会中获一读通过的法案。”

get-bill-info

  • “请提供 ID 为 2145694 的法案的所有详细信息及发起人。”
  • “谁发起了这项法案?它目前的状态是什么?(BillID: ...)”
多工具提示词

两个工具

  • “请列出第 25 届议会中所有正统派党团,然后详细列出‘犹太教联合党’的议员。” → list-factions + list-knesset-members
  • “搜索本届议会中关于‘家庭暴力’的法案,然后提供最相关法案的完整详细信息及发起人。” → search-bills-by-name + get-bill-info
  • “请列出议会所有活跃委员会,然后提供宪法委员会的详细信息。” → list-committees + get-committee-info
  • “最近有哪些法律通过了三读?选出最重要的 3 项,并提供每项的详细信息。” → list-recent-bills-by-stage + get-bill-info

三个工具

  • “在第 25 届议会中找到‘未来党’党团,查看其成员,然后搜索提及其中一位成员姓名的法案——以梅拉夫·米凯利为例。” → list-factions + list-knesset-members + search-bills-by-name
  • “请列出最近的 10 项政府法案和 10 项私人法案,然后详细介绍立法进程中进展最顺利的私人法案。” → list-bills-by-type (×2) + get-bill-info
  • “搜索关于‘公共交通’的法案,筛选出已获一读批准的法案(状态 109),并提供其中最活跃法案的详细信息。” → search-bills-by-name + list-bills-by-status + get-bill-info

四个或更多工具

  • “请为第 25 届议会中的‘工党’党团创建一份完整档案:成员名单、他们活跃于哪些委员会,以及一项他们发起的法案示例。请先查找党团 ID。” → list-factions + list-knesset-members + list-committees + search-bills-by-name + get-bill-info
  • “请为我准备一份立法摘要:本届议会最近通过的 5 项法律、获二读和三读批准的 5 项法案,以及获一读批准的 5 项法案。请提供最重要的已通过法律的完整详细信息。” → list-recent-bills-by-stage (×3) + get-bill-info
  • “我对环境立法感兴趣。请搜索关于‘气候’和‘污染’的法案,提供每项法案的详细信息,包括发起人,并查明每位发起人所属的党团——他们是否分属执政联盟和反对派?” → search-bills-by-name + get-bill-info + list-factions + list-knesset-members

API

基于以下 Knesset OData 服务:

https://knesset.gov.il/Odata/ParliamentInfo.svc

由于 OData API 未公开 KNS_Bill 各阶段的转换日期,因此排序使用 LastUpdatedDate。

开发

如需临时测试此服务,可使用 MCP Inspector:

npx @modelcontextprotocol/inspector node build/knesset-mcp-server.js

其中包含一个最简冒烟测试:

node test-mcp.mjs

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。