Educational Java project demonstrating MCP (Model Context Protocol) server implementation with tool registration, execution, and workflow integration. Includes Day07 MCP core, Day09 Browser Agent, and Day10 Planning Agent components.
This is a teaching/study project, not a production MCP server. Tools have basic schemas and descriptions in Chinese, but lack depth. 17 tools show inconsistent quality: some have reasonable parameter descriptions (weather, calculator), others are minimal (stock tools). No output schemas documented. Error handling is absent, tools return success/failure but no recovery guidance. Naming is mostly verb-noun (get_weather, calculate) but some are vague (openWebPage vs open_webpage inconsistency). Descriptions average ~80 chars, below the 194-char baseline for A+ tools. No tool annotations (readOnlyHint, destructiveHint). Duplicate tool names (calculate appears twice with different signatures). Browser automation tools (clickElement, typeText, loginWebsite) lack security warnings about credential exposure. Email tool has no rate limiting or audit guidance.
对两个数字做四则运算(加减乘除)。当用户需要精确计算、算数学题时使用
对两个数字进行四则运算(加/减/乘/除)。当用户需要精确计算时使用。
对指定网页全屏截图并保存,返回截图文件路径。当用户想保存页面快照、留证时使用。
在网页上点击某个元素。当用户想点击按钮、链接、菜单等时使用。
从网页下载文件,返回本地保存路径。当用户想下载页面上的文件、报表、附件时使用。
获取当前日期和时间。当用户询问现在几点、今天日期时使用;可指定时区。
查询指定城市的实时天气。当用户询问某地天气、气温、是否下雨时使用。
登录一个网站。当用户提供账号密码并要求登录某网站时使用。
Duplicate tool name 'calculate' with different signatures (tools #2 and #15). LLMs cannot disambiguate; will select wrong variant.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. Violates pattern:tool requirement.
loginWebsite tool accepts plaintext password as parameter. Credentials will be logged in traces and prompt history. Violates pattern:secret-injection.
Browser automation tools (clickElement, typeText, uploadFile) lack security warnings about XSS, CSRF, or malicious selectors. No input validation guidance.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
打开指定网页并返回页面标题。当用户想访问某个网址、查看某个页面是否可达时使用。
查询股票K线。当用户需要查询股票的K线的时候使用。
查询指定股票的实时价格与涨跌幅。当用户询问股价、行情、某只股票多少钱时使用
获取指定网页渲染后的完整HTML源码。当用户需要分析页面结构、DOM、或做数据抓取时使用。
获取指定网页的可见正文文本(已去除HTML标签)。当用户想了解页面内容、总结网页、提取信息时使用。
发送邮件给指定收件人。当用户需要把信息/通知/报告发送到某个邮箱时使用
对一个数字计算平方根。当用户需要精确某个数的平方根时使用
在网页输入框中填入文本。当用户想在搜索框、表单里输入内容时使用。
向网页上传本地文件。当用户想在页面的文件上传框里提交本地文件时使用。
Tool 'square' description is vague ('对一个数字计算平方根' = 'calculate square root of a number'). Naming is also unclear, 'square' suggests squaring, not square root. Ambiguous naming causes LLM confusion.