ellmos-servercommander-mcp
Officialellmos-servercommander-mcp
用于服务器操作的 Alpha MCP 服务器:部署预演、邮件状态、访问日志分析及 HTTP 健康检查。
属于 ellmos-ai 家族的一部分。
[!NOTE] 可发现性与 AI 搜索: 已发布至 npm 作为
ellmos-servercommander-mcp,在server.json、glama.json和smithery.yaml中为 MCP 生态系统编目,并在llms.txt中为 AI/LLM 搜索建立索引。
架构可视化
graph TD
Client[MCP Host: Claude / Cursor] <-->|stdio / JSON-RPC| NodeWrapper[Node.js Entrypoint]
NodeWrapper <-->|Spawn subprocess| PyServer[Python MCP Server]
subgraph Tools [ServerCommander Tools]
PyServer -->|sc_health_check| HTTP[HTTP/HTTPS Endpoint Check]
PyServer -->|sc_logs_analyze| Logs[Apache/Nginx Access Logs]
PyServer -->|sc_deploy / sc_deploy_status| Deploy[Dry-Run Manifest & SQLite History]
PyServer -->|sc_mail_*| Mail[IMAP/SMTP Safe Readiness Diagnostics]
end
subgraph Storage [Local Storage]
Deploy -->|Optional persist| SQLite[(SQLite Deploy History)]
Logs -->|Optional persist| JSONReports[(JSON Log Reports)]
endRelated MCP server: automation-health-mcp
从这里开始
目标 | 从以下开始 |
将 ServerCommander 添加到 Claude Desktop、Claude Code、Cursor 或其他 MCP 主机 | |
在部署前检查公共或内部 HTTP 端点 |
|
检查 Apache/Nginx 访问日志中的错误、机器人、引用来源和可疑路径 |
|
在 SFTP/SSH 执行存在之前构建预演部署清单 |
|
稍后计划邮件操作,但今天不意外发送 |
|
状态
传输:通过 Python MCP SDK 的 stdio
包状态:
ellmos-ai下的公开 alpha 包当前核心:MCP 工具列表、MCP 工具分发、配置加载、HTTP 健康检查、更丰富的访问日志分析(可选持久化 JSON 报告),以及可选的本机预演部署历史
安全的 alpha 处理程序:
sc_deploy构建本机 SHA256 清单、配置诊断,以及在预演模式下可选的 SQLite 历史记录;sc_mail_*报告协议特定的 IMAP/SMTP 就绪状态,而不打开邮件连接i18n:支持
en、de、es、zh、ja、ru的本地化 MCP 工具描述、输入架构字段描述和未知工具错误,英语为回退
安装
npm 包包含一个启动 Python 服务器的 Node 封装器。您仍然需要 Python 3.10+ 和 Python 包 mcp>=1.0.0。
选项 1:从 npm 安装
npm install -g ellmos-servercommander-mcp@alpha
ellmos-servercommander选项 2:从源码安装
git clone https://github.com/ellmos-ai/ellmos-servercommander-mcp.git
cd ellmos-servercommander-mcp
$env:PYTHONIOENCODING = "utf-8"
python -m pip install -e ".[dev]"
python -m pytest -q如果您的同步客户端会锁定文件,请避免在云同步文件夹内创建 .venv。如果需要隔离环境,请在该文件夹之外创建。
从源码启动
$env:PYTHONPATH = "src"
python -m servercommander.serverMCP 客户端配置
全局 npm 安装
{
"mcpServers": {
"servercommander": {
"command": "ellmos-servercommander"
}
}
}使用 npx 无需全局安装
{
"mcpServers": {
"servercommander": {
"command": "npx",
"args": ["-y", "ellmos-servercommander-mcp@alpha"]
}
}
}直接运行 Python
{
"mcpServers": {
"servercommander": {
"command": "python",
"args": ["-m", "servercommander.server"],
"env": {
"PYTHONPATH": "C:/path/to/ellmos-servercommander-mcp/src",
"SERVERCOMMANDER_CONFIG_PATH": "C:/path/to/config/servercommander.toml"
}
}
}
}配置
ServerCommander 按以下顺序查找配置:
环境变量
SERVERCOMMANDER_CONFIG_PATH./servercommander.toml./config/servercommander.toml~/.config/servercommander/servercommander.toml
一个带注释的模板包含在 config/servercommander.example.toml 中。
[server]
name = "servercommander"
log_level = "INFO"
language = "en"
[deploy.profiles.staging]
target = "sftp://staging.example.com/var/www/app"
local_path = "./dist"
protocol = "sftp"
dry_run = true
record_history = true
[mail]
execution_enabled = false
smtp_host = "smtp.example.com"
smtp_port = 587
imap_host = "imap.example.com"
imap_port = 993密钥应通过环境变量引用,例如 $MAIL_PASSWORD 或 $SFTP_PASSWORD。
工具
sc_health_check:检查 HTTP 端点并返回状态码和延迟;格式错误的端点 URL 会作为失败检查返回,因此一个坏输入不会中止整个批次sc_logs_analyze:分析来自内联文本或本地文件的 Apache/Nginx 访问日志,包括状态类别、字节数、引用来源、错误路径、可疑请求标记,以及通过persist_report可选持久化 JSON 报告sc_deploy:创建部署计划,包含本机 SHA256 清单和配置文件诊断,但不会上传;在可选的record_history=true之前,就绪性检查会验证必填字段、可清单化的本地路径和支持的协议;嵌套符号链接会被报告但排除,因此清单不会静默遍历超出所选发布目录sc_deploy_status:显示已配置的部署配置文件、所选配置文件的诊断信息,以及来自本机 SQLite 历史数据库的最近预演历史sc_mail_list、sc_mail_read、sc_mail_send、sc_mail_search:安全的 alpha 状态响应,带有特定于操作的 IMAP/SMTP 就绪诊断,默认不打开邮件连接。当[mail].execution_enabled = true时,sc_mail_list通过重用规范的mail-connector模块执行实时的只读 IMAP 可达性探测(连接 + 列出文件夹)——它不会重新实现 IMAP 客户端;消息级别的读取/搜索仍属于mail-connector的领域,SMTP 发送保持不执行
搜索与消歧
ServerCommander 是用于本地优先的服务器管理工作流的 ellmos 操作 MCP 服务器。当搜索以下内容时使用此仓库:
MCP 服务器操作工具
MCP 部署预演服务器
MCP 访问日志分析器
MCP HTTP 健康检查工具
本地优先的服务器管理 MCP
Claude Code 服务器操作 MCP
安全的 SFTP 部署规划 MCP
它不是 GitHub MCP 服务器,不是通用的 shell 命令 MCP 服务器,不是托管提供商控制面板,也不是生产环境的 SFTP/IMAP 执行器。当前的 alpha 功能故意以诊断和预演优先。
ellmos-ai 生态系统
此 MCP 服务器是 ellmos-ai 生态系统的一部分——AI 基础设施、MCP 服务器和智能工具。
MCP 服务器家族
服务器 | 工具 | 聚焦 | npm |
46 | 文件系统、进程管理、交互式会话、云锁安全操作 | ||
22 | 代码分析、JSON 修复、导入、差异、正则表达式 | ||
12 | 文件修复、格式转换、批量操作 | ||
18 | 通过 AI 助手进行 n8n 工作流管理 | ||
20 | MCP 堆栈发现、配置文件管理、控制平面 | ||
45 | 本地优先的 LLM 记忆、知识、状态、路由、群体编排 |
| |
8 | 服务器操作:健康检查、日志分析、部署预演、邮件诊断 |
| |
3 | 无头 Blender 资源质量保证和 FBX 重新导入验证 |
| |
10 | 模型无关的计算机使用:捕获、安全门控操作、Windows UIA |
|
AI 基础设施与开发者工具
项目 | 描述 |
面向LLM代理的本地优先基于文本的操作系统 — 113+处理器,550+工具,SQLite内存 | |
模型无关的计算机使用核心,驱动Open Compute MCP | |
提供商无关的LLM编排,支持自动路由和预算跟踪 | |
轻量级代理内存、连接器和自动化基础设施 | |
自托管AI研究栈(Ollama + n8n + Rinnsal + KnowledgeDigest) | |
面向Claude Code的自主代理链框架 | |
极简数据库驱动的LLM操作系统原型(4个函数,1张表) | |
LLM操作系统测试框架(7个维度) | |
加密SQLite传输同步与增量只读副本引擎 | |
Git钩子驱动的工作流自动化和执行安全边界 | |
本地优先的系统组合、模块内省和集群验证 | |
反重力开发者伴侣与遥测桥接 |
桌面软件
我们的合作伙伴组织 open-bricks 打包了AI原生桌面应用——一套为AI时代打造的现代开源软件套件。类别包括文件管理(ProFiler)、文档工具(DokuZen、PDFtoPDFocr)、开发者工具(DevCenter、CodeBox)等。
开发
$env:PYTHONIOENCODING = "utf-8"
python -m pytest -q
npm run smoke
npm pack --dry-run下一步有用的步骤:添加显式配置的执行适配器,用于SFTP和IMAP/SMTP,同时保留干运行/仅状态默认值。
Available Tools
8 toolssc_deployB
Build a safe deployment plan. Alpha only: execution requires dry_run=true.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | Build the plan without executing deployment. | |
| profile | No | Deployment profile name. | |
| local_path | No | Local source path. | |
| remote_path | No | Remote target path. | |
| record_history | No | Persist this dry-run deployment plan in the local history database. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions alpha status and a dry_run constraint, but does not disclose side effects such as record_history writing to a local database, permissions, or return behavior. The phrase "execution requires dry_run=true" is also ambiguous because dry_run=true means no execution per the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no wasted words, and the core purpose is front-loaded before the alpha constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents all five parameters, and the description adds the important alpha/dry_run limitation. However, with no annotations and no output schema, the description omits enough behavioral context (side effects, return values, alternatives) that the definition is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter meanings are already documented in the input schema. The description only repeats the dry_run requirement and adds no syntax, format, or interaction details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Build a safe deployment plan." It distinguishes the tool from an actual deployment execution, and the alpha-only note further narrows scope. However, it does not explicitly differentiate itself from the sibling sc_deploy_status tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a constraint ("Alpha only: execution requires dry_run=true") but no guidance on when to use this tool versus alternatives such as sc_deploy_status. There is no when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_deploy_statusC
Show configured deployment profiles and alpha deployment-history status.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results. | |
| profile | No | Deployment profile name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. 'Show' implies read-only, but there is no mention of auth requirements, whether the profile filter is required or optional, what happens when no profile is given, or how the limit interacts with history versus profiles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is slightly compressed to the point of ambiguity ('alpha deployment-history status'), but it does not pad or bury the key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool with two optional, fully documented params and no output schema, the description is minimally adequate. It still leaves the meaning of the returned deployment status and the 'alpha' qualifier unexplained, which an agent would need to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit, profile) are already documented. The description hints at their roles ('configured deployment profiles', 'deployment-history') but adds no syntax, defaults, or filtering semantics beyond what the schema states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Show') and two concrete resources (configured deployment profiles, deployment-history status), so an agent understands it is a read/status query. It does not, however, differentiate itself from the sibling sc_deploy, and the qualifier 'alpha' is unexplained jargon that muddies what is actually being reported.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus sc_deploy or the other siblings, and no prerequisites or exclusions. Usage is only inferable from the fact that it is a status-style read, which is weak guidance for an agent choosing among eight tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_health_checkB
Check HTTP endpoints and return status codes plus latency.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | Request timeout in seconds. | |
| endpoints | No | HTTP endpoint URLs to check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the return shape (status codes plus latency) but says nothing about authentication, redirect handling, concurrency, or per-endpoint failure behavior. Adequate disclosure of outputs, silent on operating conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action and the two return values front-loaded. No filler, nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, stating that it returns status codes plus latency covers the main return-value gap. Deployment/auth context that would make it fully self-sufficient is absent, but nothing critical to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both 'timeout' (seconds, default 5) and 'endpoints' (URL list) are already documented in the schema. The description restates the purpose but adds no format, batching, or default details beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check), resource (HTTP endpoints), and outputs (status codes plus latency), so the agent immediately knows what the tool does. It doesn't distinguish itself from siblings, but the siblings (sc_deploy, sc_mail_*, sc_logs_analyze) occupy unrelated domains, so cross-confusion risk is low.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no alternatives named. The health-check intent is only implied by the tool name and the endpoint wording. Nothing tells the agent when this is preferable to reading logs via sc_logs_analyze.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_logs_analyzeB
Analyze Apache/Nginx access logs from inline text or a local file path.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Log format hint. | |
| log_path | No | Local access-log file path. | |
| log_text | No | Inline access-log text. | |
| top_paths | No | Number of top paths to include. | |
| report_name | No | Optional report filename stem. | |
| persist_report | No | Persist the analysis summary as a JSON report. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses only the input sources. It says nothing about whether the tool writes anything to disk (relevant given persist_report and report_name), what permissions or file access are required, or how results are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste; scope and input modes are stated immediately with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six optional parameters, no output schema, and no annotations, the description is only partially complete. It omits what the analysis yields and the side effect of persisting a report, but the schema covers the individual parameters so the gap is moderate rather than critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including format, log_path, log_text, top_paths, report_name, and persist_report. The description only restates the two input modes and adds no new parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Analyze) and resource (Apache/Nginx access logs), plus the two input modes (inline text or local file path). This clearly distinguishes it from unrelated siblings like sc_deploy and sc_mail_send, though it does not describe what the analysis produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and the two accepted input sources, but there is no explicit when-to-use/when-not guidance or mention of preconditions. Adequate but leaves the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_mail_listC
Alpha mail status endpoint for listing an IMAP folder.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results. | |
| folder | No | Mail folder name. | INBOX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it says almost nothing: 'listing' weakly implies read-only, but there is no mention of pagination, return format, ordering, or folder-must-exist behavior. An agent gets minimal signal about what happens on invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence is appropriately sized, but the front-loaded 'Alpha mail status endpoint' framing is noise that misdirects rather than informing. It is concise but not well-structured around the actual operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No annotations and no output schema mean the description must explain behavior and results, and it does neither. For a list tool with defaults (limit=10, INBOX), an agent lacks the context needed to call it confidently or interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (limit, folder) are documented in the schema, so the baseline is 3. The description adds no extra meaning such as default pagination behavior or folder-name semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'listing' and resource 'IMAP folder' are present, so the core action is inferable. However, the lead phrase 'Alpha mail status endpoint' muddles the purpose (status vs. listing) and the description never distinguishes this from siblings like sc_mail_search or sc_mail_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus sc_mail_search (filtered retrieval) or sc_mail_read (single message). No prerequisites, no exclusions, nothing beyond an implied 'use this to list a folder'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_mail_readC
Alpha mail status endpoint for reading a message.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | No | Message identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it does not say the operation is read-only, what happens if the message_id is unknown, whether the caller needs authorization, or what the response contains. 'Status endpoint' hints at a return shape but never explains it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no filler, which is structurally clean. The problem is under-specification rather than verbosity, and the most useful information (what it returns) is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with no annotations and no output schema, the description should at least characterize the returned data, but it only offers the ambiguous label 'status endpoint'. With one parameter required and zero required params declared, an agent cannot determine preconditions or expected output from this definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single message_id parameter, so the schema already documents it. The description adds no format, source, or lookup guidance beyond that, making the baseline 3 the correct score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb ('reading') and resource ('a message'), which loosely separates it from siblings like sc_mail_list, sc_mail_send, and sc_mail_search. However, the phrase 'Alpha mail status endpoint' is unexplained jargon that muddies whether this reads message content or fetches a delivery/status record, so the purpose is only partially pinned down.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus sc_mail_list or sc_mail_search, both of which plausibly retrieve messages. The agent is left to infer that a known message_id is a prerequisite for this tool, and no exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_mail_searchC
Alpha mail status endpoint for searching mail.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results. | |
| query | Yes | Search query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not say whether this is a read-only operation, how results are ordered or paginated, or any auth constraints. 'Status endpoint' is vague and arguably misleading for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence, so it is not bloated, but the phrase 'Alpha mail status endpoint' is filler that occupies the front-loaded position where useful routing information should be. Efficient in length, poor in information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool sitting among several mail siblings with no annotations and no output schema, the description is far too thin. It should at minimum explain how search differs from list, what the query matches, and what results look like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two simple parameters (query, limit), so the schema already documents everything needed. The description adds no syntax, format, or matching-semantics detail beyond the schema, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb (searching) and resource (mail), so the general purpose is recoverable. However, the phrase 'Alpha mail status endpoint' is muddled and adds no meaning, and nothing distinguishes it from the sibling sc_mail_list, which could plausibly be mistaken for the same capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus sc_mail_list or sc_mail_read, no mention of prerequisites, and no indication of what a search query should look like. The agent is left to guess the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sc_mail_sendC
Alpha mail status endpoint for sending mail; does not send yet.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Email recipient. | |
| body | Yes | Email body text. | |
| subject | Yes | Email subject. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose one important trait: the endpoint does not actually send yet, which prevents a false assumption of a side effect. However, it omits auth requirements, what the call returns (no output schema), and whether it errors or silently no-ops, leaving key behavior undefined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no padding, and the caveat is placed immediately after the purpose. The only cost is that the phrasing itself is ambiguous rather than the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-required-parameter call with no annotations and no output schema, the description should clarify what the invocation returns or does. It only asserts the tool 'does not send yet,' leaving return behavior, error cases, and the resulting state entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all three required parameters (to, subject, body) carry their own descriptions, so the schema does the heavy lifting. The description adds nothing about parameter formats or constraints, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is internally muddled: it calls itself a 'status endpoint' for 'sending mail' while also saying it 'does not send yet.' An agent cannot confidently tell whether this sends, checks status, or is a no-op, and the sibling set (sc_mail_list/read/search) offers no disambiguation. The verb+resource pair is stated but immediately undercut.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. The phrase 'does not send yet' hints the tool is a stub, but it never tells the agent when this tool should be preferred over other mail siblings or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.1.0-alpha.21- First observed
sc_deploy - First observed
sc_deploy_status - First observed
sc_health_check - First observed
sc_logs_analyze - First observed
sc_mail_list - First observed
sc_mail_read - First observed
sc_mail_search - First observed
sc_mail_send
TDQS
Scored across 8 tools
Each tool targets a fairly distinct area: deploy vs deploy_status differ by planning versus status inspection, and the four mail tools split cleanly along list/read/send/search. The main risk is sc_deploy vs sc_deploy_status, which could be confused at a glance, but descriptions clarify the boundary.
All tools share an sc_ prefix and snake_case, with mostly predictable noun_verb ordering (sc_mail_list, sc_health_check, sc_logs_analyze). sc_deploy is a bare verb outlier and the mail_* group reads as noun_action rather than verb_noun, but the scheme is readable and consistent overall.
Eight tools is well within a sensible range for a server-commander surface spanning deploy, mail, logs, and health. No obvious redundancy or padding, though half the set is devoted to mail operations that are still alpha stubs.
Mail coverage (list/read/send/search) and deploy (plan + status) are reasonably complete, but several operations are explicitly non-functional alpha status endpoints (send 'does not send yet') and there is no log tailing/filtering beyond one-shot analysis. The server-commander domain lacks service restart, config, or process-management operations, leaving notable gaps.
Maintenance
Related MCP Connectors
An MCP server that provides email capabilities, hosted on Alpic platform
An MCP server that provides email capabilities, hosted on Alpic platform
An MCP server that provides email capabilities, hosted on Alpic platform
Hosted MCP server for inbox health, reporting, and warmup operations.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for running infrastructure health checks with TIBET provenance. It enables users to define, execute, and audit process health checks with dependency chaining and drift tracking.6MIT
- AlicenseAqualityCmaintenanceAn MCP server for auditing automation health, finding failures, stale logs, and non-functional endpoints that report success while quietly failing.7MIT
- FlicenseBqualityBmaintenanceA production-ready MCP server offering text analysis tools, an in-memory key-value store, and system info resources with support for both stdio and HTTP transports.4-
- AlicenseNot gradedqualityBmaintenanceMCP server providing read-only operational tools (logs, metrics, traces, service health, config) for troubleshooting an environment, with one exception for toggling chaos scenarios.MIT