MakStat — State Statistical Office of North Macedonia, PxWeb MCP. Provides access to statistical data from North Macedonia's State Statistical Office via the PxWeb API.
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling guidance. Tool names lack action verbs (subjects, table_meta, query_table are noun-heavy). Descriptions are present but generic (10-100 chars, below the 50-200 char LLM-optimized baseline). Parameter descriptions are minimal or missing context. No documented output schemas, pagination support, or error recovery guidance. The 'body' parameter in query_table is particularly problematic: it's typed as 'object' with only an inline comment describing its structure, LLMs cannot parse comments. No validation or constraint documentation.
Pull data from a table. body is a PxWeb query object. Narrow dimensions to stay under the PxWeb cell limit.
Navigate the subject tree. Items have type "l" (folder) or "t" (table, .px suffix).
Table definition (dimensions, valid values). Path must end in the ".px" table id.
Tool names lack action verbs. 'subjects', 'table_meta', 'query_table' are noun-heavy and do not clearly signal intent. Should be 'list_subjects', 'get_table_metadata', 'query_table_data' to match verb_noun convention.
Parameter 'body' in query_table is typed as generic 'object' with structure documented only in description text ('{query: [...], response: {...}}'). LLMs cannot parse inline comments. Must define a proper JSON Schema with nested properties, types, and required fields.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract fields without knowing return structure. Must document what fields each tool returns (e.g., subjects returns array of {name, type, path}; table_meta returns {dimensions, variables}; query_table returns {data, metadata}).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Error handling is minimal. callTool throws generic errors like 'Unknown tool' and 'body must be a PxWeb query object' without recovery guidance. Should return structured errors with actionable next steps (e.g., 'Invalid path: must end in .px. Available tables: [...]').
No pagination support. If subjects or query_table return large result sets, they will blow the context window. Must add limit/offset parameters and document result caps in descriptions.