Skip to main content
Glama

@demox-site/mcp-server

npm version License: MIT

Demox MCP Server - 通过 AI 部署静态网站到 Demox 平台

📖 目录


Related MCP server: cloud71 MCP connector

什么是 MCP?

MCP (Model Context Protocol) 是 AI 助手与工具之间的标准化协议,允许 AI 工具(如 Claude Code、Cursor)安全地调用外部服务。

功能特性

  • 🚀 一键部署: 部署静态网站到 Demox 平台

  • 📦 自动打包/转换: 支持目录、ZIP、PDF、Markdown、TXT、DOCX

  • ☁️ 云端部署: 上传 ZIP 后由 Demox 后端解压并发布

  • 🔐 自动登录: Token 过期时自动触发登录流程

  • 💻 AI 集成: 与 Claude Code、Cursor 等 MCP 客户端无缝集成

  • 🌐 官方域名子域名: 检查、设置、清除 <subdomain>.demox.site / <subdomain>.vibeme.cn

  • 📋 网站管理: 查看、删除、管理已部署的网站


快速开始

安装 MCP Server

在 AI 工具配置中使用 npx(推荐)

无需安装,直接在配置文件中使用:

{
  "mcpServers": {
    "demox": {
      "command": "npx",
      "args": ["-y", "@demox-site/mcp-server@latest"]
    }
  }
}

无需配置环境变量。配置后重启 AI 工具,首次使用时会自动打开浏览器登录。


配置步骤

1. 配置 AI 工具

根据您使用的 AI 工具,将以下配置导入到相应位置:

Claude Desktop / Claude Code

macOS:

~/Library/Application Support/Claude/claude_desktop_config.json

Windows:

%APPDATA%/Claude/claude_desktop_config.json

Linux:

~/.config/Claude/claude_desktop_config.json

配置示例:

{
  "mcpServers": {
    "demox": {
      "command": "npx",
      "args": ["-y", "@demox-site/mcp-server@latest"]
    }
  }
}

Cursor AI

macOS / Linux: ~/.cursor/mcp.json Windows: %APPDATA%/Cursor/mcp.json

Cline (VS Code 插件)

所有平台: ~/.cline/mcp.json

Continue (VS Code 插件)

所有平台: ~/.continue/mcp.json

2. 重启 AI 工具

配置完成后,重启您的 AI 工具。

3. 首次使用

首次调用 MCP 工具时,会自动打开浏览器登录。

登录成功后,凭证会保存在本地(~/.demox/token.json),Access Token 有效期 5 分钟,Refresh Token 有效期 30 天。

自动登录:Token 过期时会自动打开浏览器,无需手动运行登录命令。


可用工具

deploy_website

部署静态网站到 Demox 平台。

参数:

  • zipFile (string, 必需): 文件或目录路径

    • 支持本地 ZIP 文件:./dist.zip

    • 支持本地目录(自动打包):./dist

    • 支持 PDF:./document.pdf

    • 支持文档:./notes.md./notes.txt./report.docx

    • 支持 HTTPS URL(必须 .zip 结尾):https://example.com/file.zip

  • fileName (string, 可选): 网站名称,用于标识和展示

  • websiteId (string, 可选): 网站 ID,更新现有网站时提供

  • projectId (string, 可选): 项目 ID,将网站归入指定项目

  • templateId (string, 可选): 文档模板,支持 insightwarmdark

限制:

  • 支持目录、ZIP、PDF、Markdown、TXT、DOCX

  • 最大文件大小由 Demox 账户角色配额决定;传输使用分块上传,不受单请求 8MB 限制

  • 旧版 .doc 暂不支持,请另存为 .docx

  • 不支持 base64 编码内容

list_websites

获取用户在 Demox 平台上的所有网站列表。

返回信息:

  • 网站 ID

  • 网站名称

  • 访问 URL

  • 创建时间

list_projects

获取用户在 Demox 平台上的所有项目列表。

返回信息:

  • 项目 ID

  • 项目名称

  • 站点数量

get_website

获取指定网站的详细信息。

参数:

  • websiteId (string, 必需): 要查询的网站 ID

check_custom_domain

检查自定义子域名前缀是否可用。

参数:

  • subdomain (string, 必需): 子域名前缀,长度 5-63 位,例如 my-demo

  • websiteId (string, 可选): 当前网站 ID,用于判断“已绑定到自己”的前缀

  • domain (string, 可选): 官方域名后缀,demox.sitevibeme.cn,默认 demox.site

set_custom_domain

为指定网站设置自定义子域名前缀,设置后列表和详情会优先显示自定义域名。

参数:

  • websiteId (string, 必需): 要设置的网站 ID

  • subdomain (string, 必需): 子域名前缀,长度 5-63 位,例如 my-demo

  • domain (string, 可选): 官方域名后缀,demox.sitevibeme.cn,默认 demox.site

clear_custom_domain

清除指定网站的自定义子域名前缀,网站仍可通过默认域名访问。

参数:

  • websiteId (string, 必需): 要清除的网站 ID

delete_website

删除指定的网站及其所有文件。

参数:

  • websiteId (string, 必需): 要删除的网站 ID

⚠️ 注意: 此操作不可撤销


使用示例

在 Claude Desktop 中

用户: 部署 dist 目录到 Demox

Claude: 好的,我来帮您部署 dist 目录。

[检测到目录,自动打包成 ZIP...]
[正在上传文件到 Demox 后端...]
[文件上传成功]

✅ 网站部署成功!
网站名称: dist
网站 ID: ABC12345
访问地址: https://abc12345.demox.site

在 Cursor 中

# 在 Cursor 的 Chat 中输入

部署当前项目到 Demox

# Cursor 会自动:
# 1. 检测到项目目录(如 ./dist)
# 2. 自动打包成 ZIP
# 3. 上传到云存储
# 4. 调用云函数部署
# 5. 返回访问链接

示例对话

场景 1:部署新网站

用户: 把我的 react 项目的 build 目录部署到 Demox

Claude: 我来帮您部署 React 项目的 build 目录。

[正在打包目录 ./build...]
[文件大小: 2.3MB]

✅ 网站部署成功!
网站名称: build
网站 ID: XYZ67890
访问地址: https://xyz67890.demox.site

您现在可以访问上述地址查看您的网站了。

场景 2:更新现有网站

用户: 更新网站 ABC12345

Claude: 我来帮您更新网站 ABC12345。

[文件大小: 2.5MB]

✅ 网站部署成功!
网站名称: my-project
网站 ID: ABC12345
访问地址: https://abc12345.demox.site

场景 3:查看所有网站

用户: 显示我部署的所有网站

Claude: 我来帮您查看所有已部署的网站。

📋 您的网站列表(共 3 个)

1. **my-portfolio**
   - ID: `ABC12345`
   - URL: https://abc12345.demox.site
   - 创建时间: 2026-01-20 14:30:00

2. **blog**
   - ID: `XYZ67890`
   - URL: https://xyz67890.demox.site
   - 创建时间: 2026-01-21 09:15:00

3. **docs**
   - ID: `DEF24680`
   - URL: https://def24680.demox.site
   - 创建时间: 2026-01-22 16:45:00

常见问题

Token 过期怎么办?

自动登录:系统会在 Token 过期时自动打开浏览器登录,无需手动操作。

登录成功后会自动重试失败的工具调用。

支持哪些文件格式?

支持目录、ZIP、PDF 和常见文档

  • ✅ 本地 ZIP 文件:./dist.zip

  • ✅ 本地目录:./dist(自动打包成 ZIP)

  • ✅ PDF:./document.pdf(自动生成预览页)

  • ✅ 文档:./notes.md./notes.txt./report.docx(自动套模板生成网页)

  • ✅ HTTPS URL:https://example.com/file.zip(必须 .zip 结尾)

  • ❌ 其他压缩格式(tar.gz, rar 等)

  • ❌ 旧版 .doc

  • ❌ Base64 编码内容

最大文件大小限制?

由 Demox 账户角色配额决定。MCP 使用固定大小分块上传,不再受 SCF 单请求 8MB 限制。

如何撤销授权?

删除本地 Token 文件:

rm ~/.demox/token.json

下次使用时会自动触发登录。

支持哪些 AI 工具?

所有支持 MCP 协议的 AI 工具:

  • Claude Desktop / Claude Code

  • Cursor AI

  • Cline (VS Code 插件)

  • Continue (VS Code 插件)

  • 其他 MCP 客户端

多台设备可以使用吗?

可以。每台设备需要单独登录,互不影响。

如何查看调试日志?

MCP Server 的日志会输出到 stderr,可以在 AI 工具的日志中查看。


技术细节

文件上传流程

输入(文件/目录/URL)
    ↓
转换为本地 ZIP 文件(PDF/MD/TXT/DOCX 自动转换为网页)
    ↓
按固定大小分块上传并校验 SHA-256
    ↓
上传到 Demox 后端
    ↓
云函数解压并部署

安全性

  • OAuth 2.0 认证: 使用标准的 OAuth 2.0 协议

  • Token 加密存储: 本地存储的 Token 包含 Refresh Token

  • 自动刷新: Access Token 过期后自动刷新

  • 作用域限制: Token 仅包含必要的权限范围


技术支持


开发

本地开发

# 克隆项目
git clone https://github.com/demox-site/mcp-server.git
cd mcp-server

# 安装依赖
npm install

# 开发模式
npm run dev

# 构建
npm run build

# 测试 MCP Server
node dist/index.js

贡献

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本仓库

  2. 创建特性分支 (git checkout -b feature/AmazingFeature)

  3. 提交更改 (git commit -m 'Add some AmazingFeature')

  4. 推送到分支 (git push origin feature/AmazingFeature)

  5. 开启 Pull Request


许可证

MIT License


Made with ❤️ by Demox Team

Available Tools

7 tools
check_custom_domainB

检查自定义子域名前缀是否可用,域名格式为 .demox.site

ParametersJSON Schema
NameRequiredDescriptionDefault
subdomainYes要检查的子域名前缀,例如 my-demo
websiteIdNo当前网站 ID(可选)。传入后,如果该前缀已绑定到自己,也会视为可用

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry full behavioral disclosure. It only states the check action and domain format, omitting side effects, auth needs, or that it's read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is efficient and front-loaded with purpose. No waste, but could add slight usage guidance without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal for a simple check tool, but missing output format description (e.g., returns boolean). Sibling tools exist, but no guidance on how this fits into workflow. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value: explains domain format for subdomain parameter and clarifies that websiteId, if matching a bound prefix, makes it available. This goes beyond raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks availability of a custom subdomain prefix, specifying the domain format. It distinguishes from siblings like set_custom_domain and clear_custom_domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool or alternatives. The description implies a checking purpose but lacks context like 'use before set_custom_domain' or scenarios where it's not needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_custom_domainA

清除指定网站的自定义子域名前缀,网站仍可通过默认域名访问。

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteIdYes要清除自定义域名的网站 ID

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description discloses a key behavioral trait: the website remains accessible via default domain after clearing. This adds value beyond the input schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, concise sentence with no unnecessary words, front-loading the main action and consequence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers the operation and its impact on website accessibility, making it fully sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the parameter description essentially repeats the tool's description, adding no new meaning. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (clear custom subdomain prefix) and the resource (specified website), and notes the site remains accessible via default domain, distinguishing it from siblings like set_custom_domain or check_custom_domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives is provided; the context is implicit from sibling names but not stated in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_websiteA

删除指定的网站及其所有文件。此操作不可撤销,请谨慎使用。

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteIdYes要删除的网站 ID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing critical behavioral traits: it's destructive ('删除' - delete), irreversible ('不可撤销' - irreversible), and affects all associated files ('及其所有文件' - and all its files). It also includes a safety warning. The only gap is lack of information about permissions needed or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences: the first states the action and scope, the second provides the critical warning. Every word earns its place, and the warning is appropriately positioned for emphasis without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description does well by covering the irreversible nature and scope of deletion. However, it doesn't mention what happens on success (e.g., confirmation message) or failure (e.g., error if website doesn't exist), which would be helpful given the high-stakes nature of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the single parameter 'websiteId' documented as '要删除的网站 ID' (website ID to delete). The description doesn't add any additional parameter semantics beyond what the schema already provides, such as format examples or where to find the ID. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('删除指定的网站及其所有文件' - delete specified website and all its files) and the resource ('网站' - website), making the purpose specific and unambiguous. It distinguishes from siblings like get_website (read) and deploy_website (create/update) by focusing on permanent removal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool ('删除指定的网站' - delete specified website) and includes an important caution ('此操作不可撤销,请谨慎使用' - this operation is irreversible, use with caution). However, it doesn't explicitly mention when NOT to use it or name specific alternatives like using get_website first to verify.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_websiteA

部署静态网站到 Demox 平台。支持目录、ZIP、PDF 和文档;PDF/文档会先转换为静态站点再部署。

ParametersJSON Schema
NameRequiredDescriptionDefault
zipFileYes文件或目录路径。支持:1) 本地目录(自动打包)2) 本地 ZIP 3) PDF 4) .md/.markdown/.txt/.docx 文档 5) HTTPS ZIP URL。**不支持 base64 内容**。
websiteIdNo网站 ID(可选)。如果不提供,将创建新网站;如果提供,将更新现有网站
fileNameNo网站名称,用于标识和展示。如果不提供,会自动使用目录或文件名
templateIdNo文档转网页时使用的模板,可选 insight、warm、dark。仅对文档文件生效,默认 insight

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must cover behavioral traits. It explains PDF/document conversion and create vs. update behavior based on websiteId. However, it omits whether deployment is synchronous, permission requirements, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The first sentence states the core action and supported types; the second adds conversion details. Every word is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers input types, optional parameters, and conversion logic. Missing details about output (e.g., returns website URL or ID), sync/async nature, and potential errors. For a deploy tool with no output schema, these gaps are notable but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value beyond field names: it clarifies that zipFile accepts multiple formats, explains auto-packaging for directories, and details templateId's scope (only for documents) and fileName fallback.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'deploy static website to Demox platform' and lists supported input types (directory, ZIP, PDF, documents) with conversion behavior. This distinguishes it from sibling tools focused on domain management and website CRUD operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (for deployment), but does not explicitly contrast with siblings like check_custom_domain or list_websites. No guidance on when NOT to use it or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_websiteC

获取指定网站的详细信息,包括文件列表、部署历史等

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteIdYes要查询的网站 ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states it '获取详细信息' (gets detailed information), implying a read-only operation, but doesn't explicitly confirm this or disclose other traits like authentication needs, rate limits, error conditions, or response format. For a tool with zero annotation coverage, this is a significant gap in 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded in a single sentence: '获取指定网站的详细信息,包括文件列表、部署历史等'. It efficiently states the purpose and key details returned. However, it could be slightly more structured by explicitly separating purpose from returned data for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a read operation with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what '详细信息' (detailed information) includes beyond a partial list (file list, deployment history), nor does it cover behavioral aspects like response format or error handling. For a tool with no structured support, the description should do more to compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal value beyond the input schema. The schema has 100% coverage with one parameter ('websiteId'), fully described as '要查询的网站 ID' (the website ID to query). The description implies the parameter is used to specify a website but doesn't provide additional context like format examples or constraints. With high schema coverage, the baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '获取指定网站的详细信息,包括文件列表、部署历史等' (Get detailed information about a specified website, including file list, deployment history, etc.). It specifies the verb ('获取' - get) and resource ('网站' - website), and lists specific details returned. However, it doesn't explicitly differentiate from sibling tools like 'list_websites' (which likely lists multiple websites vs. getting details for one).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_websites' (for listing websites) or 'delete_website'/'deploy_website' (for other operations), nor does it specify prerequisites or contexts for usage. The agent must infer usage from the tool name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_websitesB

获取用户在 Demox 平台上的所有网站列表,包括网站 ID、名称、URL 和创建时间

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a read operation ('获取' - get/list), implying it's non-destructive, but doesn't clarify permissions, rate limits, pagination, or error handling. For a list tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond its basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that clearly states what the tool does and what information it returns. It's front-loaded with the core purpose and avoids redundancy. However, it could be slightly more structured by explicitly separating purpose from output details, but it's still highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It covers the basic purpose and output fields, but lacks behavioral context (e.g., permissions, pagination) and usage guidelines relative to siblings. For a list tool, this is minimally viable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. Baseline is 4 for 0 parameters, as the description focuses on the tool's purpose without unnecessary parameter clutter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '获取用户在 Demox 平台上的所有网站列表' (get all websites list for the user on the Demox platform). It specifies the verb ('获取' - get/list) and resource ('网站列表' - websites list), and includes what information is returned (ID, name, URL, creation time). However, it doesn't explicitly differentiate from sibling tools like 'get_website' (which likely gets a single website), so it misses the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_website' (for single website details) or 'delete_website'/'deploy_website' (for other operations), nor does it specify any prerequisites, contexts, or exclusions for usage. The agent must infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_custom_domainB

为指定网站设置自定义子域名前缀。设置后优先展示自定义域名。

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteIdYes要设置自定义域名的网站 ID
subdomainYes子域名前缀,例如 my-demo,对应 my-demo.demox.site

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the effect of priority display but does not disclose key behaviors such as whether it overrides existing settings, triggers validation, requires permissions, or is idempotent. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no wasted words. It is front-loaded with the action and efficiently communicates the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and sibling tools that check and clear, the description lacks important context. It does not cover idempotency, side effects, or prerequisites, leaving the agent with insufficient information to use the tool correctly in various scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 minimal value beyond the schema; the phrase '设置自定义子域名前缀' loosely aligns with the subdomain parameter but does not provide additional detail. The example in the schema description is more helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets a custom subdomain prefix for a specified website and mentions the effect of priority display. It is specific about the verb and resource. However, it does not explicitly differentiate from siblings like check_custom_domain or clear_custom_domain, though the distinction is implicit from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for setting a custom subdomain, but lacks explicit guidance on when to use this tool versus checking or clearing. No alternative tools are mentioned, and no context about prerequisites or typical workflows is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: deployment, listing, details, deletion, and domain check/set/clear. No two tools overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., deploy_website, set_custom_domain), making them predictable and easy to understand.

Tool Count5/5

7 tools is well-scoped for a website management server, covering core operations without unnecessary complexity.

Completeness4/5

The tool set covers essential CRUD (deploy, list, get, delete) and domain management, but lacks an explicit update operation for website metadata, though redeploy can serve as a workaround.

Maintenance

ActivityNo data
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to deploy generated files (HTML, PDF, images, etc.) directly to cloud71 hosting, returning a public URL, and manage cloud71 sites via natural language.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables LLMs and clients to upload, deploy, and manage static websites (HTML/CSS/JS) on a server with Nginx, supporting API key authentication and customizable site TTL with automatic cleanup.

Latest Blog Posts

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/demox-site/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server