A Model Context Protocol server for semantic search and retrieval of domain-specific knowledge from Vietnamese traditional medicine, philosophy, and related domains using vector databases (Qdrant or Chroma) with Gemini embeddings.
Single tool with complete schema and detailed description. Naming follows verb_noun pattern (query_domain_knowledge). Input schema properly typed with required/optional fields and defaults. Description is comprehensive (500+ chars) with domain examples and usage tips. However, output schema is not documented, LLMs cannot predict response structure. Parameter descriptions are present but lack constraint details (e.g., no explicit enum for domains, no regex/length limits). Error handling returns success/error flags but lacks recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Validation logic exists but error messages are generic.
Search and retrieve domain-specific knowledge using semantic similarity. The tool analyzes your input query and returns relevant information from the knowledge base. You can optionally specify which domains to search in, such as: - nội kinh - đông y - y học cổ truyền - y tông tâm lĩnh - hải thượng lãn ông - lê hữu trác - y quán - y quán đường - âm dương ngũ hành - dịch lý - lão kinh - lão tử - phong thủy - đạo phật and more... Pro tip: For comprehensive insights, you can search across multiple complementary domains in one query. For example: - Combine "đông y" with "y học cổ truyền" for complete Vietnamese medical perspectives - Search "phong thủy" with "âm dương ngũ hành" for holistic feng shui analysis - Query "đạo phật" with "dịch lý" for deeper philosophical understanding If no domains are specified, it searches across all available domains. Results are ranked by relevance score, showing the most pertinent information from each selected domain.
Output schema not documented. Tool returns {success, results} or {success, error} but LLMs cannot predict the structure of 'results' array or individual result objects. This forces LLMs to guess field names for downstream processing.
Domains parameter lacks enum constraint. Description lists example domains but does not declare them as an enum. LLMs may hallucinate invalid domain names instead of selecting from the known set.
Error messages lack recovery guidance. When validation fails (e.g., 'Limit must be between 1 and 20'), the response does not suggest what the LLM should do next. Generic error handling reduces agent resilience.
No tool annotations. Tool is read-only (semantic search, no side effects) but lacks idempotentHint annotation. Agents cannot infer safety properties from the tool definition.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Parameter constraints not formalized. scoreThreshold description says '0-1' but no min/max in schema. limit says 'max 20' in description but no maximum constraint in schema. LLMs may pass out-of-range values; validation happens at runtime instead of being self-documenting.