cloudbase-html-mcp
Server Quality Checklist
Latest release: v0.3.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: status check, publish/update, fetch single, list multiple, take offline, bring online. No functional overlap that would confuse an agent.
Naming Consistency4/5Five of six tools follow the verb_noun pattern (publish_html, get_html, list_html, offline_html, online_html). hosting_status is noun_noun, breaking the pattern slightly, but is still readable and understandable.
Tool Count5/5With 6 tools covering the core lifecycle (status, publish, read, list, offline, online), the count is well-scoped and neither sparse nor excessive for the domain.
Completeness5/5The set covers the full CRUD-like lifecycle for HTML pages including status checking, creation/update, single retrieval, listing, offline (delete), and online (restore). No obvious missing operations.
Average 4.5/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
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.
Conciseness4/5Is 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.
Completeness4/5Given 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.
Parameters4/5Does 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.
Purpose5/5Does 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.
Usage Guidelines3/5Does 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.
- Behavior4/5
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.
Conciseness4/5Is 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.
Completeness4/5Given 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.
Parameters3/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
- Behavior5/5
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.
Conciseness5/5Is 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.
Completeness5/5Given 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.
Parameters3/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
- Behavior5/5
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.
Conciseness5/5Is 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.
Completeness4/5Given 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.
Parameters4/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
- Behavior5/5
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.
Conciseness5/5Is 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.
Completeness4/5Given 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.
Parameters4/5Does 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.
Purpose5/5Does 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.
Usage Guidelines5/5Does 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.
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness5/5Given 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.
Parameters5/5Does 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.
Purpose5/5Does 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.
Usage Guidelines5/5Does 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zyfasos/cloudbase-html-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server