Query and explore Nova Scotia open datasets via the Socrata SODA API.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
8-character Socrata dataset identifier (e.g. '3nka-59nz')
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| dataset_id* | string | 8-character Socrata dataset identifier (e.g. '3nka-59nz') |
{
"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')"
}
}
}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.
No arguments.
{
"type": "object",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| soql | string | 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 | integer | Max rows to return (1–1000, default 25). Ignored if $limit is in soql. |
| dataset_id* | string | 8-character Socrata dataset identifier (e.g. '3nka-59nz') |
{
"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 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.
| Argument | Type | Description |
|---|---|---|
| tag | string | Filter by an exact tag name from list_categories (e.g. 'population', 'fisheries') |
| limit | integer | Maximum number of results to return (1–50, default 10) |
| query | string | Free-text search query (e.g. 'population', 'fisheries', 'road network') |
| offset | integer | Offset for pagination (default 0) |
| category | string | Filter by exact category name from list_categories (e.g. 'Health and Wellness', 'Lands, Forests and Wildlife', 'Crime and Justice', 'Population and Demographics') |
{
"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')"
}
}
}