This MCP server provides three tools for Dify knowledge base integration with TypeScript/Zod schemas. Tool naming follows verb_noun convention (dify_retrieve_knowledge, dify_list_datasets, dify_get_dataset_detail), which is good. Schemas are present and use Zod with proper type constraints (enums, min/max bounds). However, descriptions are minimal (12-30 characters) and lack actionable context about when/why to use each tool. Parameter descriptions are generic and do not explain dependencies, constraints, or error recovery paths. Output is returned as unstructured text blocks rather than structured JSON objects. Error handling exists but returns generic 'API调用失败' messages without guidance on recovery or next steps. Tool compositions are appropriate (single responsibility) and operate on read-only Dify resources. Per-tool analysis: dify_retrieve_knowledge has good parameter constraints but description lacks context about search methods or when to use which method. dify_list_datasets description does not explain pagination or when to call this discovery tool. dify_get_dataset_detail is minimal and does not guide when to call it vs list_datasets. Overall, the server is functional but lacks the LLM-optimized descriptions and structured output that production-grade agent tools require.
获取Dify知识库详细信息
获取Dify知识库列表
从Dify知识库中检索相关内容
Tool descriptions are too short (12-30 chars) and lack actionable context about when/why to use each tool. LLMs cannot determine selection criteria from 'Dify知识库检索' alone.
Output is returned as plain text blocks instead of structured JSON objects. LLMs must parse unstructured text to extract dataset IDs, scores, and metadata for downstream tool calls, wasting tokens and increasing errors.
Error messages are generic ('API调用失败: {errorMessage}') and do not guide recovery. Missing classification (retryable vs fatal) or suggestions for next steps (e.g., 'Check dataset_id matches output from dify_list_datasets').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Parameter descriptions lack constraint clarity. 'search_method' enum is not explained, LLM cannot know when to choose semantic_search vs keyword_search vs hybrid_search without external knowledge. 'score_threshold' description does not explain what score means (0-1 range is mentioned but not what scores indicate).
dify_list_datasets and dify_get_dataset_detail lack dependency documentation. 'keyword' parameter in dify_list_datasets is optional but not explained when to use it. No mention of pagination behavior or whether 'limit' is enforced server-side.
No documented output schema. Responses are text blocks; LLMs cannot know that dify_list_datasets returns dataset ID/name pairs suitable for passing to dify_retrieve_knowledge. Missing structured field documentation prevents tool chaining optimization.