cloudbase-html-mcp
This server is a CloudBase static HTML hosting MCP that lets agents publish, inspect, update, list, take offline, and restore single HTML pages as publicly accessible URLs.
Check hosting status (
hosting_status): verify local config, API Key credentials, and static hosting availability without modifying anything.Publish or update a page (
publish_html): upload a local.html/.htmfile to the configured CloudBase environment, either as a new page or by overwriting an existing URL while preserving the same link.Query a page (
get_html): retrieve cloud content details—current SHA-256 hash, size, URL—by site ID, validated site URL, or registered local path, and verify the public content.List known pages (
list_html): page through locally registered sites with their latest status, optionally filtering by online/offline lifecycle.Take a page offline (
offline_html): permanently delete the current cloud HTML and old snapshots for a specified page, keeping the local registration so it can be restored later.Restore a page online (
online_html): re-publish a previously offline page from an explicitly specified local HTML file to its original site ID and URL.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cloudbase-html-mcpPublish the HTML file at ./report.html to CloudBase hosting."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CloudBase HTML MCP
简体中文 | English
把 Agent 生成的单 HTML,发布到自己的 CloudBase,持续更新同一个分享链接。
面向经常分享报告、演示、原型和小工具的个人与小团队。通过支持本地 STDIO MCP 的 Agent,直接完成发布、检索、更新、下线与恢复;既可自行配置环境,也可领取管理员准备好的配置文件接入。
本地 STDIO MCP · 六工具 · MIT · 当前预发布版本 0.5.0-beta.1。验证状态
为什么选择它
Agent 已经做好了页面,分享却还要传附件、解释如何打开、手动上传和管理链接。这个工具把这些后续操作接回对话,让使用者继续专注于内容。
专注单 HTML:围绕发布、同链接更新、查询、下线和恢复提供六项操作;不要求为每份产物建立工程或配置构建流程。
接入不绑定 Agent 品牌:CLI、IDE 或桌面客户端只要能启动本地 STDIO MCP,就可按各自格式配置;具体支持情况见 Agent 接入指南。
配置可以整份交付:管理员准备好环境和
credentials.env,使用者放好文件并接入,无需拆分填写云参数或登录 CloudBase 控制台。本地产物与自己的云环境:HTML 源文件留在本地,内容发布到自己的 CloudBase 静态托管;无需另行部署远程 MCP 服务或业务数据库。
这里的轻量指单文件工作流和维护范围集中;不表示安装体积、速度或 Token 消耗优于其他工具。若 Agent 的内置发布已满足需求,可以继续使用;需要自己的云环境、统一发布方式和后续管理时,再选择本工具。
CloudBase(腾讯云开发) 提供云端托管能力。本项目聚焦已有单页产物的分享与管理;与通用 CLI、其他发布工具的关系见 定位与相近工具。
Related MCP server: publish-artifacts-mcp
典型场景
你已有的产物与需求 | 对 Agent 说什么 | 得到什么 |
一份分析报告或 HTML 演示,准备分享 | “把这份 HTML 发布,给我链接和验证结果。” | 接收者通过链接查看,无需接收本地文件附件。 |
原型、计算器或说明页需要反复修改 | “把修改后的文件更新到原链接。” | 已分享的入口保持不变,再次发布后呈现新内容。 |
临时展示结束,之后还会再次使用 | “下线这个页面”;再次使用时指定本地文件恢复。 | 云端内容删除,本地登记保留,可恢复原站点。 |

publish_html 发布或更新在线页面;offline_html 删除云端内容并保留登记;online_html 从本次指定的本地文件恢复。
hosting_status 检查接入,get_html 查询单页,list_html 查看本地已知站点。域名映射不变时,更新和恢复保持 URL 不变;公网验证与存储成功分别报告,默认域名可能有预览限制,见 适用范围。
本版新增:发布时可设置站点名称、自动提取 HTML 标题;按名称、标题或来源文件名搜索。资源诊断列出静态引用及本地检查结果,仍只上传原 HTML,不自动内嵌资源。详见 资源诊断与站点检索。已发布到 npm 的 beta 标签;请使用下方固定版本配置。
快速接入
主线是 Node.js 22+ → 准备配置文件 → 添加本地 MCP → 验证。可 让 Agent 自主接入,也可按下方 JSON 手工配置。
准备 Node.js 22+。
已收到完整
credentials.env,直接按 文件放置说明 操作;使用自己的环境则先 获取 API Key 并填写模板。默认位置为运行 MCP 的用户主目录下.config/cloudbase-html-mcp/credentials.env。支持
mcpServers的客户端可按运行 MCP 的操作系统使用下面的配置;CLI 命令、YAML 或其他 JSON 结构见 Agent 接入指南。已有mcpServers时只合并cloudbase_html条目,保留其他连接器;这个 JSON 不需要填 Key。
macOS · JSON 文件
{
"mcpServers": {
"cloudbase_html": {
"command": "npx",
"args": ["-y", "cloudbase-html-mcp@0.5.0-beta.1", "serve"]
}
}
}Windows · JSON 文件
{
"mcpServers": {
"cloudbase_html": {
"command": "cmd.exe",
"args": ["/d", "/c", "npx", "-y", "cloudbase-html-mcp@0.5.0-beta.1", "serve"]
}
}
}不同 Agent 的配置文件外层结构和重载方式可能不同,不能只靠这份 JSON 判断兼容性。客户端适配示例与实测证据分开维护,实测记录见 CHANGELOG。配置文件和 HTML 都须在 MCP 执行环境中可访问,见 运行位置。
保存并重载 MCP,然后让 Agent 调用 hosting_status、list_html 验证。确认目标环境后,即可说:
将
/absolute/path/report.html发布到我配置的 CloudBase 环境,给我链接和验证结果。
详见 快速开始。源码或本地包 和可选终端向导适合开发与排错。
工具
工具 | 用途 |
| 检查凭据/托管,报告配置来源与登记设置;此检查不验证上传和删除权限。 |
| 发布指定本地 HTML,或更新在线页面。 |
| 按 ID、URL 或登记路径查询,包括云端内容与公网验证。 |
| 按关键词和状态筛选本地已知站点,返回名称、标题及最近确认状态。 |
| 删除当前云端 HTML 和旧快照,保留本地登记。 |
| 从本次明确指定的文件恢复已登记离线站点。 |
更新或下线前先查询并传入返回的哈希。详见 示例 和 工具契约;MCP 工具发现也会提供参数说明。
CloudBase 在这里做什么
本工具使用 CloudBase 的 静态网站托管 和环境 API Key 认证,上传 HTML 并核对路由与公网访问结果。MCP 由 Agent 客户端启动为本地进程,云端使用已配置的托管资源。工具采用 MIT 开源,CloudBase 套餐、存储和流量费用另按云服务规则计算。
适用范围
上传单份非空 UTF-8
.html/.htm文件,最多 20 MiB;关联的本地图片、CSS、JS 不会一起上传,发布前应确认页面可独立使用。发布产生公网访问链接。本工具不提供读者登录、密码保护或协同编辑;请发布适合通过公网链接分享的内容。
本地文件是内容来源。不备份 HTML、不新增项目快照;列表/下线/恢复依赖本地登记,不跨机器同步。多人可使用同一环境,但各自的目录和搜索不会自动汇总,也不提供成员级站点隔离。
下线删除云端内容,保留本地文件才能恢复;不清除浏览器/CDN 缓存。COS 原生版本控制启用、暂停或无法核实时,会阻止破坏性清理。
存储成功与公网验证分开。默认域名可能出现提示页或触发下载;
PUBLISHED_PREVIEW表示内容一致但有预览限制,正式分享体验见 状态说明。
文档与开发
快速开始:自行配置或领取文件、Agent 自主接入或手工配置、可选向导及排错。
Agent 接入指南:CLI、IDE、桌面客户端的接入格式与实际兼容性状态。
架构说明:组件、契约、数据模型与生命周期时序。
更新日志:各版本变更与验证证据 · 源码开发、升级与旧快照清理 · 项目边界与验证状态。
npm ci --ignore-scripts
npm run test:prepare
npm run check
npm testtest:prepare 联网准备独立 npm 测试缓存;npm test 离线,包含真实 STDIO 子进程及本地安装包测试,云端使用替身。依赖变更或缓存清理后重新准备。CI 与桌面客户端、真实云端验收分开记录。
许可证
MIT。依赖遵循各自许可证。本项目为独立工具,不是腾讯云官方产品。
Available Tools
6 toolsget_htmlARead-only
按 siteId、siteUrl 或已登记 localPath(三选一)查询页面;返回云端当前哈希、大小和链接,并实际验证公网内容。本地元数据不可用时,已知 ID 或已核实 URL 仍可查询云端,返回 registryDiagnostic;路径查询及写入不降级。不会使用登记中的旧哈希替代云端查询。
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | No | 已知页面 ID,格式 s- 加 32 位小写十六进制;与 siteUrl、localPath 三选一。查询当前配置环境中的页面,不接受 URL。 | |
| siteUrl | No | 经当前环境路由校验的 HTTPS 页面 URL;与 siteId、localPath 三选一;不接受查询参数或任意外部页面。 | |
| localPath | No | 曾发布并登记的本地文件绝对路径;与 siteId、siteUrl 三选一。通过当前环境/地域的本地登记找回 ID,再查询云端实际哈希;无登记时需提供已知 siteId。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, which indicate safe read and external access. The description adds valuable behavior beyond that: it performs actual verification of public content, does not fall back to stale registry hashes, and clarifies that path queries and writes do not degrade. These specifics give the agent confidence in how the tool behaves, though it doesn't cover all edge cases.
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 three sentences, front-loaded with the core query action and return values, then adds fallback and behavioral guarantees. It is concise without redundancy, though the phrase '路径查询及写入不降级' is somewhat opaque and could be clearer, slightly affecting structure.
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?
Since there is no output schema, the description must convey return information; it mentions returning cloud hash, size, link, and registryDiagnostic in fallback scenarios. It also covers the main usage modes. However, it does not specify the full structure of the response or potential error conditions, leaving some gaps for an agent expecting a complete contract.
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%, so each parameter already has a detailed description. The tool description adds the mutual exclusivity rule (three identifiers, choose one) and the fallback logic for localPath when no registration exists, which goes beyond the schema. It also clarifies that siteUrl must be a validated HTTPS URL and localPath must be a registered absolute path, reinforcing schema details with additional context.
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 clearly states the tool queries a page by one of three identifiers (siteId, siteUrl, or localPath) and returns the cloud's current hash, size, and link, plus verification of public content. The verb 'query' and resource 'page' are specific, and the return values are listed. While it doesn't name siblings explicitly, the purpose is distinct from list/publish/offline/online tools, making it easy for an agent to understand its core function.
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 provides context about fallback behavior when local metadata is unavailable, implying it can still be used with known IDs or verified URLs. However, it does not explicitly state when to use this tool versus sibling tools like list_html or hosting_status, nor does it provide exclusions. The usage context is implied rather than explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosting_statusARead-only
检查本地配置、API Key 换取凭据和静态托管在线状态。只读;成功不代表拥有上传权限。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this. It adds the valuable nuance that a successful status check does not guarantee upload permissions, providing context beyond what annotations convey. This is a useful behavioral caveat.
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 concise sentences with no fluff. It front-loads the purpose and adds the critical caveat about permissions in a compact manner.
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 zero-parameter read-only status tool, the description adequately covers what it checks and its safety profile. It does not specify the return format, but given the simplicity and the readOnlyHint annotation, this is a minor gap.
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?
The tool has zero parameters, so the description carries no parameter burden. Per the baseline rule for 0-parameter tools, a score of 4 is appropriate; there is nothing to clarify.
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 clearly states the tool checks local configuration, API key credential exchange, and static hosting online status. This is a specific verb-resource pairing that distinguishes it from sibling tools like publish_html, get_html, and offline_html which handle publishing, retrieval, and offline actions respectively.
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 implies usage for status checking by stating it is read-only and clarifying that success does not imply upload permission. This implicitly steers agents away from using it for upload operations, though it does not explicitly name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_htmlARead-only
分页列出当前环境本地已知站点及最近确认状态,不访问云端核验,不是全云端站点清单。localPaths 仅含当前绑定到该站点的可操作路径;sourcePaths 是历史产物来源,不能作为当前目标绑定使用。要求启用本地目录。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 每页数量,默认 50,上限 100。 | |
| offset | No | 从 0 开始的偏移,默认 0;目录变化时分页可能变化。 | |
| lifecycle | No | 可选生命周期过滤;省略时包含尚未核验的旧登记。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses meaningful behavior: no cloud access, local-only scope, the distinction between current operable localPaths and historical sourcePaths, and the local-directory prerequisite. This is substantive behavioral context with no contradiction.
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 compact, front-loads the core purpose, and every sentence adds a distinct and useful constraint or clarification. There is no redundant wording.
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-only paginated list tool with fully documented optional parameters, the description covers purpose, scope, prerequisites, exclusions, and important output field semantics. The absence of an output schema is adequately compensated by the field-level clarifications.
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%, so limit, offset, and lifecycle are already fully documented in the schema. The description adds no parameter-specific semantics beyond mentioning pagination, which the schema already covers.
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 uses a specific verb ('分页列出') and resource ('当前环境本地已知站点及最近确认状态'), and explicitly states the tool is not a full cloud-site list. This clearly differentiates it from siblings like hosting_status or publish_html.
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?
It provides clear context for local-only listing, a prerequisite ('要求启用本地目录'), and when-not guidance ('不访问云端核验,不是全云端站点清单'). However, it does not explicitly name the alternative tool to use when cloud verification or a full cloud list is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
offline_htmlADestructiveIdempotent
下线指定页面:永久删除当前云端 HTML 及该站点旧版快照,保留本地登记。必须用户明确要求;先 get_html 查询哈希。先核对 COS 桶版本控制,启用、暂停或无法确认时拒绝删除。下线不清除外部浏览器/CDN 缓存;清理不完整必须按返回建议恢复。
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | No | 页面 ID;与其他目标选择器只能提供一个。 | |
| siteUrl | No | 当前环境静态托管页面 HTTPS URL;与其他目标选择器只能提供一个,允许片段,不允许查询参数。 | |
| localPath | No | 已登记路径,与 siteId、siteUrl 三选一;下线不读取或删除本地 HTML。 | |
| expectedSha256 | Yes | get_html 返回的云端当前哈希;重试未完成下线时使用原操作的 expectedSha256,不删除已变化的内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false, and the description adds substantial context: permanent deletion scope, retention of local registration and non-deletion of local HTML, cache non-clearing, version-control refusal, and recovery from partial cleanup via returned suggestions. No contradiction with annotations; idempotentHint is supported by retry semantics.
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?
Four brief sentences front-load the outcome and then pack safety conditions, side effects, and recovery guidance without redundancy. Every sentence contributes operational value.
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 description is complete for a destructive operation: prerequisites, refusal criteria, side effects, and partial-cleanup handling are all present. It loses one point only because there is no output schema and the description references '返回建议' without specifying what a successful return contains, leaving a minor ambiguity for the agent.
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%, so baseline is 3; the description adds meaning beyond field names by tying expectedSha256 to the get_html result and retry behavior ('不删除已变化的内容') and explaining localPath does not read/delete local HTML. This compensates slightly beyond the schema.
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 opens with a specific action and outcome: '下线指定页面:永久删除当前云端 HTML 及该站点旧版快照,保留本地登记', clearly distinguishing this destructive offlining operation from siblings like get_html/list_html/online_html. It states the resource (current cloud HTML and old snapshots) and the retained part (local registration).
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?
It gives explicit when-not-to-use and workflow conditions: '必须用户明确要求' and '先 get_html 查询哈希', plus refusal conditions ('启用、暂停或无法确认时拒绝删除'). It also clarifies that external caches are not cleared, managing expectations. This is stronger than a generic 'use for offlining' hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
online_htmlADestructiveIdempotent
将已登记的离线页面重新公开上线,读取本次用户指定的 HTML 并恢复原 siteId 路径,不写快照。云端须不存在;已在线时使用 publish_html。此前上线超时但已写入相同内容可验证完成。要求启用本地目录。
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | No | 页面 ID;与其他目标选择器只能提供一个。 | |
| siteUrl | No | 当前环境静态托管页面 HTTPS URL;与其他目标选择器只能提供一个,允许片段,不允许查询参数。 | |
| localPath | Yes | 本次用户明确指定的 .html/.htm 绝对路径,UTF-8、非空、最多 5 MiB;不静默选用旧文件。siteId、siteUrl 二选一另行提供。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important side effects (no snapshot, no silent old file usage, restores original siteId path) and prerequisite (local directory enabled). However, despite the destructiveHint annotation, it does not explicitly describe the destructive nature of the operation beyond saying it makes the page public again.
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 dense but every sentence carries useful information: the action, the no-snapshot behavior, the online/offline condition, the timeout verification scenario, and the local directory prerequisite. There is no redundant or filler content.
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 description includes the main outcome, prerequisites, a specific failure-recovery scenario, and the alternative tool to use. It is sufficiently complete for an agent to decide when and how to call it, especially given the schema and annotations already cover parameter details.
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?
All three parameters are described with constraints, including mutual exclusivity between siteId and siteUrl, allowed URL fragments and no query parameters, and localPath size/encoding requirements. The description also reinforces that localPath must be user-specified and not silently chosen from old files.
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 clearly states the tool re-publishes a registered offline page, reads the user-specified HTML, and restores the original siteId path, with a note not to write snapshots. It also distinguishes itself from publish_html by specifying the condition when publish_html should be used instead.
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?
It provides explicit conditions: cloud must not exist; if already online, use publish_html; and it mentions the prerequisite of local directory being enabled. This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_htmlADestructive
将用户指定的 HTML 首次发布或覆盖在线页面,仅写当前对象,不创建快照。更新同一 URL 时先 get_html,复用 siteId 或经当前环境路由校验的 siteUrl,并传查询返回的 sha256。离线页面须显式 online_html 恢复;此操作会公开 HTML。域名映射不变时更新 URL 不变。
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | No | 更新目标的页面 ID,格式 s- 加 32 位小写十六进制;从首次发布结果或 get_html 获取。更新同一 URL 时复用原 ID,并传 expectedSha256;不能与 newPage=true 同传。此参数不是 URL。 | |
| newPage | No | 默认 false。仅在用户明确要求另建页面时设为 true,不能同时传 siteId 或 siteUrl;新页验证成功后替换该路径的本地登记,旧云端页面保留。持续更新同一 URL 时不要设为 true。 | |
| siteUrl | No | 更新目标 HTTPS URL,与 siteId 二选一;只接受 /sites/<合法ID>/ 或 index.html,允许片段,不接受查询参数。必须核实当前环境路由;与 expectedSha256 配套,不能与 newPage=true 同传。 | |
| localPath | Yes | 用户指定的本地 .html/.htm 文件绝对路径;非空有效 UTF-8,最多 5 MiB。只上传此文件,关联资源不上传。更新时仍须提供新内容所在的路径。 | |
| expectedSha256 | No | 更新前 get_html 返回的云端当前 sha256,64 位小写十六进制;与 siteId 或 siteUrl 配套必填。不是新文件的哈希,也不要使用本地登记中的旧哈希;冲突后重新查询再判断。首次新建时省略。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: it makes HTML public, does not create snapshots, and only writes the current object. It also details the expectedSha256 conflict-check requirement. Annotations already indicate destructiveHint=true, but the description elaborates on specific side effects and constraints, enhancing transparency.
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 a single dense paragraph that front-loads the core purpose, then covers the update workflow, offline page handling, and public exposure. It is concise without wasted words, though it could benefit from slight separation of concerns. Overall, it is well-structured and efficient.
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 complex tool with 5 parameters, no output schema, and rich annotations, the description covers the key workflow prerequisites (get_html before update), the expectedSha256 requirement, the public exposure side effect, and the distinction from online_html for offline pages. It does not describe error cases or output, but given the absence of an output schema, this is acceptable. The description is sufficiently complete for an agent to call it correctly.
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%, so the schema already documents each parameter thoroughly. The description adds a workflow hint about reusing siteId or siteUrl for updates and pairing expectedSha256, but these are also reflected in the schema's parameter descriptions. It does not introduce significant new meaning beyond the schema, so a baseline 3 is appropriate.
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 clearly states the tool's purpose: to publish user-specified HTML for the first time or overwrite an existing online page. It specifies the resource (HTML) and the action (publish/overwrite), and distinguishes itself from siblings by mentioning the update workflow involving get_html and the distinction from offline_html/online_html.
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 provides explicit guidance on when to use this tool: for first-time publishing or updating the same URL. It also instructs to call get_html first when updating, reuse siteId or validated siteUrl, and pass the returned sha256. It explicitly states that offline pages must be restored with online_html, providing a clear alternative. It could be more explicit about when NOT to use this tool, but the context is strong.
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.
6 tool updates
v0.3.0- First observed
get_html - First observed
hosting_status - First observed
list_html - First observed
offline_html - First observed
online_html - First observed
publish_html
TDQS
Scored across 6 tools
Most tools are clearly distinct: status, publish, get, list, offline, online each target a different lifecycle action. However, publish_html and online_html both make HTML publicly accessible, and only the descriptions clarify that one is for online/overwrite workflows while the other is for restoring offline pages.
Five tools follow a consistent verb_noun pattern: publish_html, get_html, list_html, offline_html, online_html. hosting_status breaks that pattern by using a noun phrase instead of an action-oriented name like check_status or get_status.
Six tools are well-scoped for the HTML hosting lifecycle: service status, publish/update, read, list, offline, and online. There is no obvious bloat or missing core operation at this level.
The set covers the core lifecycle well: create/overwrite, query, list, delete, restore, and status checking. The main gap is that list_html explicitly does not inventory the full cloud-side set of sites, so discovery of unknown remote sites is not possible without a known ID or URL.
Maintenance
Related MCP Connectors
Publish HTML, Markdown, and multi-file sites as shareable URLs instantly via MCP.
Publish and manage existing HTML presentations from an MCP-capable Agent.
Build, deploy, and host full-stack web apps from any MCP client. DB, auth, storage, cron included.
Deploy HTML from any agent: POST markup, get a live URL. Static hosting API with MCP tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables deployment of HTML content, folders, and full-stack projects to EdgeOne Pages to generate publicly accessible URLs. It utilizes EdgeOne Pages Functions and KV storage for high-performance edge delivery of web applications.215 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables publishing, updating, and sharing HTML artifacts with strict security isolation (origin separation, CSP, API keys) via MCP tools.1-
- FlicenseNot gradedqualityBmaintenanceEnables sharing self-contained HTML files via public or access-key-protected private links. Provides MCP tools to create shares, retrieve public share metadata, and describe the service.5-
- AlicenseAqualityBmaintenanceMCP server for publishing HTML or Markdown to a live hosted URL via htmldrop. Provides tools to publish, list, and delete hosted sites, with remote OAuth and API token authentication.342 npmMIT