MCP server for semantic search of Danbooru tags using RAG (Retrieval-Augmented Generation). Provides natural language semantic search of anime/manga tags using embeddings and vector similarity.
Single tool 'semantic_search' has a well-structured schema with proper JSON Schema definition, clear parameter descriptions, and a detailed multi-line description in Japanese and English. Input schema includes type constraints (top_k: 1-100, default 10). Output schema is documented via SemanticSearchOutput Pydantic model. However, the tool lacks error handling guidance, no recovery hints for common failure modes, and no explicit mention of prerequisites or when to use it vs alternatives. Description is 450+ chars (exceeds 200-char baseline for LLM optimization). Parameter descriptions are present but could be more concise. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite being a read-only operation.
Danbooruタグをセマンティック検索します。 自然言語のクエリから、関連するDanbooruタグを見つけます。 SDXLアニメモデルのプロンプト作成に役立ちます。 検索はキーワードマッチではなくセマンティック(意味的)検索です。 例えば「青い髪」で検索すると、"blue hair" だけでなく "colored hair" や "hair color" なども見つかります。 使用例: - "青い髪の女の子" → blue hair, 1girl, colored hair など - "夕焼けの風景" → sunset, scenery, sky, landscape など - "猫耳のキャラクター" → cat ears, animal ears, kemonomimi など
Tool lacks error handling guidance. No recovery hints for common failures (e.g., 'If database not initialized, call ensure_database_initialized()' or 'If query is too short, try expanding with related terms'). Agents cannot self-correct on failure.
Tool description is 450+ characters, exceeding the 200-char baseline for LLM optimization. Verbose descriptions waste tokens and bury key details. Recommend: 'Search Danbooru tags semantically. Finds related tags from natural language queries (e.g., "blue hair" → blue_hair, colored_hair, hair_color). Returns top_k results. Useful for SDXL anime prompt generation.'
No tool annotations despite being a read-only operation. Add readOnlyHint=true to the Tool definition so agents know this tool is safe to call without side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Output schema (SemanticSearchOutput) includes 'total_found' field which is redundant with len(results). Simplify to reduce token overhead. Also, SearchResult structure is not visible in provided code, cannot verify if it includes all fields agents need for downstream chaining.
Parameter 'query' lacks format guidance. Should specify: 'Natural language text (10-500 chars). Examples: "blue hair girl", "sunset landscape". Avoid exact tag names; use descriptive phrases for best semantic matching.'