MCP Server

Nova Scotia Data Explorer

io.github.SevaSk/nova-scotia-data-explorer
Data & Analytics Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Discovers Nova Scotia open datasets, retrieves metadata, and runs SoQL queries against the provincial data portal.

get_dataset_metadata
Get Nova Scotia Dataset Metadata
Retrieve full schema and metadata for a Nova Scotia Open Data dataset by its 8-character identifier (e.g. '3nka-59nz'). Returns all column field names, data types, and descriptions — essential before calling query_dataset so you know the exact field names to use in $select and $where clauses.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataset_id'], 'properties': {'dataset_id': {'type': 'string', 'description': "8-character Socrata dataset identifier (e.g. '3nka-59nz')"}}}
list_categories
List Nova Scotia Open Data Categories
Returns all dataset categories and popular tags available on the Nova Scotia Open Data portal. Use this first to discover valid category names before calling search_datasets with a category filter.
Input schema
{'type': 'object', 'properties': {}}
query_dataset
Query a Nova Scotia Open Dataset
Run a SoQL query against a Nova Scotia Open Data dataset. SoQL is SQL-like. Key clauses (combine with &): $select=col1,col2 — choose columns $where=field='value' — filter rows (use single quotes for strings) $where=field like '%val%' — partial match $order=field DESC — sort $limit=50 — row count (default 25, max 50000) $offset=50 — pagination $group=field — group by (use with aggregate functions) $q=search term — full-text search Aggregates: count(*), sum(col), avg(col), min(col), max(col) Examples: $where=year='2024'&$order=total DESC&$limit=10 $select=department,count(*)&$group=department&$order=count(*) DESC $where=area like '%Halifax%'&$limit=5 Always call get_dataset_metadata first to find exact field names.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataset_id'], 'properties': {'soql': {'type': 'string', 'description': "SoQL query string. Multiple clauses joined with '&'. String values in $where must use single quotes: field='value'. Do NOT URL-encode — pass the raw string."}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 1000, 'minimum': 1, 'description': 'Max rows to return (1–1000, default 25). Ignored if $limit is in soql.'}, 'dataset_id': {'type': 'string', 'description': "8-character Socrata dataset identifier (e.g. '3nka-59nz')"}}}
search_datasets
Search Nova Scotia Open Datasets
Search the Nova Scotia Open Data catalog (data.novascotia.ca) for datasets by keyword, category, or tag. Returns dataset names, IDs, descriptions, column names, and direct portal links. Use list_categories first to see valid category and tag names. Use the returned dataset ID with query_dataset or get_dataset_metadata for further exploration.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'type': 'string', 'description': "Filter by an exact tag name from list_categories (e.g. 'population', 'fisheries')"}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of results to return (1–50, default 10)'}, 'query': {'type': 'string', 'description': "Free-text search query (e.g. 'population', 'fisheries', 'road network')"}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Offset for pagination (default 0)'}, 'category': {'type': 'string', 'description': "Filter by exact category name from list_categories (e.g. 'Health and Wellness', 'Lands, Forests and Wildlife', 'Crime and Justice', 'Population and Demographics')"}}}
Added
query_dataset
Sept. 17, 2026, 12:52 p.m.
Added
get_dataset_metadata
Sept. 17, 2026, 12:52 p.m.
Added
search_datasets
Sept. 17, 2026, 12:52 p.m.
Added
list_categories
Sept. 17, 2026, 12:52 p.m.