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 complete input schemas and basic descriptions, but significant gaps in parameter documentation and output schema specification. All tools are read-only (good for safety), but descriptions lack actionable context for LLM selection. Parameter descriptions are sparse: 'indicator_code' and 'country_code' lack format guidance (ISO3? What values are valid?). No output schemas documented, LLMs cannot plan downstream calls or extract structured data. Tool names follow verb_noun convention (positive), but descriptions average ~100 chars, below the 194-char baseline for A+ tools. Error handling is absent from code, no recovery guidance, no validation messages. Composition is sound (each tool has one responsibility), but missing chaining IDs in responses (e.g., sage_query_indicators should return indicator_code for use in sage_get_timeseries).
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.
No output schemas documented. LLMs cannot infer what fields are returned, breaking downstream tool chaining and forcing wasteful discovery calls.
Parameter descriptions lack format/constraint guidance. 'indicator_code' and 'country_code' do not specify ISO3 format, valid ranges, or examples. LLMs cannot validate inputs before calling.
No error handling or recovery guidance in code. Stub implementations return placeholder text instead of real data or error messages. LLMs cannot learn from failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Tool descriptions are generic and lack WHEN/WHY context. 'Get time series data' does not explain when to call this vs sage_country_profile or sage_cross_domain. Descriptions average ~60 chars vs 194-char baseline.
No pagination support documented. sage_evidence_search and sage_causal_graph accept 'top_k' and 'limit' but no offset/cursor or total_count. Large result sets will blow context windows.