MCP.so
Sign In
Servers

Knesset MCP Server

@zohar

Model Context Protocol (MCP) server for accessing the Israeli Knesset's parliamentary information API

A Model Context Protocol (MCP) server for accessing the Israeli Knesset's parliamentary information API. Exposes a focused set of tools so AI assistants like Claude can query bills, committees, and members from the Knesset OData service.

Requirements

  • Node.js >= 20.10.0 (older versions fail with SELF_SIGNED_CERT_IN_CHAIN against knesset.gov.il)

Installation

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

Usage

Running the server

npm start       # run the built server
npm run dev     # run TypeScript directly via ts-node

Using with Claude Desktop

  1. Install Claude Desktop.
  2. Edit your Claude Desktop configuration at ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
  "mcpServers": {
    "knesset": {
      "command": "npx",
      "args": ["-y", "knesset-mcp"]
    }
  }
}
  1. Restart Claude Desktop — the Knesset tools will be available.

The npx -y flag auto-installs the package on first run and caches it. Requires Node.js >= 20.10.0.

Tools

Bills

  • get-bill-info — Detailed info for a bill by BillID, including initiators.
  • search-bills-by-name — Keyword search over bill names (up to 20 most recent matches). Optional knessetNum filter.
  • list-bills-by-status — Bills filtered by a raw StatusID from KNS_Status, ordered by LastUpdatedDate desc.
  • list-recent-bills-by-stage — Bills at a named legislative stage: first-reading-approved, first-reading-plenum, second-third-approved, second-third-plenum, third-reading-plenum, passed. Note: the Knesset combines 2nd and 3rd readings into one vote, so second-third-approved is the closest proxy to "passed second reading"; passed means the bill became law.
  • list-bills-by-type — Bills by origin: private, government, or committee. Optional knessetNum.

Committees

  • get-committee-info — Committee details by CommitteeID.
  • list-committees — Committees for a given Knesset number, with optional onlyCurrent filter.

Members & Factions

  • list-factions — Lists parties (factions) in a given Knesset. Use this first to find the FactionID of the party you care about. Optional onlyCurrent filter to exclude factions that have disbanded or merged.
  • list-knesset-members — Lists Knesset members (MKs) with their party affiliation. Optional factionId filter returns only members of a specific party (pair with list-factions to discover IDs). Optional onlyCurrent filter limits results to active memberships.

How to get a party's MK roster:

  1. Call list-factions with the Knesset number → find the FactionID of the party.
  2. Call list-knesset-members with that knessetNum and factionId → get the member list.

Note: an MK who switched parties mid-term appears once per stint. Pass onlyCurrent: true to see only the active membership.

Example prompts

Sample prompts in Hebrew you can try once the server is wired up. Each one exercises a specific tool or combination of tools.

Single-tool prompts

list-factions

  • "אילו סיעות פעילות כיום בכנסת ה-25?"
  • "תראה לי את כל הסיעות שהיו בכנסת ה-24, כולל כאלה שהתפצלו או התאחדו."

list-knesset-members

  • "מי חברי סיעת הליכוד בכנסת הנוכחית?"
  • "תן לי את רשימת כל חברי הכנסת המכהנים כרגע בכנסת ה-25."

list-committees

  • "אילו ועדות פעילות היום בכנסת?"
  • "מה הן כל הוועדות שפעלו בכנסת ה-24?"

get-committee-info

  • "תן לי פרטים על ועדת הכספים."
  • "מה המידע על הוועדה עם המזהה 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

  • "תן לי את כל הפרטים והיוזמים של הצעת החוק עם המזהה 2145694."
  • "מי יזם את הצעת החוק הזו ומה הסטטוס הנוכחי שלה? (BillID: ...)"

Multi-tool prompts

Two tools

  • "תראה לי את כל הסיעות החרדיות בכנסת ה-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

Three tools

  • "מצא את הסיעה 'יש עתיד' בכנסת ה-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

Four or more tools

  • "צור לי פרופיל שלם של סיעת 'העבודה' בכנסת ה-25: רשימת החברים, באילו ועדות הם פעילים, ודוגמה להצעת חוק שהם יזמו. התחל ממציאת מזהה הסיעה." → 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

Backed by the Knesset OData service at:

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

Ordering uses LastUpdatedDate because the OData API does not expose per-stage transition dates on KNS_Bill.

Development

For ad-hoc testing of the server you can use the MCP Inspector:

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

A minimal smoke test is included:

node test-mcp.mjs

License

MIT

More from Other