Multi-modal medical chatbot system with LLM-as-Agent architecture supporting text, images, and PDFs. Integrates RAG, vector search, OCR, and medical knowledge bases.
Critical gaps across all dimensions. Tool definitions lack proper schemas, no JSON Schema visible in source code. Descriptions are present but generic (avg ~80 chars, below 194-char baseline). Parameters lack type definitions and constraints. No error handling guidance, no output schema documentation, no security considerations. Tool registry exists but does not expose structured MCP-compliant definitions. This is a custom FastAPI wrapper around LangChain, not a proper MCP server implementation.
Access conversation memory and session context for continuity
Analyze image for medical content using vision models and CLIP embeddings
Analyze PDF documents for medical content extraction and OCR
Analyze text input for medical content and extract relevant information
Retrieve detailed information about medicines including dosage, side effects, and interactions
Get tool usage statistics including analytics, performance metrics, success rates, and error analysis
Search the web for current medical information and research
No JSON Schema input definitions visible. All tools claim input parameters (image_data, pdf_data, query, etc.) but no formal schema validation or type constraints are present in source code.
Descriptions are generic and under 50 characters for most tools (e.g., 'Analyze text input for medical content' is 40 chars). Baseline is 194 chars. Descriptions lack WHEN to use, prerequisites, or return value guidance. LLMs cannot reliably select tools with such sparse descriptions.
No output schema documentation. Tools return results but no structured schema is declared for what fields agents should expect. This forces LLMs to guess at response structure and breaks downstream tool chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. A failed image analysis returns nothing actionable to the agent.
Parameter descriptions missing or trivial. 'image_data' is described as 'Image file content' (18 chars), does not explain format, size limits, or supported types. 'query' is 'Optional query or context' (26 chars), vague. Baseline is 72 chars per param.