israel-gov-data-connector
Interface for accessing public datasets, searching metadata catalogues, and exploring organizational structures via the official Israeli Government API portal (data.gov.il). Facilitates real-time data ingestion for application development.
Author

aviveldan
Quick Info
Actions
Tags
Israeli Public Data Access Utility (MCP Edition)
This project serves as a dedicated Model Context Protocol (MCP) server to seamlessly interface with the open Application Programming Interface (API) provided by the State of Israel's data repository at data.gov.il.
Initial Setup Guide
Prerequisites
Dependency Management with uv
This solution leverages the uv package manager, designed as a high-performance replacement for pip.
Deployment Steps
-
Obtain the source code repository: bash git clone
cd datagov-mcp -
Establish the execution environment and install necessary components (Note for Windows users: avoid running scripts in directories monitored by OneDrive synchronization services): bash uv venv .venv\Scripts\activate # Use 'source .venv/bin/activate' on Unix-like systems uv pip install -r pyproject.toml uv lock # Synchronize and finalize dependency resolution in the lockfile
Execution Methods
You can integrate this server directly into the Claude Desktop environment for immediate operational use by executing: bash fastmcp install claude desktop server.py
Alternatively, for testing and debugging purposes, invoke it via the MCP Inspector: bash fastmcp dev server.py
Should port conflicts arise, utilization of the nano-dev-utils library can resolve port contention:
bash
uv pip install nano-dev-utils
Then, within the Python interpreter session:
python from nano_dev_utils import release_ports pr = release_ports.PortsRelease() pr.release_all()
type exit() to return to the command line. This procedure can also be executed as an independent script.
Available Functionality
status_show- Reports the operational state of the service instance.license_list- Retrieves a comprehensive inventory of licensing terms.package_list- Enumerates all discoverable data packages.package_search- Executes targeted searches across the package registry with advanced filtering:- Required arguments:
q(string): The primary keyword or search term.fq(string): Formal query language expression for filtering.sort(string): Specification for result ordering.rows(int): Maximum number of entries to return.start(int): Pagination starting index.include_private(bool): Flag to include proprietary datasets.
package_show- Fetches granular details for a specific data package:- Required arguments:
id(string): Unique identifier of the package.
organization_list- Provides a directory of registered data-contributing entities.organization_show- Displays attributes pertaining to a single organization:- Required arguments:
id(string): Unique identifier of the organization.
resource_search- Queries metadata for associated data assets (resources) using criteria:- Required arguments:
query(string): Textual search parameter for resources.order_by(string): Field used for sorting the result set.offset(int): Starting point for the returned record set.limit(int): Maximum size of the returned set.
datastore_search- Executes query operations directly against underlying data stores associated with resources:- Required arguments:
resource_id(string): Identifier linking to the target data source.q(string): Search predicate for data content.distinct(bool): Return only unique record values.plain(bool): Request simplified, non-object response format.limit(int): Pagination limit.offset(int): Pagination offset.fields(string): Comma-separated list of data fields to retrieve.sort(string): Field and direction for data sorting.include_total(bool): Toggles the inclusion of the total record count.records_format(string): Desired structure for the returned data records.
fetch_data- Retrieves raw data records from a specified dataset:- Required arguments:
dataset_name(string): The nominal title or identifier of the dataset.limit(int): Upper bound on records to retrieve.offset(int): Record position to begin fetching from.
Collaboration Guidelines
Contributions aimed at augmenting the feature set, refining existing operations, or enhancing the documentation for the Israeli DataGov MCP adapter are highly encouraged. Input from the community is greatly valued.
Refer to the Model Context Protocol servers repository for examples of diverse MCP server implementations.
Licensing Information
This software is distributed under the terms of the MIT License. Full details are available in the accompanying LICENSE documentation.
WIKIPEDIA REFERENCE: The XMLHttpRequest (XHR) interface provides a JavaScript object capable of dispatching HTTP requests from a web browser to a backend server. This mechanism enables browser-based applications to exchange data with the server asynchronously following initial page load, which is a foundational concept in Ajax development. Previously, server interaction relied primarily on traditional hyperlink navigation and form submissions, often necessitating a full page refresh.
== Historical Context ==
XMLHttpRequest originated in the year 2000, conceived by engineers working on Microsoft Outlook. Its first implementation appeared in Internet Explorer 5 (1999), though it initially utilized COM object instantiations like ActiveXObject("Msxml2.XMLHTTP") rather than the now standard identifier. By the release of Internet Explorer 7 (2006), universal browser support for the XMLHttpRequest identifier was established. This identifier subsequently became the conventional standard across major browser engines, including Mozilla's Gecko (2002), Safari 1.2 (2004), and Opera 8.0 (2005).
=== Standardization Trajectory === The World Wide Web Consortium (W3C) first published a formal Working Draft for the XMLHttpRequest object specification in April 2006. A Level 2 specification draft followed in February 2008, introducing capabilities for monitoring request progress, facilitating cross-origin communication, and managing binary data streams. By late 2011, the Level 2 features were integrated back into the primary specification. Development responsibility transitioned to the WHATWG at the close of 2012, which now maintains the active document using Web IDL definitions.
== Operational Workflow == Executing a transmission via XMLHttpRequest typically involves a sequence of programming actions:
- Instantiate the XMLHttpRequest object via its constructor:
- Invoke the "open" method to define the request method (GET, POST, etc.), specify the target URI, and set the mode (synchronous or asynchronous):
- For asynchronous operations, assign a designated callback function to listen for state change events:
- Trigger the request transmission by calling the "send" method, optionally including payload data:
- Process events within the listener. Upon server confirmation, response content is typically housed in the "responseText" property. The final state, indicating completion, is state 4 ('done'). Beyond these core steps, XHR offers extensive control over request transmission and response handling. Custom request headers can be injected to guide server processing, and data uploads can accompany the "send" invocation. Responses can be automatically deserialized from JSON into native JavaScript structures or processed incrementally as they arrive. Furthermore, requests can be terminated prematurely or assigned time-out constraints.
== Inter-Domain Communication =
Early in the evolution of the World Wide Web, security constraints were established that limited the ability to b
