Hong Kong Health MCP Server providing health data tools for accessing health-related data in Hong Kong
The server registers 3 tools with fastmcp, all for reading Hong Kong health data. Tool definitions are present with names, descriptions, and input schemas. However, several quality gaps limit the score: (1) descriptions are minimal (90-115 chars), lacking context on when to use each tool or what structure is returned; (2) no output schemas are documented, LLMs cannot infer the shape of returned data; (3) parameters lack examples of valid district names, making the district filter in get_pas_gopc_avg_quota difficult for LLMs to use correctly; (4) error handling is implicit (rely on fetch_json_data) with no guidance for recovery. All tools are READ_ONLY, which is correct, but no tool annotations (readOnlyHint) are present in the code to signal this to clients. Parameter descriptions are adequate but not LLM-optimized.
Get current Accident and Emergency Department waiting times by hospital in Hong Kong
Get average number of general outpatient clinic quotas for the preceding 4 weeks across 18 districts in Hong Kong
Get current waiting times for new case bookings for specialist outpatient services by specialty and cluster in Hong Kong
No output schemas documented. LLMs cannot predict the structure of returned data (fields, types, nested objects). Each tool returns a Dict but the agent must infer what keys exist and what types they hold.
Tool descriptions are too brief (90 - 115 chars) and lack context. They state WHAT the tool does but not WHEN to use it, what structure is returned, or any dependencies. 'Get current waiting times...' doesn't explain that this is real-time Hospital Authority data or that results are language-localized.
The 'district' parameter in get_pas_gopc_avg_quota lacks concrete examples of valid district names (e.g., 'Tuen Mun', 'Central and Western'). LLMs will struggle to infer the exact spelling and casing. No enum or structured list of valid values is provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 62 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are visible in the code. All three tools are READ_ONLY, but clients cannot detect this without reading the server docs. Tool annotations would make this explicit per tool.
Error handling is implicit and not guided. fetch_json_data is called without try/catch or recovery guidance visible in the tool definitions. If the Hospital Authority API is down or returns an error, LLMs receive a raw exception or opaque error dict with no direction on what to do next.