Discover
It searches catalogue entries by meaning and keyword, then ranks the strongest sources.
GitHub A context layer for Canadian public data
Connect your AI assistant to 24,000+ public datasets. Find the right sources, query the data, and build charts, visuals, reports and stories—all traceable to the official source.

The problem
A vast amount of public data is available, but getting from a question to an answer often means searching unfamiliar catalogues, decoding spreadsheets and figuring out which resource is current.
opendata.fyi gives your AI assistant the tools to handle that work.
How it works
It searches catalogue entries by meaning and keyword, then ranks the strongest sources.
Before touching the data, it checks fields, sheets, formats and date coverage to choose the right resource.
It filters at the source when possible and streams CSV, Excel, JSON, ZIP, Parquet or PDF only when needed.
Direct dataset links keep every result traceable and make the original source easy to verify.
What could you ask?
A few sample questions to get started.
“How have rental prices changed across major cities?”
Under the hood
opendata.fyi builds a semantic index by encoding dataset metadata into 384-dimensional vectors with bge-small-en-v1.5 and storing them in a DuckDB database. For every query, it runs a hybrid search: local semantic search in DuckDB alongside CKAN’s live package_search API. Results are merged using Reciprocal Rank Fusion (RRF) to rank the most relevant datasets.
For retrieval, the server routes queries through the most efficient read-only execution path. Datastore-backed tables are filtered server-side through CKAN, while remote files are queried with DuckDB or handled with format-specific readers. Only targeted results are returned to your MCP client for downstream analysis, visualization and synthesis.
Open source and ready to run
Clone the repository, install the Python dependencies, download the latest catalogue index, and add the MCP server to your client.
View setup instructions$ git clone https://github.com/opendatafyi/openmcp.git
$ cd openmcp
$ python3 -m venv venv
$ venv/bin/pip install -r requirements.txtDownload catalog.duckdb from the latest release and place it in the project root.
Connect the server in your MCP client configuration. Full examples are in the repository.
Transparent by design
Catalogue search and embeddings run on your machine. Data requests go directly to the source.
If you opt in, opendata.fyi records a session ID that lasts for one server run, along with server version, tool names, response times, outcomes, general error types, and the public dataset IDs surfaced, inspected or queried. This helps show which tools and datasets get used, where failures happen, and where performance needs attention.
It never records your questions, SQL, filters, complete URLs, detailed errors, file paths or resource contents.
FAQ
An open-source MCP server that helps AI assistants discover and query public datasets published through open.canada.ca (with more sources coming soon).
opendata.fyi
public data with your favorite AI assistant.(currently supports open.canada.ca, with more sources coming soon.)
View source on GitHub