Skip to main content
Glama

腾讯文档扩展 MCP

跨平台测试 License: MIT

让 Codex、Claude、WorkBuddy、Cursor 等支持本地 stdio MCP 的 AI 客户端,使用腾讯官方 MCP 尚未提供的功能。本项目不再代理或重复腾讯官方 MCP。

  • 收集表题目读取、编辑、发布和公开回读验证。

  • 收藏、共享、回收站、恢复、快捷方式、置顶等官方 MCP 未打包的文件管理能力。

  • 21 项官方 MCP 未提供或只提供较窄版本的正式 Open API 能力,另有 4 个本机授权管理工具。

  • 当前共 38 个工具;不包含官方 MCP 已有的 224 个工具。

这是社区项目,不是腾讯官方产品。项目同时包含正式 Open API 和网页内部接口;后者可能随腾讯改版失效。已安装腾讯官方 MCP 的用户可以与本项目并行使用。

支持的 AI 客户端

项目使用标准本地 stdio MCP,不绑定某一个 AI 产品。已经提供配置格式的客户端包括:

  • Codex 桌面版和 Codex CLI

  • Claude Desktop 和 Claude Code

  • WorkBuddy

  • Cursor、VS Code 等能够配置本地 stdio MCP 的客户端

AI 产品本身如果不支持 MCP,无法直接加载本项目。Claude.ai、ChatGPT 网页版等只接受远程 Connector 的场景,需要另行部署 Streamable HTTP 服务;当前仓库默认是更适合个人账号和本机凭据的 stdio 版本。

Related MCP server: Google Forms MCP

验证情况

环境或能力

状态

macOS + Chrome 登录、写入、发布

已实际验证

不带 Cookie 读取公开表单

已实际验证

Windows 安装、导入、MCP 工具协议

由 GitHub Actions 验证

Windows 自动打开登录、加密保存登录态、自动关窗

已在 Windows 11 真机验证

Windows 通过登录态新建、写入、发布、公开回读

已在 Windows 11 真机验证

正式 Open API 25 个相关工具的协议、参数、端点和错误处理

已通过模拟官方响应测试

本机授权窗口打开、字段隐藏与安全限制

已实际浏览器检查并通过自动测试

标准 stdio 子进程启动、工具发现和调用

已测试;用于 Codex、Claude Code 等客户端

正式 Open API 调用真实腾讯账号

等待开放平台应用 OAuth2 凭据,尚未验证

收藏/共享/回收站列表

已实际验证

收藏、回收站恢复、快捷方式、置顶

已用临时文件验证

永久删除、清空回收站

已实现且要求精确确认词;未做真实不可恢复测试

访客免登录提交

不保证;腾讯文档权限策略可能要求登录

安装

需要 Python 3.10 或更高版本,并先在浏览器中登录 腾讯文档。

macOS / Linux

git clone https://github.com/kakadamowanglaile/tencent-docs-form-mcp.git
cd tencent-docs-form-mcp
chmod +x install.sh run-mcp.sh
./install.sh

Windows

在 PowerShell 中执行:

git clone https://github.com/kakadamowanglaile/tencent-docs-form-mcp.git
cd tencent-docs-form-mcp
powershell -ExecutionPolicy Bypass -File .\install-windows.ps1

安装完成后运行一次登录助手:

.\.venv\Scripts\python.exe .\browser_login.py

它会自动寻找 Chrome、Edge、Brave、Vivaldi 或 Chromium,打开腾讯文档登录页。你登录成功后窗口会立即自动关闭,并由 Windows 使用当前系统账号加密保存登录状态。没有 Chrome 时会自动使用 Edge,不需要你预先新建表单。

正式 Open API 一键授权

正式 Open API OAuth2 与腾讯官方 MCP 的授权无关。每位用户使用自己在腾讯文档开放平台创建并审核的应用,不共享仓库作者的账号或密钥。

首次使用:

  1. 在开放平台应用中开通需要的权限并通过审核。

    • 读取文档分享权限:scope.drive.file.permission.readonly 或 scope.drive.file.permission

    • 读取文件夹操作权限:还可使用 scope.drive.file.metadata

  2. 把下列 HTTPS 回调地址加入应用白名单:

https://kakadamowanglaile.github.io/tencent-docs-form-mcp/
  1. 双击项目根目录的 授权腾讯文档.command(macOS)或 授权腾讯文档.bat(Windows)。也可以在项目目录运行:

macOS / Linux:

.venv/bin/python openapi_setup.py

Windows PowerShell:

.\.venv\Scripts\python.exe .\openapi_setup.py

程序会打开仅限本机访问的设置窗口。第一次粘贴自己的 Client ID 和 Client Secret,点击“保存并授权”;以后只显示一个“授权腾讯文档”按钮。Client Secret 保存到当前操作系统的密钥库。用户确认后,一次性授权码经静态 HTTPS 页面返回本机 127.0.0.1:49680-49689 的专用端口,本机换取并保存 Token。中转页不接收 Client Secret、Access Token 或 Refresh Token。

已经把 MCP 加到 AI 客户端时,也可以直接让 AI 调用 tencent_docs_openapi_setup。它会在用户电脑上打开同一个本机设置窗口,配置值不会作为 MCP 工具参数传给 AI。

正常的 Token 过期会自动使用 Refresh Token 更新;尚未授权或需要重新授权时,AI 可直接调用 tencent_docs_openapi_login。高级用户仍可使用 examples/openapi.env.example 的环境变量方式。

检查登录态

把链接换成你自己创建的腾讯文档原生收集表。

macOS:

.venv/bin/python auth_check.py \
  --form-url "https://docs.qq.com/form/page/你的表单TOKEN" \
  --browser chrome

Windows 登录后不必提供已有表单;可以让 MCP 直接新建。若要检查某个已有表单,可运行:

$env:TENCENT_DOCS_USE_SAVED_LOGIN = "1"
.\.venv\Scripts\python.exe .\auth_check.py `
  --form-url "https://docs.qq.com/form/page/你的表单TOKEN" `
  --saved-login

该命令只显示登录和编辑权限状态,不输出 Cookie。

添加到任意 MCP 客户端

核心配置只有两个值:Python 解释器路径和 gateway.py 的绝对路径。JSON 客户端可以使用下面的配置;WorkBuddy、Claude Desktop 以及采用 mcpServers 格式的客户端均可参考。

macOS 示例:

{
  "mcpServers": {
    "tencent-docs-extensions": {
      "command": "/你的路径/tencent-docs-form-mcp/.venv/bin/python",
      "args": [
        "/你的路径/tencent-docs-form-mcp/gateway.py"
      ],
      "env": {
        "TENCENT_DOCS_USE_BROWSER_COOKIES": "1",
        "TENCENT_DOCS_BROWSER": "chrome"
      }
    }
  }
}

Windows 示例:

{
  "mcpServers": {
    "tencent-docs-extensions": {
      "command": "C:\\你的路径\\tencent-docs-form-mcp\\.venv\\Scripts\\python.exe",
      "args": [
        "C:\\你的路径\\tencent-docs-form-mcp\\gateway.py"
      ],
      "env": {
        "TENCENT_DOCS_USE_SAVED_LOGIN": "1"
      }
    }
  }
}

可复制的 JSON 和 TOML 模板位于 examples 目录。不要整份覆盖客户端现有配置,只增加 tencent-docs-extensions 这一项。推荐用 openapi_setup.py 把凭据保存到系统密钥库;环境变量模板仅供高级用户和 CI 使用。

Codex

把对应示例中的内容加入 ~/.codex/config.toml:

Claude Code

Claude Code 可以把同样的 stdio 配置加入用户级 MCP:

claude mcp add-json --scope user tencent-docs-extensions '{"type":"stdio","command":"/ABSOLUTE/PATH/tencent-docs-form-mcp/.venv/bin/python","args":["/ABSOLUTE/PATH/tencent-docs-form-mcp/gateway.py"],"env":{"TENCENT_DOCS_USE_BROWSER_COOKIES":"1","TENCENT_DOCS_BROWSER":"chrome"}}'

Windows PowerShell 可以直接使用 mcp-config.windows.example.json 中的服务器对象,通过 claude mcp add-json 添加。Claude Desktop 可在本地 MCP 或扩展开发配置中使用同一对象。

WorkBuddy 和其他 JSON 客户端

使用 mcp-config.macos.example.json 或 mcp-config.windows.example.json。保存并重启客户端后,可以这样说:

gateway.py 仅为兼容旧配置的启动入口,不会连接或代理腾讯官方 MCP。

检查这个腾讯文档收集表,然后把题目改成姓名、手机号、报名项目三个问题,确认后发布。表单链接是……

WorkBuddy 市场连接器

仓库的 workbuddy-connector 是 WorkBuddy 5.0.0 及以上版本可上传的 CLI + Skill 连接器源目录。WorkBuddy 会管理 Python 运行时,用户不需要手工安装 Python。

生成审核 ZIP:

.venv/bin/python scripts/build_workbuddy_connector.py

默认产物是 dist/tencent-docs-extensions-workbuddy-0.8.0.zip。ZIP 内的 connector-meta.json、cli.json、icon.svg 和 skills/ 直接位于根目录,可在 WorkBuddy 开放平台的“发布管理 → 连接器”中上传。

该连接器使用本机浏览器中已登录的腾讯文档会话。Cookie 不写入 ZIP、GitHub 或 AI 对话。点击断开后,连接器会停止使用该登录态,但不会代替用户退出浏览器里的腾讯文档账号。

MCP 工具

本项目只暴露腾讯官方 MCP 未提供的扩展工具。普通文档、表格、幻灯片、OCR、最近文件、文件夹列表和空白收集表创建等能力,请直接安装腾讯官方 MCP。

本项目的扩展工具:

  • tencent_docs_login:Windows 上自动弹出可用浏览器,登录成功后立即关窗并加密保存登录状态。

  • tencent_docs_inspect_form:读取题目、发布状态和当前账号权限,不修改内容。

  • tencent_docs_replace_form_questions:完整替换题目但不发布。

  • tencent_docs_publish_form:发布现有草稿,并检查公开版本。

  • tencent_docs_build_and_publish_form:替换题目、设置匿名选项、发布并检查公开版本。

  • tencent_docs_create_and_publish_form:新建收集表、写入题目、发布并检查公开版本,不需要预先提供表单链接。

  • tencent_docs_list_files:读取收藏、与我共享或回收站列表。

  • tencent_docs_set_starred:收藏或取消收藏。

  • tencent_docs_restore_file:从回收站恢复文件。

  • tencent_docs_add_shortcut:在指定文件夹创建文件快捷方式。

  • tencent_docs_set_pinned:置顶或取消置顶。

  • tencent_docs_permanently_delete_trash_item:永久删除单个回收站项目,必须精确提供确认词。

  • tencent_docs_clear_trash:永久清空回收站,必须精确提供确认词。

正式 Open API 工具:

  • tencent_docs_openapi_status:检查配置,也可实际校验 Access Token;不返回任何凭据值。

  • tencent_docs_openapi_setup:打开本机设置窗口;首次填写应用信息,以后只需点击授权。

  • tencent_docs_openapi_login:打开腾讯官方授权页,自动接收回调、换 Token 并保存到系统密钥库。

  • tencent_docs_openapi_logout:删除本机用户 Token,保留用户自己的应用配置。

  • tencent_docs_openapi_set_starred、tencent_docs_openapi_set_pinned:收藏和置顶。

  • tencent_docs_openapi_set_watermark:设置文字水印和访客水印。

  • tencent_docs_openapi_create_shortcut、tencent_docs_openapi_recover_file:快捷方式和回收站恢复。

  • tencent_docs_openapi_get_user_access:读取当前用户的详细访问能力。

  • tencent_docs_openapi_get_file_permission:读取完整分享策略、复制和批注开关。

  • tencent_docs_openapi_get_folder_permission:读取用户对文件夹的查看、编辑、分享和添加成员能力。

  • tencent_docs_openapi_transfer_ownership:转让所有权,要求精确确认词。

  • tencent_docs_openapi_set_file_permission:设置分享策略、复制下载打印和只读批注开关。

  • tencent_docs_openapi_apply_file_permission:申请查看或编辑权限。

  • tencent_docs_openapi_add_collaborators、tencent_docs_openapi_remove_collaborator、tencent_docs_openapi_list_collaborators:协作成员管理。

  • tencent_docs_openapi_filter_files:按目录、类型、所有者和排序条件读取文件。

  • tencent_docs_openapi_convert_file_id:在 fileID 与 encodedID 之间转换。

  • tencent_docs_openapi_get_usage、tencent_docs_openapi_get_unread_count:应用使用量与未读消息。

  • tencent_docs_openapi_set_form_release:发布、暂停或设置收集截止时间。

  • tencent_docs_openapi_generate_form_result:生成收集结果表格。

  • tencent_docs_openapi_batch_insert_sheet_images:一次插入最多 500 张表格图片。

调用示例见 docs/OpenAPI使用示例.md,工具来源和实测边界见 docs/能力矩阵.md。

写入工具会完整替换现有题目。使用前建议先复制一份表单进行测试。

登录方式

Windows 推荐使用 browser_login.py。浏览器只负责让你本人登录;登录完成后会自动关闭,后续创建、编辑、发布全部直接调用接口,不会操控浏览器。登录状态保存在 %LOCALAPPDATA%\TencentDocsFormMCP\auth.bin,内容受 Windows 当前账号加密保护。

Windows MCP 配置:

TENCENT_DOCS_USE_SAVED_LOGIN=1

其他系统仍可显式选择浏览器 Cookie:

TENCENT_DOCS_USE_BROWSER_COOKIES=1
TENCENT_DOCS_BROWSER=chrome

TENCENT_DOCS_BROWSER 支持 brave、chrome、chromium、edge、firefox、vivaldi。这条旧方式读取浏览器自身的 Cookie;Windows 新登录助手不会受新版 Chrome/Edge Cookie 加密方式影响。

也支持通过进程环境变量 TENCENT_DOCS_COOKIE 提供 Cookie header,但不要把 Cookie 写进仓库、配置示例或聊天消息。

作为 Skill 使用

SKILL.md 提供了 Agent 的调用规则。MCP 负责真正连接腾讯文档;Skill 只告诉 AI 应该何时调用哪个工具、如何检查结果。因此只复制 Skill、没有启动 MCP,不能编辑腾讯文档。

开发与测试

python -m pip install -r requirements.txt
python -m unittest discover -s tests -v

GitHub Actions 会在 Ubuntu、macOS、Windows,以及 Python 3.10 和 3.13 上执行测试。自动测试不包含真实腾讯账号。详细范围见 docs/能力矩阵.md。

安全说明

  • Windows 登录助手将 Cookie 写入当前账号才能解密的系统加密文件,不会写入项目或工具返回值。

  • 仅表单创建者或管理员可以写入和发布。

  • 项目不会绕过腾讯文档登录、访问权限或提交限制。

  • 安全问题请参阅 SECURITY.md。

许可证

MIT

Available Tools

4 tools
tencent_docs_build_and_publish_form生成并发布腾讯文档收集表A
Destructive

完整替换题目、保存匿名设置、发布,并以未登录请求验证公开版本。

适用于“建好后直接给我可预览链接”的完整流程。它会替换当前表单的所有题目。

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes
form_urlYes要完整替换并发布的腾讯文档原生收集表链接。
anonymousNo是否隐藏填写者身份;这不等同于免登录填写。
response_formatNo返回 markdown 或 json。markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the bar is lower, yet the description adds real context: it replaces ALL current questions, and it performs an unauthenticated request to verify the public version. The destructive scope is disclosed in prose, which is valuable beyond the boolean hint.

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?

Two compact sentences, front-loaded with the operation sequence and then the intended scenario. Nothing is wasted, although the second sentence's quotation of a user phrase is slightly loose.

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?

An output schema exists, so return values need not be explained. For a destructive multi-step tool the description adequately covers the operation sequence and the replace-all scope, leaving only minor gaps around per-step failure behavior.

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 75%, so the schema already documents form_url, anonymous, and response_format, including the anonymous-vs-login nuance. The description only echoes '保存匿名设置' and adds no format, syntax, or constraint detail beyond the schema, making the 3 baseline appropriate.

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 states a specific composite verb set (replace questions, save anonymous setting, publish, verify public version) against a concrete resource (Tencent Docs collection form). It distinguishes itself as the 'complete workflow' variant, implying it differs from the narrower siblings, though it never names them explicitly.

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?

'适用于"建好后直接给我可预览链接"的完整流程' clearly states the usage context that selects this tool over the step-by-step siblings. It stops short of explicit exclusions, e.g. telling the agent to use replace_form_questions or publish_form when only one step is wanted.

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

tencent_docs_inspect_form检查腾讯文档收集表B
Read-only

读取收集表标题、发布状态、题型和当前账号权限;不修改任何内容。

ParametersJSON Schema
NameRequiredDescriptionDefault
form_urlYes腾讯文档原生收集表公开链接。
response_formatNo返回 markdown 或 json。markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the closing clause '不修改任何内容' largely restates that. The description adds the functional scope of the read, but omits openWorldHint implications (external link fetching), auth/permission requirements, and rate-limit behavior, so it adds only modest value beyond the annotations.

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?

A single compact sentence with the read scope front-loaded and no filler. The trailing '不修改任何内容' clause is close to redundant with the readOnlyHint annotation, which slightly dilutes the value of the space it occupies.

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?

With an output schema present, return values need not be explained, and the description covers the fields surfaced plus the no-modification guarantee. It falls short only on use context (when to inspect rather than publish) and external-fetch/auth caveats implied by openWorldHint.

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%; both form_url (public link) and the response_format enum are fully documented in the schema, and the description adds no syntax, format, or linking detail beyond it. Baseline 3 is correct when the schema does the heavy lifting.

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?

Names a specific verb (读取) and resource (收集表) and enumerates exactly what is returned: 标题、发布状态、题型、当前账号权限. An agent can distinguish this read-only inspector from the mutating siblings (publish/build/replace) without opening a schema, though no sibling is named explicitly.

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 when-to-use guidance, no named alternative, and no prerequisites or ordering advice (e.g. 'use before publish_form'). Usage is only faintly implied by the statement that nothing is modified.

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

tencent_docs_publish_form发布腾讯文档收集表A
Idempotent

立即发布当前草稿,然后在不带登录 Cookie 的情况下回读公开版本。

ParametersJSON Schema
NameRequiredDescriptionDefault
form_urlYes要立即发布的腾讯文档原生收集表链接。
response_formatNo返回 markdown 或 json。markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=true, already covering the safety and idempotency profile. The description adds the useful detail that it verifies the public version via a cookie-less read-back, which enriches the behavior beyond the annotations, but does not cover other behavioral aspects like preconditions or side effects.

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?

A single compact sentence front-loads the primary action (立即发布当前草稿) followed by the verification step. It is appropriately sized and wastes little, though it could be marginally clearer on the publishing target.

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?

Given the simple two-parameter schema, one of which is required, and annotations covering the safety profile, the description is sufficient for an agent to invoke the tool. No output schema is provided, but the description notes the read-back behavior, which partly compensates. Minor gaps remain in usage conditions relative to siblings.

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%; both form_url and response_format are fully described in the schema. The description adds no parameter-specific detail beyond what the schema provides, so a baseline 3 is appropriate.

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?

States a specific verb (发布/publish) and resource (当前草稿/the current draft form), and adds a behavior: re-reading the public version without auth cookies. The distinction from sibling tencent_docs_build_and_publish_form is implied (this publishes an existing draft) but not explicit, so it falls short of a 5.

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 phrase '当前草稿' (current draft) implies the tool applies to an already-created draft, which is circumstantial usage guidance. However, there is no explicit when-to-use vs. when-to-use-the-siblings guidance (e.g., vs. tencent_docs_build_and_publish_form), so it remains implied rather than stated.

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

tencent_docs_replace_form_questions替换腾讯文档收集表题目A
Destructive

完整替换一份已存在的腾讯文档收集表题目,但不发布。

只允许创建者或管理员执行。调用后会回读草稿并比对标题、题序和题型。

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes
form_urlYes要修改的腾讯文档原生收集表链接。
response_formatNo返回 markdown 或 json。markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Adds context beyond the annotations (destructiveHint=true already covers the replace semantics): the creator/admin authorization requirement and the post-call read-back that verifies title, question order, and question type. This read-back/verification behavior is a meaningful trait not captured by any structured field.

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 tight sentences: the action and its non-publishing limit are front-loaded, followed by the permission constraint and the verification behavior. No filler.

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?

Authorization, non-publication, and read-back verification are covered, and an output schema exists so return values need not be described. The main residual gap is what happens to data on the existing form (full overwrite vs merge), which is relevant for a destructive replace.

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 67% and the nested $defs (FormSpec, QuestionSpec, enum types) are well documented inline. The description adds no parameter-level detail, so the baseline of 3 for schema-doing-the-work 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?

States a specific verb and resource: '完整替换一份已存在的腾讯文档收集表题目' (completely replace the questions of an existing form). The clause '但不发布' (but does not publish) cleanly distinguishes it from the publish_form and build_and_publish_form siblings without opening their schemas.

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?

Establishes usage context ('已存在' = must already exist) and a hard precondition ('只允许创建者或管理员执行'). The '但不发布' note implicitly routes the caller elsewhere to publish, but no sibling is named explicitly as an alternative for that next step, so it stops short of full when/when-not guidance.

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.

  1. 4 tool updatesv0.1.0
    • First observedtencent_docs_build_and_publish_form
    • First observedtencent_docs_inspect_form
    • First observedtencent_docs_publish_form
    • First observedtencent_docs_replace_form_questions

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation4/5

Each tool has a distinct action, but there is a triangle of overlap: replace_form_questions, publish_form, and build_and_publish_form (which combines replace + publish) could be confused when an agent wants to edit then publish. The descriptions do clarify that build_and_publish fully replaces questions while publish_form only publishes the current draft, keeping selections mostly predictable.

Naming Consistency4/5

All names use the tencent_docs_ prefix in snake_case with an action_noun structure (publish_form, inspect_form, replace_form_questions). build_and_publish_form is a compound verb but still fits the readable pattern, so consistency is high with only a minor deviation.

Tool Count4/5

Four tools is well-scoped for a focused form build/publish workflow and nothing feels trivial. However, build_and_publish_form is somewhat redundant as a convenience wrapper over replace_form_questions plus publish_form, so the set is slightly leaner than it needs to be.

Completeness3/5

The surface only supports editing/publishing existing forms, with no way to create a new form from scratch or delete one, and no tool to read submitted responses. Inspect and replace cover the core edit-publish lifecycle, but these notable gaps mean agents will hit dead ends for creation and response-reading tasks.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers