A Java-based MCP (Model-Context-Protocol) server designed to manage appointment data from the database. It provides a modular framework that exposes internal tools for data access and manipulation, with built-in support for AI-driven features
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation, error handling, and composition. VerifyAndGetAccessToken lacks description of what 'access token' means and when to use it. CreateNewAppointment has no guidance on token validation or failure modes. Both tools expose authentication tokens as parameters (security anti-pattern). No output schemas documented. Descriptions are present but minimal (under 100 chars each). Parameter descriptions exist but lack format constraints, validation rules, or dependency hints. No error recovery guidance. Tool composition is weak: CreateNewAppointment requires a token from VerifyAndGetAccessToken, but this dependency is not documented in either tool's description.
Create new appointment for user by using the access token
Verify user information and return access token valid for 24 hours which used for managing appointment
Credentials exposed as tool parameters: 'token' parameter in CreateNewAppointment violates secret-injection pattern. Tokens should be server-side injected, not passed by LLM. Agent traces log all parameters, tokens leak into logs and prompt history.
No output schemas documented. LLMs cannot plan downstream calls or extract return values. VerifyAndGetAccessToken returns a token but no schema shows its structure, TTL, or format. CreateNewAppointment returns success string but no structured response with appointment ID or confirmation details.
Tool dependency not documented. CreateNewAppointment requires a token from VerifyAndGetAccessToken, but neither tool's description mentions this prerequisite or guides the LLM to call VerifyAndGetAccessToken first. Forces agent to infer the workflow.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Parameter descriptions lack format constraints and validation rules. 'appointmentTime' says 'ISO_LOCAL_DATE_TIME format (YYYY-MM-DDThh:mm:ss)' in description but no enum, pattern, or min/max. LLMs cannot validate before calling. No guidance on timezone handling or past/future constraints.
No error handling or recovery guidance. If token is invalid, appointment time is in the past, or user not found, tools return nothing. LLM has no actionable error message, cannot retry intelligently, and cannot suggest alternatives.