An MCP server that provides tools for financial news retrieval, semantic search, MySQL database queries, and file generation with vector-based RAG capabilities.
This server has severe definition quality issues. Of 5 declared tools, only 1 is actually registered in the codebase (generateCsvTool in tools/tools.go). The other 4 tools are commented out and not functional. The single active tool (generate_document_link) has a description in Chinese with no English equivalent, making it inaccessible to English-speaking LLM contexts. Descriptions for all tools lack the actionable guidance required by the pattern:tool-description baseline (10-1024 chars, WHAT/WHEN/HOW). Parameter descriptions exist but are brief and lack constraint details (e.g., no enum for file_type values, no range for score/limit parameters). None of the tools document output schemas. Error handling is absent, no guidance on what happens if file generation fails or if a semantic search returns no results. The server appears to be in an incomplete, partially-disabled state.
将文本内容生成为文件,并返回下载链接。当用户想要保存当前的对话总结、生成的报告或数据表格时使用。
根据用户ID列表,查询他们是否领取了指定的栏目权限(如《脱水研报》、《早知道》)。脱水研报的id是581,早知道的id是679。
Qdrant 语义检索工具: - 适合:模糊查询、自然语言提问、语义相似度判断 - 不适用:需要按时间排序、获取最新文章、按字段过滤(如 author/date/type) 如果问题涉及 "最新"、"时间排序"、"按字段过滤"、"数据库字段精确筛选",不要使用本工具,应使用 MySQL 工具。
MySQL 精确查询工具: - 适合:按时间排序、获取最新文章、按字段过滤(如 source_id、日期、分类) - 不适用:意图模糊、纯自然语言语义理解类问题(如 "有哪些讲AI趋势的文章?") 如果用户请求涉及 "最新文章"、"按时间排序"、"topN 列表"、"字段条件",必须优先使用此工具。
根据自然语言查询用户数据库,支持根据时间范围查询。
4 of 5 tools are commented out and non-functional. Only generate_document_link is registered via s.AddTool(). The tools listed in the specification (search_articles, search_content_messages, search_users, get_user_benefit_records) do not exist in the active codebase.
Tool descriptions are written entirely in Chinese with no English translation. LLMs operating in English contexts cannot parse intent or selection criteria. Descriptions lack the WHAT/WHEN/HOW structure required by pattern:tool-description (e.g., 'When should I use this tool instead of similar ones?').
No output schemas are documented for any tool. LLMs cannot plan downstream calls or extract required data without knowing what fields the response contains. Pattern:tool and pattern:response-shaper require explicit return type documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Parameter 'file_type' for generate_document_link accepts 'markdown', 'csv', 'json' but these are not declared as an enum constraint. Free-form strings invite hallucinated values. Baseline pattern:constrained-input requires enum declaration for known value sets.
Parameters 'score' and 'limit' in search_articles and search_content_messages lack min/max constraints in descriptions (e.g., no mention that score ranges 0-1 or limit must not exceed 100). Pattern:constrained-input baseline requires explicit range documentation.
No error handling or recovery guidance. If generate_document_link fails (file write error, MinIO unavailable), there is no documented error response or actionable guidance for the LLM (e.g., 'Try again with smaller content' or 'Check MinIO connection'). Pattern:recovery-guide violation.
search_articles and search_content_messages return no pagination guidance. If a query matches 1000 articles, does the tool return all 1000 or cap at limit? Pattern:paginated-result requires explicit pagination and result capping.
Tool names start with verbs (good), but generate_document_link is ambiguous, does it generate a new document or link to an existing one? Should be create_document or create_document_link for clarity.