# VoteIsrael (remote · voteisrael.co.il)

Free read-only Israeli election, polling and dated CBS population data in four languages.

- Trust score: 76/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `voteisrael.co.il`: 76/100 (this document), [markdown](https://verifymcp.io/servers/il-co-voteisrael-public-data/voteisrael.md), [page](https://verifymcp.io/servers/il-co-voteisrael-public-data/voteisrael)

## Channel facts

- Endpoint: `https://voteisrael.co.il/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.4.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 83/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2260 tokens (~86/item across 26 items; 16 tools + 10 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 16 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the VoteIsrael MCP server?

VoteIsrael is a hosted endpoint at https://voteisrael.co.il/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http il-co-voteisrael-public-data 'https://voteisrael.co.il/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "il-co-voteisrael-public-data": {
      "url": "https://voteisrael.co.il/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "il-co-voteisrael-public-data": {
      "type": "http",
      "url": "https://voteisrael.co.il/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.il-co-voteisrael-public-data]
url = "https://voteisrael.co.il/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "il-co-voteisrael-public-data": {
      "type": "remote",
      "url": "https://voteisrael.co.il/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add il-co-voteisrael-public-data --url 'https://voteisrael.co.il/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  il-co-voteisrael-public-data:
    url: "https://voteisrael.co.il/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "il-co-voteisrael-public-data": {
      "Transport": "http",
      "Url": "https://voteisrael.co.il/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add il-co-voteisrael-public-data -t streamable-http -u 'https://voteisrael.co.il/mcp'
```

### Other

```json
{
  "mcpServers": {
    "il-co-voteisrael-public-data": {
      "type": "http",
      "url": "https://voteisrael.co.il/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-04 (score 75, +3)

- [security] Tool “get_summary” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 63 → 86
- [functional regression] Schema quality: 63 → 90
- [functional improvement] Tool coverage: 17% → 100%
- [functional improvement] Stability: unverified → 0.03
- [functional] New resource “vote-accounting”
- [functional] Server version: 1.4.0 → 1.4.1
- [functional] Server version: 1.3.2 → 1.4.0
- [functional] Server version: 1.3.1 → 1.3.2
- [functional] Server version: 1.3.0 → 1.3.1
- [functional] New tool “get_vote_accounting”
- [cosmetic] “get_analytics” reworded the description of “include_cities”
- [cosmetic] “get_birth_country_population” reworded the description of “age”
- [cosmetic] “get_birth_country_population” reworded the description of “country”
- [cosmetic] “get_birth_country_population” reworded the description of “region”
- [cosmetic] “get_birth_country_population” reworded the description of “year”
- [cosmetic] “get_demographics” reworded the description of “level”
- [cosmetic] “get_demographics” reworded the description of “limit”
- [cosmetic] “get_demographics” reworded the description of “locality_code”
- [cosmetic] “get_demographics” reworded the description of “offset”
- [cosmetic] “get_demographics” reworded the description of “query”
- [cosmetic] “get_demographics” reworded the description of “stat_area_code”
- [cosmetic] “get_immigration” reworded the description of “country”
- [cosmetic] “get_immigration” reworded the description of “from_year”
- [cosmetic] “get_immigration” reworded the description of “limit”
- [cosmetic] “get_immigration” reworded the description of “offset”
- [cosmetic] “get_immigration” reworded the description of “to_year”
- [cosmetic] “get_locality” reworded the description of “code”
- [cosmetic] “get_polling_station” reworded the description of “ballot_label”
- [cosmetic] “get_polling_station” reworded the description of “locality_code”
- [cosmetic] “get_polls” reworded the description of “include_publication_only”
- [cosmetic] “get_polls” reworded the description of “include_series”
- [cosmetic] “get_polls” reworded the description of “limit”
- [cosmetic] “get_study” reworded the description of “study_id”
- [cosmetic] “search_localities” reworded the description of “limit”
- [cosmetic] “search_localities” reworded the description of “offset”
- [cosmetic] “search_localities” reworded the description of “query”
- [cosmetic] “search_polling_stations” reworded the description of “limit”
- [cosmetic] “search_polling_stations” reworded the description of “locality_code”
- [cosmetic] “search_polling_stations” reworded the description of “offset”
- [cosmetic] “search_polling_stations” reworded the description of “query”

### 2026-11-03 (score 72)

First indexed and scored.

## MCP tools (16)

### `get_summary` (~23 tokens)

Compact latest election results and polling averages, with source dates and result status.

### `list_elections` (~25 tokens)

List available elections with exact IDs and dates, including both 2019 elections.

### `get_election` (~57 tokens)

National party votes, seats, turnout and editorial blocs for one election.

Input parameters:

- `election_id` (string): latest, a Knesset ID such as k26, or full YYYY-MM-DD date. A bare 2019 is ambiguous.

### `get_polls` (~173 tokens)

Final-week average, retrospective model, initial exit polls, result and recent individual polls. Eligible poll dates are fieldwork end dates. include_publication_only adds excluded records with unconfirmed fieldwork_end and the 2026 publisher channel aliases.

Input parameters:

- `election_id` (string): latest, a Knesset ID such as k26, or full YYYY-MM-DD date. A bare 2019 is ambiguous.
- `include_publication_only` (boolean): Include records with publication dates but unconfirmed fieldwork dates; these remain excluded from calculated averages. Default false.
- `include_series` (boolean): Include the historical polling time series when true; default false.
- `limit` (integer): Number of recent individual polls to return, 0–25; default 5. Zero omits recent polls while retaining aggregates.

### `search_localities` (~111 tokens)

Find CBS locality codes by name in Hebrew, Russian, English or Arabic. Use the code with get_locality.

Input parameters:

- `limit` (integer): Maximum matching records per page, 1–50; default 10.
- `offset` (integer): Number of matching records to skip for pagination, 0–10000; default 0.
- `query` (string, required): Locality name or CBS code to search for, 1–100 characters. Hebrew, Russian, English and Arabic names are supported.

### `get_locality` (~87 tokens)

Locality votes, parties, blocs and turnout; identifies combined reporting units and unavailable historical results.

Input parameters:

- `code` (integer, required): Official CBS locality code returned by search_localities; for example 4000 for Haifa.
- `election_id` (string): latest, a Knesset ID such as k26, or full YYYY-MM-DD date. A bare 2019 is ambiguous.

### `get_sources` (~23 tokens)

Primary source URLs, verification timestamps and hashes, raw downloads and collaboration contact.

### `get_analytics` (~109 tokens)

National/locality aggregate analytics, fixed classifications, correctly defined historical bloc changes and medians. include_cities adds the UI’s latest-size-selected city matrix; missing results stay null.

Input parameters:

- `election_id` (string): latest, a Knesset ID such as k26, or full YYYY-MM-DD date. A bare 2019 is ambiguous.
- `include_cities` (boolean): Include the city comparison matrix selected by latest-election size when true; default false. Missing historical results remain null.

### `list_studies` (~34 tokens)

Discover structured immigrant reported-vote studies, pre-election intentions and source-reference-only research. Different participants are not a panel trend.

### `get_study` (~76 tokens)

Read one published study with its own dates, group sample sizes, exact rounded respondent percentages and sampling limitations. Source-only entries have no invented result table.

Input parameters:

- `study_id` (string, required): Exact study ID from list_studies, for example newsru-2026-exit-new-aliyah. Reference-only studies have no result table.

### `get_immigration` (~187 tokens)

New-immigration registry flows by available year, country and receiving-locality label. Not current population, language or individual voting. Unavailable years are not zero.

Input parameters:

- `country` (string): Published country-of-origin code, for example RU, or all for every published group. Use source groups as published; this describes arrival flows, not residents.
- `from_year` (integer): Inclusive first arrival year. Omit to start at the earliest available year; unavailable years are reported as missing, not zero.
- `limit` (integer): Maximum matching records per page, 1–50; default 10.
- `offset` (integer): Number of matching records to skip for pagination, 0–10000; default 0.
- `to_year` (integer): Inclusive last arrival year. Omit to end at the latest available year; must not precede from_year.

### `get_demographics` (~218 tokens)

CBS Census2022 resident composition, country of birth/origin and aliyah cohorts. Each percentage retains its own denominator; merged reporting areas count once. The snapshot excludes subsequent aliyah and cannot identify individual votes.

Input parameters:

- `level` (string): List locality or published statistical-area profiles when no locality_code is given; default localities. With locality_code the response includes its profile and paginated areas.
- `limit` (integer): Maximum matching records per page, 1–50; default 10.
- `locality_code` (integer): Filter by official CBS locality code, for example 4000 for Haifa. Omit to search across localities.
- `offset` (integer): Number of matching records to skip for pagination, 0–10000; default 0.
- `query` (string): Optional search text, up to 100 characters; empty means no text filter.
- `stat_area_code` (integer): Published Census2022 statistical-area code within locality_code. Requires locality_code; returns the published combined area when applicable.

### `search_polling_stations` (~187 tokens)

Published Knesset26 polling-building points, Hebrew addresses and Census2022 area assignments. Coordinates describe the building, not voter residence. Search by locality code, translated locality name, station label or published address.

Input parameters:

- `election_id` (string): latest, a Knesset ID such as k26, or full YYYY-MM-DD date. A bare 2019 is ambiguous.
- `limit` (integer): Maximum matching records per page, 1–50; default 10.
- `locality_code` (integer): Filter by official CBS locality code, for example 4000 for Haifa. Omit to search across localities.
- `offset` (integer): Number of matching polling-station records to skip, 0–100000; default 0.
- `query` (string): Optional search text, up to 100 characters; empty means no text filter.

### `get_polling_station` (~127 tokens)

One station’s exact CEC identity, official published building point/address, aggregate result and independent census assignment; historical positions are not inferred.

Input parameters:

- `ballot_label` (string, required): Exact published ballot-box label, including decimal or suffix when present, from search_polling_stations; for example 50.
- `election_id` (string): latest, a Knesset ID such as k26, or full YYYY-MM-DD date. A bare 2019 is ambiguous.
- `locality_code` (integer, required): Official CBS locality code of the station, for example 4000 for Haifa.

### `get_birth_country_population` (~214 tokens)

CBS table2.8: annual-average2023 national Jews and Others born abroad, by25 published countries/groups and8 age bands. Not Census2022, arrivals or city data. Russia/Ukraine stay within SU; US/Canada within NA_OC; source dashes are not invented zeros.

Input parameters:

- `age` (string): Published age band with inclusive endpoints, or all ages. Default all. Source dashes remain missing values; percentages use the national total for the selected age band.
- `country` (string): Published country/group ID, for example FR, ET, SU or NA_OC; all returns every group. Russia/Ukraine are grouped as SU and US/Canada as NA_OC; unavailable splits return an error.
- `region` (string): Published source region to filter; default all. A selected country must belong to this region. The national share denominator is unchanged.
- `year` (number): Reference year of the annual-average population estimate. Only 2023 is available; separate from Census2022.

### `get_vote_accounting` (~78 tokens)

Compare actual regular and double-envelope CEC votes; below-threshold valid votes and invalid ballots, with explicit denominators. National aggregates, not voter-flow or seat forecasts.

Input parameters:

- `election_id` (string): latest, a Knesset ID such as k26, or full YYYY-MM-DD date. A bare 2019 is ambiguous.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/il-co-voteisrael-public-data/voteisrael#diagnostics

## Score history

- 2026-11-05: 76
- 2026-11-04: 75
- 2026-11-03: 72

## Common questions

### What is the VoteIsrael MCP server?

VoteIsrael is an MCP server listed in the public MCP registry as il.co.voteisrael/public-data. Free read-only Israeli election, polling and dated CBS population data in four languages. This page covers its hosted endpoint (https://voteisrael.co.il/mcp).

### Is the VoteIsrael MCP server safe to use?

VoteIsrael scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the VoteIsrael MCP server expose?

VoteIsrael exposes 16 tools: get_summary, list_elections, get_election, get_polls, search_localities, and 11 more. Their descriptions and schemas cost roughly 1,729 tokens of context every time the server is loaded.

### Does the VoteIsrael MCP server require authentication?

No. We connected to VoteIsrael without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the VoteIsrael MCP server still maintained?

VoteIsrael is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the VoteIsrael MCP server?

VerifyMCP ran 13 checks on VoteIsrael, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://voteisrael.co.il/mcp
- Website: https://voteisrael.co.il/en/api/
- Changelog RSS feed: https://verifymcp.io/servers/il-co-voteisrael-public-data/voteisrael.xml
- Changelog JSON feed: https://verifymcp.io/servers/il-co-voteisrael-public-data/voteisrael/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/il-co-voteisrael-public-data/voteisrael.json
- HTML version of this page: https://verifymcp.io/servers/il-co-voteisrael-public-data/voteisrael
