Skip to main content
Glama
alexandre-do

vancouver-city-opendata-mcp

by alexandre-do

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHost to bind the HTTP transport to.127.0.0.1
PORTNoPort used when MCP_TRANSPORT=http.3000
ODS_API_KEYNoOptional Opendatasoft API key, sent as Authorization: Apikey <key>. Not required for public data.
ODS_BASE_URLNoBase URL of the Opendatasoft Explore API v2.1 to query.https://opendata.vancouver.ca/api/explore/v2.1
ALLOWED_HOSTSNoComma-separated hostnames allowed to reach the HTTP transport.
MCP_TRANSPORTNostdio or http (overridden by the --stdio/--http CLI flags).stdio
EXPORT_ROW_CAPNoHard cap on rows export_dataset will return, regardless of the caller's requested limit.5000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_datasetsA

Search/list datasets in the City of Vancouver Open Data Portal catalog. Supports full-text search (q) and/or an ODSQL boolean filter (where). Returns dataset_id, title, description, theme, license, and record counts for each match.

get_datasetA

Get full metadata for a single dataset by its dataset_id, including its field schema (name, type, label, description) needed to write select/where/order_by expressions for query_records.

query_recordsA

Query and filter records within a dataset using ODSQL (where/select/order_by/group_by/q/refine), with pagination via limit/offset. For geographic datasets, results may include a geom GeoJSON field. Call get_dataset first if you don't know the field names.

get_facetsA

Get facet values and their record counts for a dataset's filterable fields. Call this before query_records to discover valid values for where/refine filters instead of guessing.

export_datasetA

Export rows from a dataset in csv, json, geojson, or parquet format. Returns the data inline as text (parquet is base64-encoded binary, since this is not a file-download channel) and is hard-capped at 5000 rows regardless of the requested limit. For larger datasets, narrow the export with where/select, or use query_records with offset-based pagination instead.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct stage of the open-data workflow: catalog search, metadata/schema retrieval, record querying, facet discovery, and dataset export. Even though query_records and export_dataset both return rows, their intended use cases are clear and non-conflicting.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: search_datasets, get_dataset, query_records, get_facets, export_dataset. The pattern is predictable and makes it easy to infer tool behavior from the name alone.

Tool Count5/5

Five tools is well-scoped for an open-data portal MCP server. Each tool earns its place by covering a necessary part of the exploration-and-extraction workflow without unnecessary redundancy.

Completeness5/5

The server covers the full read-only lifecycle for open data: discover datasets, inspect schema, explore facet values, query records, and export in multiple formats. There are no obvious dead ends or missing actions that would prevent an agent from accomplishing the apparent purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues