cdmx-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INEGI_TOKEN | No | Optional API token for INEGI DENUE data to access higher rate limits or additional features. Register at https://www.inegi.org.mx/servicios/api_denue.html. | |
| CDMX_MCP_LIVE | No | Set to '1' to enable live testing mode that queries real data from datos.cdmx.gob.mx. | |
| ECOBICI_GBFS_URL | No | Optional URL to override the default GBFS feed for ECOBICI real-time data. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_datasetsB | List datasets on datos.cdmx.gob.mx. Optional free-text search. Args: search: free-text query (searches title and description). limit: max datasets to return (1-100). |
| describe_datasetA | Return schema and metadata for a dataset on datos.cdmx.gob.mx. Use shortcut ids: "fgj", "911", "ids", "aire". |
| query_recordsA | Query records from a CDMX dataset (CKAN datastore, PostgreSQL). Args: dataset_id: id on datos.cdmx.gob.mx (or shortcut: fgj, 911, ids, aire). where: SQL-ish WHERE, e.g. anio_hecho=2025 AND alcaldia_hecho="BENITO JUAREZ". String literals can use single or double quotes; identifiers are quoted automatically. select: comma-separated columns (for fewer tokens). order_by: e.g. "fecha_hecho desc". limit: 1-100. Defaults to 50. offset: for pagination. |
| aggregateA | Server-side aggregation (GROUP BY + metric) via CKAN datastore SQL. Example: aggregate("fgj", group_by="alcaldia_hecho", metric='count(*) as delitos', where="anio_hecho=2025"). |
| crime_hotspotsB | Top colonies/alcaldías by crime count (FGJ carpetas). Args: year: filter by anio_hecho (defaults to 2025). alcaldia: optional alcaldía filter (e.g. "CUAUHTEMOC"). UPPERCASE. category: optional crime category filter (e.g. "ROBO DE VEHICULO"). top_n: how many rows to return. |
| ecobici_statusA | Live bike/dock availability from ECOBICI (GBFS). Pass |
| air_quality_nowC | Most recent air-quality index rows from SIMAT (via datos.cdmx). Args: zone: optional zone filter (e.g. "NOROESTE", "CENTRO", "SURESTE"). |
| denue_nearC | Economic units (businesses) near a point (INEGI DENUE). Requires env |
| cache_statsB | Return cdmx-mcp cache stats (for demos — shows how much we saved). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guide_fgj | |
| guide_top5 |
TDQS
Scored across 9 tools
Most tools have distinct purposes targeting different CDMX data domains (crime, air quality, business, bikes, datasets), but some overlap exists between 'aggregate' and 'query_records' as both query datasets with SQL-like capabilities. The descriptions help differentiate them, with 'aggregate' focused on server-side GROUP BY operations and 'query_records' on general record retrieval.
Naming conventions are mixed but generally readable. Most tools use snake_case (e.g., 'air_quality_now', 'crime_hotspots'), but there are deviations like 'denue_near' (abbreviation) and 'ecobici_status' (brand name). Verb styles vary from descriptive nouns ('cache_stats') to action-oriented phrases ('list_datasets'), lacking a uniform pattern.
With 9 tools, the count is well-scoped for a city data server covering multiple domains (crime, environment, transportation, business). Each tool serves a clear purpose, such as querying datasets, retrieving specific data types, or listing metadata, making the set comprehensive without being overwhelming.
The toolset provides strong coverage for accessing and querying CDMX open data, including listing, describing, and querying datasets, along with specialized tools for crime, air quality, bikes, and businesses. Minor gaps exist, such as no explicit update or delete operations (reasonable for read-only public data) and limited filtering options in some tools, but core workflows are well-supported.