A Next.js dashboard application for monitoring and managing government administrative functions including planning, budgeting, procurement, public services, and asset management
Scoring was not performed
No MCP server implementation detected. Repository is a Next.js web application, not an MCP server. No evidence of mcp/sdk import, tool registration, or MCP protocol handlers.
Tool names violate verb_noun pattern. Generic names like 'fetchData', 'updateData', 'GET /api/xyz' prevent LLMs from inferring intent. Should use: 'get_penganggaran_data', 'update_penganggaran_progress', 'list_recent_updates'.
Input schemas missing or empty for 7 of 12 tools (fetchData variants, GET routes). Empty {} schema provides no validation or parameter guidance to LLMs. Cannot score schema >0 without visible constraints.
Descriptions are superficial or missing output schema documentation. E.g., 'Fetches penganggaran data from the API endpoint' does not explain structure, typical use case, or when to call this vs alternatives. Output schema for nested structures (Penganggaran → SubPenganggaran → ItemSubPenganggaran) not documented.
Tool name 'GET /api/total-and-unsubmitted' violates single-responsibility principle. Combines two concerns (aggregated progress AND unsubmitted counts). Should split into 'get_aggregated_progress' and 'get_unsubmitted_item_counts'.
HTTP verb notation (GET, PUT, POST) is not MCP-compliant tool naming. MCP tools are verbs describing actions, not HTTP methods. 'PUT /api/penganggaran' should be 'update_penganggaran_progress' with explicit action semantics.
No error handling documentation. Tools provide no guidance on retryability, user-fixable errors, or recovery paths. E.g., updateData endpoints may fail due to invalid ID or permission, no error messaging visible.
Duplicate tool names ('fetchData', 'updateData' appear twice for penganggaran and perencanaan). LLMs cannot distinguish between them without additional context. Should namespace: 'get_penganggaran_data' vs 'get_perencanaan_data'.
Parameter descriptions for 'progres' (boolean) lack context. Is this a completion flag? A submission status? An approval indicator? Ambiguous parameters force LLMs to guess intent.
GET /api/gemini endpoint declared as GET but code shows POST handler. Naming inconsistency creates confusion. Should be 'generate_content_with_gemini' and use correct HTTP method.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 0 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 16 | - | v1 |