RestAPI + MCP server for working with OSM and Propertium DB
This server exposes 8 tools via HTTP/FastAPI but lacks production-grade definition quality. Tool descriptions are present but minimal (10-50 chars), parameter descriptions are sparse or missing entirely, and schemas are incomplete. Three health-check tools are redundant. The 'text' tool lacks input validation guidance. Polygon tools have complex nested schemas but no output documentation. No error handling guidance, no tool annotations, no idempotency hints. Naming is reasonable (verb_noun pattern) but descriptions fail to explain WHEN to use each tool or what happens on failure. This is a typical community server landing in the D/C range.
Insert multiple planet polygons at once.
Create a new planet polygon.
Retrieve a specific planet polygon by OSM ID.
Retrieve planet polygons with pagination.
Simple health check endpoint that returns a healthy status.
Health check endpoint to verify if the service is alive. Also checks if the database connection is alive.
Health check endpoint to verify if the service is alive. Also checks if the database connection is alive.
Three redundant health-check tools (health, health_live, health_ready) with nearly identical descriptions. Consolidate into one canonical health endpoint or clearly document when to use each.
Parameter descriptions are missing or trivial. 'text' parameter in text tool has no guidance on format, length, or expected content. Polygon creation parameters lack constraints (e.g., is admin_level an enum? what are valid values for boundary?).
No output schema documentation. Polygon response schema is inferred from PlanetPolygonResponse but not visible in tool definitions. LLMs cannot plan downstream calls without knowing what fields are returned.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
OpenAI text completion endpoint
No error handling guidance. Tools return HTTPException but descriptions do not explain what errors are possible, when they occur, or how to recover. E.g., get_polygon returns 404 but description does not mention this.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes without explicit hints. create_polygon and bulk_insert_polygons should be marked destructive.