Rennes Métropole Open Data (data.rennesmetropole.fr) — OpenDataSoft MCP. Open data for Rennes Métropole, France via the OpenDataSoft Explore v2.1 API: mobility, urban services, environment & geography. Keyless.
Three tools with complete schemas and descriptions, but significant gaps in parameter documentation and output schema specification. All tools have action verbs (search_, dataset_, query) and clear descriptions (100-150 chars). However, parameter descriptions lack detail on constraints, formats, and dependencies. No output schema documented. Error handling is minimal. The tools follow a logical discovery chain (search → info → query) but lack guidance on when to use each step.
Get metadata for one Rennes Métropole Open Data dataset (fields/schema, themes, record count) — call before query to learn the column names.
Query records from a Rennes Métropole Open Data dataset with ODSQL. Filter (where), aggregate (group_by/select), sort (order_by), paginate (limit/offset).
Search Rennes Métropole Open Data for datasets by keyword (mobility, urban services, environment & geography). Returns dataset_ids (pass to query/dataset_info), titles, themes and record counts.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., dataset_id from search_datasets response). Violates pattern:tool requirement to document return types.
Parameter descriptions lack format/constraint details. 'limit' and 'offset' state ranges (1-100, default 20) but 'query', 'where', 'select', 'group_by', 'order_by' have no guidance on ODSQL syntax, valid field names, or error cases. LLMs will hallucinate invalid ODSQL.
No dependency documentation. 'query' tool requires dataset_id from search_datasets, but description does not state 'Call search_datasets first to obtain dataset_id.' This forces agents to discover the workflow through trial and error.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No error recovery guidance. If a query fails (invalid ODSQL, missing field), the error message will be raw API text. LLMs need actionable guidance: 'Invalid field name. Call dataset_info(dataset_id) to see available columns.'
No pagination guidance in descriptions. search_datasets and query both support limit/offset, but descriptions do not explain when pagination is needed or how to iterate through large result sets.