jianzhihuixiang/skills/tencent-docs/references/manage_references.md
小虾米 f8894dd3f3 fix: 修复上一章/下一章导航对小数章节(如107.5)的支持
- updateNavButtons: 改用数组索引查找,而非简单的+1/-1
- updateSidebarHighlight: 使用parseFloat比较章节ID
- updateMobileTOCHighlight: 使用parseFloat比较章节ID
- 更新版本号强制刷新缓存
2026-03-27 17:42:41 +08:00

512 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 腾讯文档 MCP 工具完整参考
本文件包含腾讯文档 MCP 中 文件管理类 相关工具的完整 API 说明、支持文件的增删改查、文件搜索、文件夹列表、文件夹信息查询。
---
## 目录
- [文档搜索操作](#文档搜索操作)
- [文档重命名](#文档重命名)
- [云文档最近浏览列表页查询](#云文档最近浏览列表页查询)
- [文档导入操作](#文档导入操作)
- [manage.import_file](#manageimport_file)
- [manage.import_progress](#manageimport_progress)
- [文档导出操作](#文档导出操作)
- [manage.export_file](#manageexport_file)
- [manage.export_progress](#manageexport_progress)
- [典型工作流示例](#典型工作流示例)
---
## 文档搜索操作
### manage.search_file
**功能**:根据关键词搜索云文档,返回匹配关键词的文档列表。
**使用场景**
- 搜索文档标题包含"MCP"关键字的文档
- 搜索文档创建者名称中包含"张三"关键字的文档
**请求参数**
| 参数 | 类型 | 必填 | 说明 |
|------|------|-----|------------------------------------------------------|
| `search_key` | string | ✅ | 搜索关键字 |
| `search_type` | string | ✅ | 按指定类型来匹配关键字默认按照title搜索title-按文档标题搜索owner-按拥有者昵称搜索 |
| `offset` | int64 | | 查询的起始条目偏移量默认为0 |
| `size` | int64 | | 单次查询返回的条目数量默认为20上限是50 |
**返回字段**
| 字段 | 类型 | 说明 |
|----------------|--------|----------|
| `next` | int64 | 下次搜索起始位置 |
| `total` | int64 | 总共搜索条目数 |
| `has_more` | bool | 搜索条目是否结束 |
| `list[].id` | string | 文档id |
| `list[].title` | string | 文档标题 |
| `list[].url` | string | 文档链接 |
| `list[].type` | string | 文档类型 |
| `list[].highlight` | string | 匹配到的关键词高亮块 |
**调用示例**
```json
{
"search_key": "MCP",
"search_type": "title"
}
```
**返回示例**
```json
{
"has_more":true,
"list":[
{
"highlight": "highlight1",
"id": "sheet_1",
"title": "sheet_name_1",
"type": "sheet",
"url": "https://docs.qq.com/sheet/sheet_file_id_1"
},
{
"highlight": "highlight2",
"id": "sheet_2",
"title": "sheet_name_2",
"type": "sheet",
"url": "https://docs.qq.com/sheet/sheet_file_id_2"
}
],
"next": "20",
"total": "40",
"error": "",
"trace_id": "trace_xyz"
}
```
---
## 文档重命名
### manage.rename_file_title
**功能**根据云文档ID更新文档标题。
**使用场景**
- 将文档(file_id)标题更新为"MCP重命名"
**请求参数**
| 参数 | 类型 | 必填 | 说明 |
|------|------|-----|-------------------------|
| `file_id` | string | ✅ | 文档ID |
| `title` | string | ✅ | 文档标题 |
**返回字段**
| 字段 | 类型 | 说明 |
|----------------|--------|------------|
| `file_id` | string | 文档ID |
| `title` | string | 文档新标题 |
**调用示例**
```json
{
"file_id": "MCP",
"title": "title"
}
```
**返回示例**
```json
{
"file_id": "MCP",
"title": "new_title",
"trace_id": "trace_xyz"
}
```
---
## 云文档最近浏览列表页查询
### manage.recent_online_file
**功能**:查询云文档最近浏览页文档列表
**使用场景**
- 用户查询最近查看或者编辑过的文档列表
**请求参数**
| 参数 | 类型 | 必填 | 说明 |
|------|------|-----|----------------|
| `num` | uint32 | ✅ | 当前查询页码数默认为1 |
| `count` | uint32 | ✅ | 分页条数默认为100,每页最多查询的记录数量 |
| `order_by` | uint32 | ✅ | 排序方式0-按文档查看时间排序1-按文件修改时间排序默认为02-按文档名称排序 |
**返回字段**
| 字段 | 类型 | 说明 |
|---------------------|--------|------|
| `files[].file_id` | string | 文档ID |
| `files[].file_name` | string | 文档标题 |
| `files[].file_url` | string | 文档链接 |
**调用示例**
```json
{
"num": "1"
}
```
**返回示例**
```json
{
"file":[
{
"file_id": "file_1",
"file_name": "file_name_1",
"file_url": "xxx"
},
{
"file_id": "file_2",
"file_name": "file_name_2",
"file_url": "xxx"
}
],
"trace_id":"trace_abc"
}
```
---
## 文档导入操作
### manage.import_file
**功能**将本地文件导入到腾讯云文档。调用后返回task_id必须配合 `manage.import_progress` 轮询查询导入进度建议间隔3-5秒直到progress=100表示导入完成。
**使用场景**
- 将本地 docx/xlsx/pptx 等文件导入为腾讯云文档在线文档
- 批量迁移本地文件到云端
**支持的文件格式**`xls`、`xlsx`、`csv`、`doc`、`docx`、`txt`、`text`、`ppt`、`pptx`、`pdf`、`xmind`
**请求参数**
| 参数 | 类型 | 必填 | 说明 |
|------|------|-----|------|
| `file_name` | string | ✅ | 文件名称(含后缀),如 `report.docx`。支持的文件后缀有xls,xlsx,csv,doc,docx,txt,text,ppt,pptx,pdf,xmind |
| `file_size` | integer | ✅ | 文件大小,单位为字节(bytes),如 `36752` |
| `file_md5` | string | ✅ | 文件的MD5哈希值hex编码的32位小写字符串`d41d8cd98f00b204e9800998ecf8427e` |
| `file_base64` | string | ✅ | 文件完整内容经标准Base64编码(StdEncoding)后的字符串注意不是URL-safe编码 |
**返回字段**
| 字段 | 类型 | 说明 |
|------|------|------|
| `task_id` | string | 导入任务 ID用于查询导入进度 |
**调用示例**
```json
{
"file_name": "report.docx",
"file_size": 36752,
"file_md5": "a1b2c3d4e5f6...",
"file_base64": "UEsDBBQAAAAI..."
}
```
**返回示例**
```json
{
"task_id": "144115210435508643_e52cf886-5eae-e61c-c828-a0dddb59703d",
"trace_id": "trace_xyz"
}
```
> **注意**:由于 `file_base64` 字段可能非常大(文件越大 Base64 字符串越长),建议通过 Python 脚本等方式直接构造 HTTP 请求调用 MCP 接口,避免 AI 模型逐 token 生成 Base64 字符串导致超时或截断。
---
### manage.import_progress
**功能**:根据导入任务 `task_id` 查询导入进度。每隔3-5秒轮询一次当progress=100时表示导入完成此时返回file_id和file_url。
**使用场景**
- 调用 `manage.import_file` 后轮询查询导入状态
- 导入完成后获取生成的云文档 ID 和访问链接
**请求参数**
| 参数 | 类型 | 必填 | 说明 |
|------|------|-----|------|
| `task_id` | string | ✅ | 导入任务 ID`manage.import_file` 返回) |
**返回字段**
| 字段 | 类型 | 说明 |
|------|------|------|
| `progress` | integer | 导入进度百分比0-100 |
| `status` | string | 任务状态 |
| `file_id` | string | 导入完成后的云文档 ID |
| `file_name` | string | 文档名称 |
| `file_url` | string | 文档访问链接 |
| `error` | string | 错误信息(失败时返回) |
**调用示例**
```json
{
"task_id": "144115210435508643_e52cf886-5eae-e61c-c828-a0dddb59703d"
}
```
**返回示例(进行中)**
```json
{
"progress": 25,
"trace_id": "trace_xyz"
}
```
**返回示例(完成)**
```json
{
"progress": 100,
"file_id": "DjVlDHwqVVzs",
"file_name": "report",
"file_url": "https://docs.qq.com/doc/DRGpWbERId3FWVnpz",
"trace_id": "trace_xyz"
}
```
---
## 文档导出操作
### manage.export_file
**功能**:根据云文档 ID 发起导出任务,返回导出任务 ID。需配合 `manage.export_progress` 轮询查询导出进度建议间隔3-5秒导出完成后获取file_url下载链接带签名的临时URL有效期约30分钟
**使用场景**
- 将云端在线文档导出为本地 docx/xlsx/pptx 文件
- 备份云文档到本地
**请求参数**
| 参数 | 类型 | 必填 | 说明 |
|------|------|-----|------|
| `file_id` | string | ✅ | 云文档 ID |
**返回字段**
| 字段 | 类型 | 说明 |
|------|------|------|
| `task_id` | string | 导出任务 ID用于查询导出进度 |
**调用示例**
```json
{
"file_id": "DAJpzYoLEpWS"
}
```
**返回示例**
```json
{
"task_id": "144115210435508643_0e15f9be-a2ed-b40a-27c2-10561b7c5072",
"trace_id": "trace_xyz"
}
```
---
### manage.export_progress
**功能**:根据导出任务 `task_id` 查询导出进度。每隔3-5秒轮询一次当progress=100时表示导出完成此时返回file_url带签名的临时下载链接有效期约30分钟
**使用场景**
- 调用 `manage.export_file` 后轮询查询导出状态
- 导出完成后获取文件下载 URL通过 curl 等工具下载到本地
**请求参数**
| 参数 | 类型 | 必填 | 说明 |
|------|------|-----|------|
| `task_id` | string | ✅ | 导出任务 ID`manage.export_file` 返回) |
**返回字段**
| 字段 | 类型 | 说明 |
|------|------|------|
| `progress` | integer | 导出进度百分比0-100100表示导出完成 |
| `status` | string | 任务状态 |
| `file_name` | string | 导出的文件名 |
| `file_url` | string | 文件下载链接导出完成后返回带签名的临时URL有效期约30分钟 |
| `error` | string | 错误信息(失败时返回) |
**调用示例**
```json
{
"task_id": "144115210435508643_0e15f9be-a2ed-b40a-27c2-10561b7c5072"
}
```
**返回示例(进行中)**
```json
{
"progress": 50,
"trace_id": "trace_xyz"
}
```
**返回示例(完成)**
```json
{
"progress": 100,
"file_name": "mcp_import.docx",
"file_url": "https://docs-import-export-xxx.cos.ap-guangzhou.myqcloud.com/export/docx/...",
"trace_id": "trace_xyz"
}
```
> **注意**`file_url` 为带签名的临时下载链接,有效期约 30 分钟,需及时下载。可通过 `curl -L -o <本地路径> "<file_url>"` 命令保存到本地。
---
## 典型工作流示例
### 工作流一:从零在指定目录下创建指定品类文档
```
步骤 1获取文件夹列表
→ manage.folder_list判断is_folder=true后获取文件夹id
步骤 2创建指定品类文档
→ manage.create_file传入文件夹id和品类枚举
```
### 工作流二:按照关键字搜索文件列表
```
步骤 1按照文档标题搜索
→ manage.search_file传入用户指定的关键词和search_type=title
步骤 2按照文档owner搜索
→ manage.search_file传入用户指定的关键词和search_type=owner
步骤 3处理数据
→ 将前面3部获取的数据列表组合起来
```
### 工作流三:给指定文档生成副本到指定目录
```
步骤 1获取文件夹列表
→ manage.folder_list判断is_folder=true后获取文件夹ID
步骤 2按照指定文档ID生成副本
→ manage.copy_file传入文件夹ID和待生成副本的文档ID
```
### 工作流四:根据关键词搜索后删除文档
```
步骤 1按照文档标题搜索
→ manage.search_file传入用户指定的关键词和search_type=title,获取文档id
步骤 2按照文档owner搜索
→ manage.search_file传入用户指定的关键词和search_type=owner,获取文档id
步骤 3删除文档
→ manage.delete_file传入指定的file_id
```
### 工作流五:将本地文件导入为云文档
```
步骤 1读取本地文件并编码
→ 读取本地文件的二进制内容
→ 计算文件大小file_size单位字节
→ 计算文件 MD5 哈希值file_md5
→ 将文件内容进行 Base64 编码file_base64
步骤 2调用导入接口
→ manage.import_file传入 file_name、file_size、file_md5、file_base64
→ 返回 task_id
步骤 3轮询查询导入进度
→ manage.import_progress传入 task_id
→ 每隔 3-5 秒轮询一次,直到 progress=100 或返回错误
→ 导入完成后获取 file_id 和 file_url
```
> **特别说明**:由于 `file_base64` 字段数据量大,建议通过 Python 脚本直接构造 HTTP 请求调用 MCP 接口,
> 而非由 AI 模型逐 token 生成 Base64 字符串。示例脚本流程:
> 1. 用 Python 读取文件并计算 md5、base64
> 2. 构造 JSON-RPC 请求体method: `tools/call`, tool: `manage.import_file`
> 3. POST 到 MCP 端点 `https://docs.qq.com/openapi/mcp`(携带 Authorization 和 Cookie 头)
> 4. 拿到 task_id 后通过 `manage.import_progress` 查询进度
### 工作流六:将云文档导出到本地
```
步骤 1发起导出任务
→ manage.export_file传入 file_id
→ 返回 task_id
步骤 2轮询查询导出进度
→ manage.export_progress传入 task_id
→ 每隔 3-5 秒轮询一次,直到 progress=100 或返回错误
→ 导出完成后获取 file_url临时下载链接
步骤 3下载文件到本地
→ 使用 curl 或其他 HTTP 工具下载文件
→ curl -L -o <本地保存路径> "<file_url>"
```
> **注意事项**
> - 导出的下载链接file_url为带签名的临时 URL有效期约 30 分钟,需及时下载
> - 导出的文件格式取决于原始文档类型doc→docxsheet→xlsxslide→pptx 等)
### 工作流七:导入本地文件后再导出验证(完整闭环)
```
步骤 1导入本地文件
→ 按工作流五执行导入操作
→ 记录返回的 file_id
步骤 2导出刚导入的文件
→ manage.export_file传入步骤 1 返回的 file_id
→ 返回 task_id
步骤 3轮询导出进度并下载
→ manage.export_progress传入 task_id
→ 导出完成后通过 file_url 下载到本地
步骤 4验证文件完整性
→ 对比原文件与导出文件的大小(可能有微小差异,属正常现象)
→ 导入导出过程中腾讯文档会对文件内部 XML 结构做标准化处理
```