MCP Server for SAGE Lake data access. Provides tool endpoints for AI agents to query the SAGE Data Lake (1.78B rows, 40K+ indicators, 85 organizations).
Server has 6 tools with basic schemas and descriptions, but significant gaps prevent higher scores. All tools have descriptions (10-100 chars, mostly adequate) and input schemas with type definitions. However, parameter descriptions are sparse or missing entirely (e.g., 'indicator_code' in sage_get_timeseries lacks description; 'country_code' in sage_country_profile lacks description). Output schemas are completely undocumented, LLMs cannot plan downstream calls or extract structured data. No error handling guidance, no recovery paths, no validation rules. Tools lack idempotency markers and destructive operation warnings. Naming is verb-noun compliant but generic (query, get, search). No pagination support documented despite tools returning potentially large result sets (268M embeddings, 33M triples). Implementation stubs return plain text rather than structured JSON, breaking the response-shaper pattern.
Query the 33M-triple causal knowledge graph for relationships between entities.
Get comprehensive country profile with all available indicators across domains.
Cross-domain analysis joining two SAGE Lake indicators on country-year.
Search 268M evidence embeddings using hybrid BM25+vector retrieval.
Get time series data from SAGE Lake for a specific indicator and country.
Search SAGE Lake indicators by keyword. Returns matching indicator codes, names, source organizations, and row counts.
Output schemas completely undocumented. All tools return TextContent stubs with no structured field definitions. LLMs cannot extract data for downstream calls or plan multi-step workflows.
Multiple parameters lack descriptions. sage_get_timeseries: 'indicator_code' and 'year_from'/'year_to' undescribed. sage_country_profile: 'country_code' undescribed. sage_causal_graph: 'relation_type' enum values listed in description but not in schema enum constraint.
No pagination support documented or implemented. Tools query massive datasets (268M embeddings, 33M triples, 1.78B rows) but lack limit/offset, cursor, or total_count fields. Results will blow context windows.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
No error handling or recovery guidance. Implementation stubs return plain text. No distinction between retryable vs fatal errors, no actionable error messages, no suggestions for user-fixable issues.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but lack explicit marking. Agents cannot distinguish safe-to-retry operations from those with side effects.