A tutorial repository demonstrating MCP server development with multiple practical examples including hello world, file reading, and web search capabilities
This tutorial server demonstrates basic MCP patterns but falls short of production quality. Tool names lack consistent verb prefixes (hello, add, get_weather are inconsistent; baidu_web_search is better). Descriptions exist but are often verbose and include implementation details (e.g., 'file_path=文件的完整路径(如 D:/projects/data.txt 或 C:/Users/name/note.md)') rather than LLM-optimized guidance. Parameter descriptions are present but inconsistent in quality. No output schemas are documented. Error handling returns plain strings without recovery guidance. The file-reader tool includes good security (extension whitelist, size limits) but lacks structured error categorization. Overall, this reads as educational material rather than production-grade tooling.
计算两个数的和
搜索中文网页(百度搜索引擎,国内直连)。 query=搜索关键词; top_k=返回结果数(1-50,默认10); site=限定站点(如 baike.baidu.com,空=不限); recency=时间范围(week/week/month/semiyear/year,空=不限)
查询指定城市的天气(示例,返回模拟数据)
跟用户打个招呼
列出目录下的文本文件。directory=目录路径; pattern=可选筛选关键词(如 "log" 只显示含 log 的文件)
读取本地文本文件的内容。支持格式: txt/csv/md/json/xml/yaml/log/ini/cfg。文件大小限制 1MB。 file_path=文件的完整路径(如 D:/projects/data.txt 或 C:/Users/name/note.md)
Tool descriptions embed implementation details and parameter documentation inline (e.g., 'file_path=文件的完整路径(如 D:/projects/data.txt 或 C:/Users/name/note.md)') instead of using structured parameter descriptions. This violates the tool-description pattern and forces LLMs to parse unstructured text.
No output schemas are documented. Tools return plain strings (e.g., read_text_file returns raw file content, baidu_web_search returns formatted text). LLMs cannot plan downstream operations or extract structured data without knowing the response format.
Error handling returns plain error strings without recovery guidance. E.g., 'API Key 无效或未设置' tells the LLM nothing about what to do next. Should follow error-classification pattern with actionable next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Tool naming is inconsistent. 'hello' and 'add' lack verb prefixes; 'get_weather', 'read_text_file', 'list_files', 'baidu_web_search' use verbs. Inconsistency reduces LLM's ability to infer intent from names alone.
Parameter descriptions in baidu_web_search contain example values ('week/week/month/semiyear/year') in the description text rather than as enum constraints. LLMs may treat examples as the only valid options or reuse them literally.