data.gov.gr

The national open-data catalogue: 22,000+ datasets from 370 ministries, regions, municipalities and agencies — geospatial layers, statistics, registers, budgets, measurements — each with its publisher, licence and files, and the rows of the tabular ones queryable in place.

Publisher
Ypourgeio Psifiakis Diakyvernisis — Ethnikos Katalogos Anoikton Dedomenon (data.gov.gr)
Licence
Per dataset (ν. 4305/2014 open-data framework; see `licence` on every result)
Attribution
data.gov.gr kai o foreas pou dimosievei to kathe synolo dedomenon (named on every result)

MCP server

https://agoramcp-server.vercel.app/gr/mcp/datagov

HTTP API

https://agoramcp-server.vercel.app/gr/api/datagov

Its own server, with the tools under their plain names. On Greece's server the same tools answer as datagov_.

Tools

7 tools, each with the description a model is given, its arguments and the example it ships with. Over HTTP a tool answers at /gr/api/datagov/{tool}; over MCP, as itself.

search_datasets >Search data.gov.gr datasets

Search the datasets catalogued on data.gov.gr — the national catalogue of 22,000+ datasets from ministries, regions, municipalities and agencies: geospatial layers, statistics, registers, budgets, measurements. Returns each dataset's slug, title, publishing body, licence, themes, formats and whether its rows can be queried here; get_dataset lists its files. `text` searches titles and descriptions (Solr: quote a phrase, AND/OR between words; a bare word matches anywhere). Filters combine with AND: `organization` takes the slug from list_organizations, `tag` an exact tag from list_tags, `format` a file format such as 'CSV' or 'GeoJSON', `licence` a licence id from list_facets, `theme` one of the EU data themes. Most datasets are geospatial layers (WMS, GeoJSON); `queryableOnly` keeps those whose rows are in the datastore and can be filtered with query_resource. A catalogue entry is a description of data, not the data: to read rows, pick a resource from get_dataset and use query_resource (datastore) or read_resource (the file).

Arguments

textstring, up to 200 characters
Words from the title or description. Case and accents are ignored.
organizationstring, up to 100 characters
Slug of the publishing body, from list_organizations, e.g. 'chania'.
tagstring, up to 100 characters
An exact tag, from list_tags.
formatstring, up to 40 characters
A file format the dataset has a resource in: 'CSV', 'XLSX', 'GeoJSON', 'WMS', …
licencestring, up to 120 characters
A licence id, e.g. 'cc-by', 'odc-odbl', 'other-open', 'notspecified'. list_facets with 'licence' lists them.
themestring, one of AGRI, ECON, EDUC, ENER, ENVI, GOVE, HEAL, INTR, JUST, REGI, SOCI, TECH, TRAN
EU data theme: 'AGRI' Agriculture, fisheries, forestry and food, 'ECON' Economy and finance, 'EDUC' Education, culture and sport, 'ENER' Energy, 'ENVI' Environment, 'GOVE' Government and public sector, 'HEAL' Health, 'INTR' International issues, 'JUST' Justice, legal system and public safety, 'REGI' Regions and cities, 'SOCI' Population and society, 'TECH' Science and technology, 'TRAN' Transport.
queryableOnlyboolean
Only datasets with at least one resource in the datastore. Applied to each page after the search, so a page may come back short. Defaults to false.
sortstring, one of relevance, modified, title
'relevance' (default), 'modified' newest first, or 'title'.
pageinteger, ≥ 0
Zero-based page number. Defaults to 0.
sizeinteger, 1–100
Datasets per page, 1-100. Defaults to 20.

Example arguments

{
  "text": "σχολεία",
  "format": "CSV",
  "size": 5
}

get_dataset >Get a dataset and its files

Fetch one dataset from data.gov.gr by its slug or id: the full description, publisher and contact, licence, tags, EU theme, update frequency, coverage, and every resource (file or service) it publishes — each with its format, size, URL, and whether it is `queryable` (loaded into the datastore, so query_resource can filter its rows) or only downloadable. This is the step between finding a dataset and reading it: pick the resource, then query_resource for a queryable one or read_resource for a CSV/JSON file.

Arguments

datasetstring, matches ^[a-z0-9_-]+$, up to 200 charactersrequired
The dataset's slug from search_datasets (`name`), or its UUID.

Example arguments

{
  "dataset": "scholikes-monades-dimoy-naypaktias"
}

list_organizations >List publishing bodies

List the bodies that publish on data.gov.gr — ministries, regions, municipalities, agencies — with the slug `organization` on search_datasets takes and how many datasets each has, most first. `query` narrows by name (case and accents ignored). Bodies with no datasets are left out unless `includeEmpty` is set.

Arguments

querystring, up to 100 characters
Part of the body's name, in Greek or as the slug.
includeEmptyboolean
Include bodies registered with no datasets. Defaults to false.
limitinteger, 1–500
Most bodies to return, 1-500. Defaults to 50.

Example arguments

{
  "query": "δήμος",
  "limit": 10
}

list_tags >Find tags

Find the tags datasets on data.gov.gr carry, by part of the word — the exact spelling `tag` on search_datasets needs. Tags are free text from thousands of publishers, so the same idea appears in several spellings and cases; match the one you find.

Arguments

querystring, 2–100 charactersrequired
Part of a tag. Case-insensitive; accents must match.
limitinteger, 1–500
Most tags to return. Defaults to 50.

Example arguments

{
  "query": "νερ",
  "limit": 10
}

list_facets >Count datasets by licence, format, theme…

How the catalogue on data.gov.gr divides up: the datasets under each licence, file format, EU data theme, update frequency, dataset type or high-value-dataset category, most first. The values are what search_datasets takes for `licence`, `format` and `theme`. Licences matter here: this catalogue carries many, some non-commercial, and each dataset's own applies.

Arguments

facetstring, one of licence, format, theme, frequency, hvd, typerequired
'licence', 'format', 'theme', 'frequency', 'hvd' (high-value-dataset category) or 'type' (dataset type).

Example arguments

{
  "facet": "licence"
}

query_resource >Query a resource's rows

Read rows from a resource data.gov.gr has loaded into its datastore — the ones get_dataset marks `queryable` — with filters, full-text search, sorting and paging done upstream. Returns the columns with their types, the matching row count and a page of records. `filters` is a JSON object of exact column matches, e.g. {"Demos": "ΑΘΗΝΑΙΩΝ"}; `text` matches any column; `sort` is 'column asc' or 'column desc'; `fields` picks columns. Column names are the publisher's, as the first call shows them. Not every resource is queryable — a resource that is not gets a not-found error; use read_resource on the file instead.

Arguments

resourceIdstring, matches ^[0-9a-f-]{36}$required
The resource's UUID, from get_dataset.
textstring, up to 200 characters
Full-text search across all columns.
filtersstring, 2–2000 characters
JSON object of column → exact value, e.g. {"Demos":"ΑΘΗΝΑΙΩΝ"}.
fieldsstring, up to 1000 characters
Comma-separated column names to return. Defaults to all.
sortstring, up to 200 characters
'column asc' or 'column desc'; several separated by commas.
limitinteger, 1–1000
Rows to return, 1-1000. Defaults to 50.
offsetinteger, ≥ 0
Rows to skip. Defaults to 0.

Example arguments

{
  "resourceId": "303d3452-7bf8-46f4-a506-0160fea2184b",
  "filters": "{\"Demos\":\"ΑΘΗΝΑΙΩΝ\"}",
  "limit": 5
}

read_resource >Read a resource's file

Fetch the file behind a resource on data.gov.gr that is not in the datastore and read it here: a CSV (any delimiter, UTF-8 or Windows-1253) comes back as columns and rows, a JSON or GeoJSON file as its document with arrays paged. Files over 8 MB, spreadsheets, PDFs, map services and pages that turn out to be HTML are refused with the URL, which is what to hand the user then. Prefer query_resource where get_dataset marks the resource queryable — it filters upstream; this reads the whole file to show a slice.

Arguments

resourceIdstring, matches ^[0-9a-f-]{36}$required
The resource's UUID, from get_dataset.
offsetinteger, ≥ 0
Rows (or array items) to skip. Defaults to 0.
limitinteger, 1–500
Rows (or array items) to return, 1-500. Defaults to 50.

Example arguments

{
  "resourceId": "303d3452-7bf8-46f4-a506-0160fea2184b",
  "limit": 5
}