Knesset MCP Server

by zohar

2 stars
188 downloads
Not rated
GitHub

About

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

Details

Author
zohar
GitHub stars
2
Downloads
188
Categories
Other

- Query bills by ID, name keyword, status, legislative stage, or type.
- List committees and get detailed committee information.
- List factions and Knesset members with optional party filters.
- Supports single- and multi-tool prompts in Hebrew.
- Backed by the official Knesset OData service.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Knesset MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Clone the repository, run npm install and npm run build, then start with npm start (or npm run dev for TypeScript). For Claude Desktop, add a knesset entry to the mcpServers configuration file with command npx and args ["-y","knesset-mcp"]. Requires Node.js >= 20.10.0.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "knesset mcp server": {
            "knesset-mcp": {
                "command": "npx",
                "args": [
                    "@modelcontextprotocol/inspector",
                    "node",
                    "build/index.js"
                ]
            }
        }
    }
}

McpServers

{
    "knesset-mcp": {
        "command": "npx",
        "args": [
            "@modelcontextprotocol/inspector",
            "node",
            "build/index.js"
        ]
    }
}

Knesset MCP Server

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"]
    }
  }
}

3. 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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.