MCP server for Baota Panel (宝塔面板) management - provides tools for managing websites, databases, emails, Docker containers, files, and system information
This server implements 16 tools for a Baota panel management system. While tool definitions are technically present via mcp-go registration (names, descriptions, parameter schemas), the quality is mediocre by production standards. Most tools lack comprehensive output schema documentation, error recovery guidance, and idiomatic parameter descriptions. Tool names are acceptable (verb-noun pattern), but descriptions are often generic Chinese text without explanation of WHEN to use the tool or WHAT it returns. Parameters generally have descriptions but lack constraint information (ranges, enums, formats). The tool set exhibits some composition issues, multiple file operations could benefit from batching patterns. Security: credentials are not exposed in parameters (good), but there is no visible audit logging, permission gating, or rate limiting.
获取宝塔面板资源相关信息,比如CPU、内存、磁盘、网络等
为指定域名添加邮箱
创建新的网站
创建新目录
创建新文件
删除文件或目录
获取指定容器的容器详情信息
获取docker中所有容器的列表
Generic, untranslated descriptions provide minimal actionable context. E.g. 'GetNetWork' → '获取宝塔面板资源相关信息...' does not explain WHEN an LLM should call this vs get_public_config, what fields are returned, or whether this is a performance-heavy call. Descriptions average ~40 chars (below the 194-char production baseline) and lack English context for international LLMs.
No documented output schemas. Tools like get_sites_list, get_mysql_list, get_container_list return lists but provide no schema information about pagination, field names, or response structure. LLMs cannot plan downstream calls or extract relevant fields without visible output contracts.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 26 | - | v1 |
获取文件内容(下载文件)
获取docker中本地镜像列表
获取指定邮箱的邮件列表
获取MySQL数据库列表
获取宝塔面板公共配置
获取PHP网站项目列表
保存文件内容(上传/修改文件)
修改文件或目录权限
No pagination controls or result limits declared. List-returning tools (get_sites_list, get_mysql_list, get_container_list, get_image_list) accept no page/limit parameters and provide no guidance on result cardinality. A user with 1000 sites or containers could blow the context window.
Inconsistent naming convention: 'GetNetWork' (PascalCase) vs 'get_sites_list' (snake_case). Production servers use one convention. This creates ambiguity for LLM tool selection and parsing.
delete_file tool lacks confirmation or dry-run pattern. Destructive operations should support a confirmation step to prevent accidental deletion via agent error.
No error recovery guidance. Tools provide no documentation on what errors are retryable, user-fixable, or fatal. E.g., add_site fails if domain already exists, the error response should guide the LLM to check get_sites_list or retry with a different domain.
Parameter descriptions lack constraint information. 'domains' in add_site says 'multiple domains separated by comma' but does not validate format, count limits, or domain name rules. 'chmod' in set_file_permissions offers no validation that values must be octal (644, 755, etc.).
Minimal tool composition checks. File operations (get_file_content, save_file_content, set_file_permissions, create_file, create_dir, delete_file) lack chaining IDs or clear dependency chains. No batch variant for operations agents may call in loops.
Parameter documentation for optional fields is unclear. E.g., add_mailbox has 'password' (optional, 'randomly generated if omitted'), 'full_name' (optional), 'is_admin', 'active', but descriptions do not clarify whether these boolean-like fields are strings ('true'/'false') or integers (0/1).