@pipeworx/data-ua
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/data-ua’s. Install: one-click buttons
Connect to just the @pipeworx/data-ua pack
https://gateway.pipeworx.io/data-ua/mcp — only @pipeworx/data-ua’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
The dataset catalogue of the Open Data Portal of Ukraine (about 37,000 datasets from ministries, regional administrations, city councils and state agencies): find a dataset by keyword in Ukrainian or English, read its record, and pull rows from a tabular resource.
Tools
data_ua_search_datasets(query?, limit?, offset?)finds datasets. Every word must match the start of a word in the title, tags, publishing organisation or the start of the description, so inflected Ukrainian forms match (“бюджет” finds “бюджету”, “бюджетні”). Returns id, name, title, organisation, tags, file formats, resource count, licence and last-modified date, newest first (limit up to 50). A blank query lists the newest datasets.data_ua_dataset(id)reads one catalogue record by id or name: description (shortened to about 400 characters), organisation, tags, licence, dates, update frequency and the resources withresource_id, name, format, link, size and whether the portal’s DataStore holds the rows.data_ua_query_resource(resource_id, q?, limit?, offset?)pulls rows from a DataStore resource. This one is a live call; if the portal refuses it the answer isreason: "upstream_blocked", not an empty list, and the resource link fromdata_ua_datasetcan be fetched directly.
data_ua_search_datasets({query: "бюджет", limit: 3})
-> matching datasets newest first, each with id, name, organisation, formats
data_ua_dataset({id: "<name from the search>"})
-> title, organisation, licence cc-by, update frequency, 20 resources with links
Auth
Keyless.
Data sources
- Open Data Portal of Ukraine, dataset catalogue metadata. Every catalogue answer carries
data_as_of(the date the copy was taken),newest_dataset_modified,answered_from(alwaysstored_copy), the licence and the attribution line.
The portal answers requests from the gateway’s network with a challenge page, so a live catalogue search failed for every caller. The catalogue metadata is therefore kept as a stored copy, rebuilt weekly by a scheduled job that reads the catalogue politely (one request every two seconds, and it stops at the first refusal). There is no live fallback for the catalogue: before the first load, or if the copy cannot be read, both catalogue tools return found: false, reason: "stored_copy_unavailable" rather than an empty result.
What the copy holds per dataset: id, name, title, description (first 400 characters), publishing organisation (id, name, title), tags, licence, created and modified dates, update frequency, and up to 60 resources (id, name, format, link, size, date). It does not hold the datasets’ files or rows, and it drops the maintainer and author name and email fields, so no individual’s contact details are stored or returned.
Licence: CC BY 4.0
The portal’s own footer states, in Ukrainian: “Весь контент доступний за ліцензією Creative Commons Attribution 4.0 International license, якщо не зазначено інше” (“All content is available under the Creative Commons Attribution 4.0 International licence unless stated otherwise”). CC BY 4.0 permits copying and redistribution with attribution, so a stored copy is allowed. Each dataset’s own licence id is in its record (license); the catalogue contains datasets under other licences, and the answer for such a dataset shows it. Every catalogue answer carries licence and attribution, which notes that descriptions are shortened and contact fields are omitted.
Caveats worth passing on
- The catalogue is mostly in Ukrainian. An English query finds only the datasets that have English words in their title, tags or description.
- Search is word-start matching, not ranking. Matches are ordered newest first, not by relevance. Add a second word to narrow.
- Descriptions are shortened;
description_shortenedsays when. Resources beyond the first 60 of a dataset are not kept;resources_notesays when. - Newer than the data date is not here. A dataset published after
data_as_ofappears after the next weekly refresh; anunknown_datasetanswer says so. - Rows are live.
data_ua_query_resourcedepends on the portal accepting the gateway; resources wheredatastoreis false have no rows to query and are files to download from their link.
Tools
- data_ua_search_datasets — Search the Ukraine Open Data portal catalogue by keyword in Ukrainian or English. Matches words (and their endings) in dataset titles, tags, publishing organisation and the start of the description; e
- data_ua_dataset — Show the catalogue record of one Ukraine Open Data dataset by id or name (from data_ua_search_datasets): title, description (shortened to about 400 characters), publishing organisation, tags, licence,
- data_ua_query_resource — Pull rows from a tabular Ukraine Open Data resource (CKAN DataStore) by resource_id (from a dataset’s resources where datastore is true). Optional full-text q, limit, offset. This one is a live call t
Tools
data_ua_dataset— Show the catalogue record of one Ukraine Open Data dataset by id or name (from data_ua_search_datasets): title, description (shortened to about 400 characters), publishing organisation, tags, licence,data_ua_query_resource— Pull rows from a tabular Ukraine Open Data resource (CKAN DataStore) by resource_id (from a dataset's resources where datastore is true). Optional full-text q, limit, offset. This one is a live call tdata_ua_search_datasets— Search the Ukraine Open Data portal catalogue by keyword in Ukrainian or English. Matches words (and their endings) in dataset titles, tags, publishing organisation and the start of the description; e