MCP Tools Reference: docsmcp.googleapis.com

工具:update_doc

使用批量更新请求更新文档。它接受 documents.batchUpdate 请求(以 JSON 格式)。

对应于 REST API 中的 documents.batchUpdate。

可能的更新列表如下:

  • replaceAllText:替换指定文本的所有实例。架构:
    • replaceText(字符串,必需):将替换匹配文本的文本。
    • 条件(必须满足其中一项):
    • containsText(对象):用于匹配文本的标准:
      • text(字符串,必需):要在文档中搜索的文本。
      • matchCase(布尔值,可选):搜索是否应区分大小写。
      • searchByRegex(布尔值,可选):搜索文本是否被视为正则表达式。
    • tabsCriteria(对象,可选):用于指定在哪些标签页中进行替换的条件:
    • tabIds(字符串数组,可选):执行请求的标签页 ID 列表。
  • insertText:在指定位置插入文本。架构:
    • text(字符串,必需):要插入的文本。
    • 插播位置(必须指定一个):
    • location(对象):在特定索引处插入文本:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此字段为空。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在页眉、页脚、脚注或文档正文的末尾插入文本:
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):位置所在的标签页。
  • updateTextStyle:更新指定范围内的文字样式。架构:
    • textStyle(对象,必需):要设置的文本样式:
    • bold(布尔值,可选):文本是否以粗体呈现。
    • italic(布尔值,可选):文本是否为斜体。
    • underline(布尔值,可选):文本是否带有下划线。
    • strikethrough(布尔值,可选):文本是否带有删除线。
    • smallCaps(布尔值,可选):文本是否为小型大写字母。
    • backgroundColor(对象,可选):文本背景颜色:{"color": {"rgbColor": {"red": number, "green": number, "blue": number}}}。
    • foregroundColor(对象,可选):文字前景色:{"color": {"rgbColor": {"red": number, "green": number, "blue": number}}}。
    • fontSize(对象,可选):字号:{"magnitude": number, "unit": "PT"}。
    • weightedFontFamily(对象,可选):字体系列和粗细:{"fontFamily": string, "weight": integer}。
    • baselineOffset(字符串,可选):纵向偏移量:"NONE"、"SUPERSCRIPT" 或 "SUBSCRIPT"。
    • link(对象,可选):超链接目标:{"url": string} 或 {"tabId": string}。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "bold,foregroundColor" 或 "*")。
    • 插播位置(必须指定一个):
    • range(对象):要设置样式的文本范围:
      • startIndex(整数,可选):相应范围的起始索引(从 0 开始)。
      • endIndex(整数,可选):相应范围的结束索引(从零开始)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):包含相应范围的标签页。
  • createParagraphBullets:为段落创建项目符号。架构:
    • range(对象,必需):要应用项目符号预设的范围:
    • startIndex(整数,可选):相应范围的起始索引(从 0 开始)。
    • endIndex(整数,可选):相应范围的结束索引(从零开始)。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
    • tabId(字符串,可选):包含相应范围的标签页。
    • bulletPreset(字符串,必需):列表的项目符号字形预设样式:"BULLET_DISC_CIRCLE_SQUARE"、"BULLET_DIAMONDX_ARROW3D_SQUARE"、"BULLET_CHECKBOX"、"BULLET_ARROW_DIAMOND_DISC"、"BULLET_STAR_CIRCLE_SQUARE"、"BULLET_ARROW3D_CIRCLE_SQUARE"、"BULLET_LEFTTRIANGLE_DIAMOND_DISC"、"BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE"、"BULLET_DIAMOND_CIRCLE_SQUARE"、"NUMBERED_DECIMAL_ALPHA_ROMAN"、"NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS"、"NUMBERED_DECIMAL_NESTED"、"NUMBERED_UPPERALPHA_ALPHA_ROMAN"、"NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL"、"NUMBERED_ZERODECIMAL_ALPHA_ROMAN"。
  • deleteParagraphBullets:从段落中删除项目符号。架构:
    • range(对象,必需):要删除项目符号的范围:
    • startIndex(整数,可选):相应范围的起始索引(从 0 开始)。
    • endIndex(整数,可选):相应范围的结束索引(从零开始)。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
    • tabId(字符串,可选):包含相应范围的标签页。
  • createNamedRange:创建命名的范围。架构:
    • name(字符串,必需):NamedRange 的名称(1 到 256 个字符)。
    • range(对象,必需):要应用名称的范围:
    • startIndex(整数,可选):相应范围的起始索引(从 0 开始)。
    • endIndex(整数,可选):相应范围的结束索引(从零开始)。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
    • tabId(字符串,可选):包含相应范围的标签页。
  • deleteNamedRange:删除命名的范围。架构:
    • 命名的范围引用(必须提供一个):
    • namedRangeId(字符串):要删除的命名的范围的 ID。
    • name(字符串):要删除的范围的名称。系统将删除所有具有此名称的已命名范围。
    • tabsCriteria(对象,可选):用于指定范围删除操作所适用的标签页的条件:
    • tabIds(字符串数组,可选):标签页 ID 列表。
  • updateParagraphStyle:更新指定范围内的段落样式。架构:
    • paragraphStyle(对象,必需):要设置在段落上的样式:
    • alignment(字符串,可选):文字对齐方式:"START"、"CENTER"、"END"、"JUSTIFIED"。
    • lineSpacing(数字,可选):行间距百分比(例如,100 表示 100%)。
    • direction(字符串,可选):文字方向:"LEFT_TO_RIGHT"、"RIGHT_TO_LEFT"。
    • spacingMode(字符串,可选):间距模式:"NEVER_COLLAPSE"、"COLLAPSE_LISTS"。
    • spaceAbove(对象,可选):段落上方的空间:{"magnitude": number, "unit": "PT"}。
    • spaceBelow(对象,可选):段落下方的空间:{"magnitude": number, "unit": "PT"}。
    • borderBetween / borderTop / borderBottom / borderLeft / borderRight(对象,可选):{"color": {"color": {"rgbColor": ...}}, "width": {"magnitude": number, "unit": "PT"}, "padding": {"magnitude": number, "unit": "PT"}, "dashStyle": "SOLID"|"DOT"|"DASH"}。
    • indentFirstLine(对象,可选):首行缩进:{"magnitude": number, "unit": "PT"}。
    • indentStart(对象,可选):开头缩进:{"magnitude": number, "unit": "PT"}。
    • indentEnd(对象,可选):末尾缩进:{"magnitude": number, "unit": "PT"}。
    • namedStyleType(字符串,可选):命名样式类型:"NORMAL_TEXT"、"TITLE"、"SUBTITLE"、"HEADING_1"、"HEADING_2"、"HEADING_3"、"HEADING_4"、"HEADING_5"、"HEADING_6"。
    • keepWithNext(布尔值,可选):是否让段落与下段同页。
    • keepLinesTogether(布尔值,可选):是否让所有行保持在同一页面上。
    • avoidWidowAndOrphan(布尔值,可选):是否避免出现孤行。
    • shading(对象,可选):段落背景阴影:{"backgroundColor": {"color": {"rgbColor": {"red": number, "green": number, "blue": number}}}}。
    • pageBreakBefore(布尔值,可选):段落是否应始终从页面开头开始。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "alignment,namedStyleType" 或 "*")。
    • 插播位置(必须指定一个):
    • range(对象):要设置样式的段落的重叠范围:
      • startIndex(整数,可选):相应范围的起始索引(从 0 开始)。
      • endIndex(整数,可选):相应范围的结束索引(从零开始)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):包含相应范围的标签页。
  • deleteContentRange:从文档中删除内容。架构:
    • range(对象,必需):要删除的内容范围:
    • startIndex(整数,可选):相应范围的起始索引(从 0 开始)。
    • endIndex(整数,可选):相应范围的结束索引(从零开始)。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
    • tabId(字符串,可选):包含相应范围的标签页。
  • insertInlineImage:在指定位置插入内嵌图片。架构:
    • uri(字符串,必需):映像 URI。必须可公开访问,且长度不得超过 2 KB。
    • objectSize(对象,可选):图片在文档中应显示的大小:{"width": {"magnitude": number, "unit": "PT"}, "height": {"magnitude": number, "unit": "PT"}}。
    • 插播位置(必须指定一个):
    • location(对象):在特定位置插入图片:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此字段为空。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在标题、页脚或文档正文末尾插入图片:
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):位置所在的标签页。
  • insertTable:在指定位置插入表格。架构:
    • rows(整数,必需):表中的行数。
    • columns(整数,必需):表中的列数。
    • 插播位置(必须指定一个):
    • location(对象):在特定位置插入表格:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此字段为空。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在标题、页脚或正文末尾插入表格:
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):位置所在的标签页。
  • insertTableRow:将空行插入表中。架构:
    • tableCellLocation(对象,必需):要插入行的参考表格单元格位置:
    • tableStartLocation(对象,必需):文档中表格的起始位置:
      • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
      • tabId(字符串,可选):包含相应表格的标签页。
    • rowIndex(整数,必需):从零开始的行索引。
    • columnIndex(整数,必需):从 0 开始的列索引。
    • insertBelow(布尔值,必需):是否在参考单元格下方插入新行(true 表示在下方,false 表示在上方)。
  • insertTableColumn:将空列插入表中。架构:
    • tableCellLocation(对象,必需):要插入列的参考表格单元格位置:
    • tableStartLocation(对象,必需):文档中表格的起始位置:
      • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
      • tabId(字符串,可选):包含相应表格的标签页。
    • rowIndex(整数,必需):从零开始的行索引。
    • columnIndex(整数,必需):从 0 开始的列索引。
    • insertRight(布尔值,必需):是否在参考单元格的右侧插入新列(true 表示右侧,false 表示左侧)。
  • deleteTableRow:从表中删除一行。架构:
    • tableCellLocation(对象,必需):要删除的行的参考表格单元格位置:
    • tableStartLocation(对象,必需):文档中表格的起始位置:
      • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
      • tabId(字符串,可选):包含相应表格的标签页。
    • rowIndex(整数,必需):从零开始的行索引。
    • columnIndex(整数,必需):从 0 开始的列索引。
  • deleteTableColumn:从表中删除列。架构:
    • tableCellLocation(对象,必需):要删除的列所对应的参考表格单元格位置:
    • tableStartLocation(对象,必需):文档中表格的起始位置:
      • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
      • tabId(字符串,可选):包含相应表格的标签页。
    • rowIndex(整数,必需):从零开始的行索引。
    • columnIndex(整数,必需):从 0 开始的列索引。
  • insertPageBreak:在指定位置插入分页符。架构:
    • 插播位置(必须指定一个):
    • location(对象):在特定索引处插入分页符:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此字段为空。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在文档正文末尾插入分页符:
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):位置所在的标签页。
  • deletePositionedObject:从文档中删除已定位的对象。架构:
    • objectId(字符串,必需):要删除的定位对象的 ID。
    • tabId(字符串,可选):包含定位对象的标签页。
  • updateTableColumnProperties:更新表中的列的属性。架构:
    • tableStartLocation(对象,必需):文档中表格的起始位置:
    • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
    • tabId(字符串,可选):包含相应表格的标签页。
    • columnIndices(整数数组,可选):要更新的从 0 开始的列索引。如果省略,则更新所有列。
    • tableColumnProperties(对象,必需):要更新的列属性:
    • width(对象,可选):列宽:{"magnitude": number, "unit": "PT"}。
    • widthType(字符串,可选):"EVENLY_DISTRIBUTED"、"FIXED_WIDTH"。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "width" 或 "*")。
  • updateTableCellStyle:更新表格单元格的样式。架构:
    • 单元格(必须提供一个):
    • tableRange(对象):要更新的表格单元格的子集:
      • tableCellLocation(对象,必需):参考单元格位置:
      • tableStartLocation(对象,必需):文档中表格的起始位置:
        • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
        • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
        • tabId(字符串,可选):包含相应表格的标签页。
      • rowIndex(整数,必需):从零开始的行索引。
      • columnIndex(整数,必需):从 0 开始的列索引。
      • rowSpan(整数,必需):表格范围的行跨度。
      • columnSpan(整数,必需):表格范围的列跨度。
    • tableStartLocation(对象):表格开始应用于表格中所有单元格的位置:
      • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
      • tabId(字符串,可选):包含相应表格的标签页。
    • tableCellStyle(对象,必需):要设置的单元格样式:
    • backgroundColor(对象,可选):{"color": {"rgbColor": {"red": number, "green": number, "blue": number}}}。
    • paddingTop / paddingBottom / paddingLeft / paddingRight(对象,可选):{"magnitude": number, "unit": "PT"}。
    • contentAlignment(字符串,可选):"TOP"、"MIDDLE"、"BOTTOM"。
    • borderTop / borderBottom / borderLeft / borderRight(对象,可选):{"color": {"color": {"rgbColor": ...}}, "width": {"magnitude": number, "unit": "PT"}, "dashStyle": "SOLID"|"DOT"|"DASH"}。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "backgroundColor,contentAlignment" 或 "*")。
  • updateTableRowStyle:更新表格中的行样式。架构:
    • tableStartLocation(对象,必需):文档中表格的起始位置:
    • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
    • tabId(字符串,可选):包含相应表格的标签页。
    • rowIndices(整数数组,可选):要更新的行索引(从零开始)。如果省略,则更新所有行。
    • tableRowStyle(对象,必需):要设置的行样式:
    • minRowHeight(对象,可选):最小行高:{"magnitude": number, "unit": "PT"}。
    • preventOverflow(布尔值,可选):行是否不能跨页溢出。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "minRowHeight" 或 "*")。
  • replaceImage:替换文档中的图片。架构:
    • imageObjectId(字符串,必需):要替换的现有图片的 ID。
    • uri(字符串,必需):新映像的 URI。必须可公开访问。
    • imageReplaceMethod(字符串,可选):"CENTER_CROP"。
    • tabId(字符串,可选):包含要替换的图片的标签页。
  • updateDocumentStyle:更新文档的样式。架构:
    • documentStyle(对象,必需):要设置的文档样式:
    • background(对象,可选):{"color": {"color": {"rgbColor": {"red": number, "green": number, "blue": number}}}}。
    • marginTop / marginBottom / marginLeft / marginRight(对象,可选):{"magnitude": number, "unit": "PT"}。
    • pageSize(对象,可选):{"width": {"magnitude": number, "unit": "PT"}, "height": {"magnitude": number, "unit": "PT"}}。
    • useCustomHeaderFooterMargins(布尔值,可选):是否使用自定义页眉/页脚边距。
    • marginHeader / marginFooter(对象,可选):{"magnitude": number, "unit": "PT"}。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "background,marginTop" 或 "*")。
    • tabId(字符串,可选):包含要更新的文档样式的标签页。
  • mergeTableCells:合并表格中的单元格。架构:
    • tableRange(对象,必需):指定要合并的单元格的表格范围:
    • tableCellLocation(对象,必需):参考单元格的位置:
      • tableStartLocation(对象,必需):文档中表格的起始位置:
      • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
      • tabId(字符串,可选):包含相应表格的标签页。
      • rowIndex(整数,必需):从零开始的行索引。
      • columnIndex(整数,必需):从 0 开始的列索引。
    • rowSpan(整数,必需):表格范围的行跨度。
    • columnSpan(整数,必需):表格范围的列跨度。
  • unmergeTableCells:取消合并表格中的单元格。架构:
    • tableRange(对象,必需):指定要取消合并哪些单元格的表格范围:
    • tableCellLocation(对象,必需):参考单元格的位置:
      • tableStartLocation(对象,必需):文档中表格的起始位置:
      • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
      • tabId(字符串,可选):包含相应表格的标签页。
      • rowIndex(整数,必需):从零开始的行索引。
      • columnIndex(整数,必需):从 0 开始的列索引。
    • rowSpan(整数,必需):表格范围的行跨度。
    • columnSpan(整数,必需):表格范围的列跨度。
  • createHeader:创建标头。架构:
    • type(字符串,必需):标头类型:"DEFAULT"、"FIRST_PAGE"。
    • sectionBreakLocation(对象,可选):分节符的位置,该分节符标志着相应标题所属部分的开始。如果省略,则应用于文档样式:
    • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
    • tabId(字符串,可选):包含分节符的标签页。
  • createFooter:创建页脚。架构:
    • type(字符串,必需):页脚类型:"DEFAULT"、"FIRST_PAGE"。
    • sectionBreakLocation(对象,可选):相应页脚所属部分之前的分节符的位置。如果省略,则应用于文档样式:
    • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
    • tabId(字符串,可选):包含分节符的标签页。
  • createFootnote:创建脚注。架构:
    • 脚注引用位置(必须指定一个):
    • location(对象):在特定索引处插入脚注参考:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在文档正文末尾插入脚注参考:
      • tabId(字符串,可选):位置所在的标签页。
  • replaceNamedRangeContent:替换命名的范围中的内容。架构:
    • text(字符串,必需):用于替换内容的文本。
    • 命名的范围引用(必须提供一个):
    • namedRangeId(字符串):要替换的命名的范围的 ID。
    • namedRangeName(字符串):要替换的命名的范围的名称。
    • tabsCriteria(对象,可选):
    • tabIds(字符串数组,可选):发生替换的标签页 ID 列表。
  • updateSectionStyle:更新指定范围的版块样式。架构:
    • range(对象,必需):要设置样式的重叠部分范围:
    • startIndex(整数,可选):范围的起始索引(从 0 开始)。
    • endIndex(整数,可选):范围的结束索引(从零开始)。
    • tabId(字符串,可选):包含相应范围的标签页。
    • sectionStyle(对象,必需):版块样式属性:
    • columnProperties(对象数组,可选):每个列(最多 3 列)的属性:
      • paddingEnd(对象,可选):列末尾的内边距:{"magnitude": number, "unit": "PT"}。
      • width(对象,可选):列宽:{"magnitude": number, "unit": "PT"}。
    • columnSeparatorStyle(字符串,可选):"NONE"、"BETWEEN_EACH_COLUMN"。
    • contentDirection(字符串,可选):"LEFT_TO_RIGHT"、"RIGHT_TO_LEFT"。
    • marginTop / marginBottom / marginLeft / marginRight / marginHeader / marginFooter(对象,可选):{"magnitude": number, "unit": "PT"}。
    • sectionType(字符串,可选):"CONTINUOUS"、"NEXT_PAGE"。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "marginTop,sectionType" 或 "*")。
  • insertSectionBreak:在指定位置插入分节符。架构:
    • sectionType(字符串,必需):版块类型:"CONTINUOUS" 或 "NEXT_PAGE"。
    • 插播位置(必须指定一个):
    • location(对象):在文档中的特定索引处插入分节符:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在文档正文末尾插入分节符:
      • tabId(字符串,可选):位置所在的标签页。
  • deleteHeader:从文档中删除标题。架构:
    • headerId(字符串,必需):要删除的标头的 ID。
    • tabId(字符串,可选):包含要删除的标题的标签页。
  • deleteFooter:从文档中删除页脚。架构:
    • footerId(字符串,必需):要删除的页脚的 ID。
    • tabId(字符串,可选):包含要删除的页脚的标签页。
  • pinTableHeaderRows:更新表格中固定标题行的数量。架构:
    • tableStartLocation(对象,必需):文档中表格的起始位置:
    • index(整数,必需):以 UTF-16 代码单元为单位的表格起始位置(从零开始的索引)。
    • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,为空或省略。
    • tabId(字符串,可选):包含相应表格的标签页。
    • pinnedHeaderRowsCount(整数,必需):要固定的表格行数(0 表示取消固定所有行)。
  • addDocumentTab:添加文档标签页。架构:
    • tabProperties(对象,可选):要添加的标签页的属性:
    • tabId(字符串,可选):用户提供的标签页 ID。
    • title(字符串,可选):标签页的标题。
    • index(整数,可选):标签页将插入到的索引(从零开始)。
    • parentTabId(字符串,可选):嵌套标签页的父标签页 ID。
    • iconEmoji(字符串,可选):与标签页一起显示的表情符号图标。
  • deleteTab:删除文档标签页。架构:
    • tabId(字符串,必需):要删除的标签页的 ID。
  • updateDocumentTabProperties:更新文档标签页的属性。架构:
    • tabProperties(对象,必需):要更新的标签页属性:
    • tabId(字符串,必需):要更新的标签页的 ID。
    • title(字符串,可选):标签页的更新后标题。
    • index(整数,可选):更新后的标签页索引(从零开始)。
    • parentTabId(字符串,可选):更新后的父标签页 ID。
    • iconEmoji(字符串,可选):与标签页一起显示的新表情符号图标。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "title,iconEmoji" 或 "*")。
  • insertPerson:插入人物提及。架构:
    • personProperties(对象,必需):人员属性:
    • email(字符串,必需):人员的电子邮件地址。
    • name(字符串,可选):人员的姓名。
    • 插播位置(必须指定一个):
    • location(对象):在特定位置插入人员提及内容:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此字段为空。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在页眉、页脚、脚注或文档正文末尾插入人员提及内容:
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):位置所在的标签页。
  • updateNamedStyle:更新已命名的样式。架构:
    • namedStyle(对象,必需):要更新的命名样式:
    • namedStyleType(字符串,必需):命名样式类型:"NORMAL_TEXT"、"TITLE"、"SUBTITLE"、"HEADING_1"、"HEADING_2"、"HEADING_3"、"HEADING_4"、"HEADING_5"、"HEADING_6"。
    • textStyle(对象,可选):相应命名样式的文本样式属性。
    • paragraphStyle(对象,可选):相应命名样式的段落样式属性。
    • fields(字符串,必需):要更新的字段的英文逗号分隔列表(例如 "textStyle,paragraphStyle" 或 "*")。
    • tabId(字符串,可选):要更新的标签页。
  • insertRichLink:插入富链接。架构:
    • richLinkProperties(对象,必需):富链接属性:
    • uri(字符串,必需):富链接的 URI。
    • title(字符串,可选):富链接的标题。
    • mimeType(字符串,可选):富链接的 MIME 类型。
    • 插播位置(必须指定一个):
    • location(对象):在特定位置插入富链接:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此字段为空。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在标题、页脚、脚注或正文末尾插入富链接:
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):位置所在的标签页。
  • insertDate:插入日期。架构:
    • dateElementProperties(对象,必需):日期属性:
    • timestamp(字符串,必需):世界协调时间 (UTC) 时间戳。
    • timeZoneId(字符串,可选):时区(例如 "America/New_York")。默认值为 "etc/UTC"。
    • locale(字符串,可选):语言区域代码(例如 "en")。
    • dateFormat(字符串,可选):"DATE_FORMAT_MONTH_DAY_ABBREVIATED"、"DATE_FORMAT_MONTH_DAY_FULL"、"DATE_FORMAT_MONTH_DAY_YEAR_ABBREVIATED"、"DATE_FORMAT_ISO8601"。
    • timeFormat(字符串,可选):"TIME_FORMAT_DISABLED"、"TIME_FORMAT_HOUR_MINUTE"、"TIME_FORMAT_HOUR_MINUTE_TIMEZONE"。
    • 插播位置(必须指定一个):
    • location(对象):在特定位置插入日期:
      • index(整数,必需):从零开始的索引,以 UTF-16 代码单元为单位。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此字段为空。
      • tabId(字符串,可选):位置所在的标签页。
    • endOfSegmentLocation(对象):在标题、页脚或正文末尾插入日期:
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):位置所在的标签页。
  • insertComment:在文档中插入注释。架构:
    • content(字符串,必需):纯文本评论内容。
    • assigneeEmailAddress(字符串,可选):评论分配对象的电子邮件地址。留空表示未分配的注释。
    • 锚定广告(必须提供且只能提供 1 项):
    • range(对象):用于锚定评论的文档范围:
      • startIndex(整数,可选):相应范围的起始索引(从 0 开始)。
      • endIndex(整数,可选):相应范围的结束索引(从零开始)。
      • segmentId(字符串,可选):页眉、页脚或脚注的 ID。对于文档正文,此参数为空。
      • tabId(字符串,可选):包含相应范围的标签页。
  • addCommentReply:向现有评论或建议线程添加回复。架构:
    • 会话 ID(必须提供一个):
    • commentId(字符串):评论串的 ID。
    • suggestionId(字符串):建议线程的 ID。
    • post(对象,必需):
    • content(字符串,除非正在解决/重新打开问题,否则为必需):纯文本回复内容。
    • commentAction(字符串,可选):评论线程的操作("NO_COMMENT_ACTION_CHANGE"、"RESOLVE"、"REOPEN")。
    • assigneeEmail(字符串,可选):作为此帖子的一部分,新分配给相应线程的用户的电子邮件地址。
  • updateCommentPost:更新评论串或建议串中评论帖子的内容。架构:
    • 会话 ID(必须提供一个):
    • commentId(字符串):评论串的 ID。
    • suggestionId(字符串):建议线程的 ID。
    • postId(字符串,必需):要更新的评论帖子的 ID。
    • content(字符串,必需):评论帖子的更新后内容。
  • deleteComment:删除评论串。架构:
    • commentId(字符串,必需):要删除的评论串的 ID。
  • deleteCommentReply:从评论话题或建议话题中删除回复帖子。架构:
    • 会话 ID(必须提供一个):
    • commentId(字符串):评论串的 ID。
    • suggestionId(字符串):建议线程的 ID。
    • postId(字符串,必需):要删除的回复帖子的 ID。
  • acceptSuggestion:接受建议。架构:
    • suggestionId(字符串,必需):要接受的建议的 ID。
  • rejectSuggestion:拒绝建议。架构:
    • suggestionId(字符串,必需):要拒绝的建议的 ID。
  • deleteSuggestion:删除建议。架构:
    • suggestionId(字符串,必需):要删除的建议的 ID。

以下代码示例展示了如何使用 curl 调用 update_doc MCP 工具。

Curl 请求
curl --location 'https://docsmcp.googleapis.com/mcp/v1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "update_doc",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

UpdateDocRequest

JSON 表示法
{
  "documentId": string,
  "requests": [
    {
      object
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
字段
documentId

string

必需。要更新的文档的 ID。这与云端硬盘工具中的 file_id 相同。

requests[]

object (Struct format)

要应用于文档的更新列表。每个请求都应是一个有效的 documents.batchUpdate 请求对象,使用以下网址中记录的架构:https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/request。系统将按指定顺序应用请求。如果任何请求无效,则不会应用任何请求。

writeControl

object (WriteControl)

可选。提供对写入请求执行方式的控制。

结构体

JSON 表示法
{
  "fields": {
    string: value,
    ...
  }
}
字段
fields

map (key: string, value: value (Value format))

无序的动态类型值映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

FieldsEntry

JSON 表示法
{
  "key": string,
  "value": value
}
字段
key

string

value

value (Value format)

值

JSON 表示法
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
字段
联合字段 kind。值的类型。kind 只能是下列其中一项:
nullValue

null

表示 JSON null。

numberValue

number

表示 JSON 数字。不得为 NaN、Infinity 或 -Infinity,因为 JSON 不支持这些值。此外,由于 JSON 格式通常不支持在其数字类型中使用较大的 Int64 值,因此该格式也无法表示这些值。

stringValue

string

表示 JSON 字符串。

boolValue

boolean

表示 JSON 布尔值(JSON 中的 true 或 false 字面量)。

structValue

object (Struct format)

表示 JSON 对象。

listValue

array (ListValue format)

表示 JSON 数组。

ListValue

JSON 表示法
{
  "values": [
    value
  ]
}
字段
values[]

value (Value format)

动态类型值的重复字段。

WriteControl

JSON 表示法
{
  "writeMode": enum (WriteMode),

  "requiredRevisionId": string,
  "targetRevisionId": string
}
字段
writeMode

enum (WriteMode)

可选。请求的写入模式。

联合字段 control。确定要写入的文档的修订版本,以及如果该修订版本不是文档的当前修订版本,请求应如何运行。control 只能是下列其中一项:
requiredRevisionId

string

写入请求将应用于的文档的修订版本 ID。如果这不是文档的最新修订版本,系统将不会处理相应请求,并会返回 400 错误请求错误。

如果响应中返回了必需的修订版本 ID,则表示应用相应请求后文档的修订版本 ID。

targetRevisionId

string

写入请求将应用于的文档的目标修订版本 ID。如果在检索目标修订版本 ID 后发生了协作者更改,则这些更改可能会产生与应用于目标修订版本 ID 不同的结果。

指定目标修订版本 ID 后,系统会根据目标修订版本 ID 应用写入请求,并将文档的修订版本 ID 递增 1。

如果您未指定目标修订版本 ID,则写入请求会应用于最新的修订版本 ID,并且相应文档的修订版本 ID 会递增 1。

如果响应中返回了目标修订版本 ID,则表示应用相应请求后文档的修订版本 ID。

NullValue

表示 JSON null。

NullValue 是一个标记,使用只有一个值的枚举来表示 Value 类型联合的 null 值。

如果类型为 NullValue 的字段的值不是 0,则视为无效。大多数 ProtoJSON 序列化程序都会发出一个 Value,并将 null_value 设置为 JSON null,无论整数值是多少,因此会往返于 0 值。

枚举
NULL_VALUE Null 值。

WriteMode

写入请求的模式。

枚举
WRITE_MODE_UNSPECIFIED 默认写入模式。未指定写入模式的请求会被视为 EDIT。
EDIT 更改会直接应用于文档。
SUGGEST 更改以建议的形式显示。

输出架构

UpdateDocResponse

JSON 表示法
{
  "replies": [
    {
      object
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
字段
replies[]

object (Struct format)

执行批量更新请求后得到的回复。包括错误、警告和原始 API 响应,以帮助模型进行调整。原始 API 响应使用以下文档中记录的架构:https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/response

writeControl

object (WriteControl)

应用更新后的文档修订版本。在下一个 update_doc 请求中传递 write_control.required_revision_id,以在文档在此期间发生更改时拒绝写入。

结构体

JSON 表示法
{
  "fields": {
    string: value,
    ...
  }
}
字段
fields

map (key: string, value: value (Value format))

无序的动态类型值映射。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

FieldsEntry

JSON 表示法
{
  "key": string,
  "value": value
}
字段
key

string

value

value (Value format)

值

JSON 表示法
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
字段
联合字段 kind。值的类型。kind 只能是下列其中一项:
nullValue

null

表示 JSON null。

numberValue

number

表示 JSON 数字。不得为 NaN、Infinity 或 -Infinity,因为 JSON 不支持这些值。此外,由于 JSON 格式通常不支持在其数字类型中使用较大的 Int64 值,因此该格式也无法表示这些值。

stringValue

string

表示 JSON 字符串。

boolValue

boolean

表示 JSON 布尔值(JSON 中的 true 或 false 字面量)。

structValue

object (Struct format)

表示 JSON 对象。

listValue

array (ListValue format)

表示 JSON 数组。

ListValue

JSON 表示法
{
  "values": [
    value
  ]
}
字段
values[]

value (Value format)

动态类型值的重复字段。

WriteControl

JSON 表示法
{
  "writeMode": enum (WriteMode),

  "requiredRevisionId": string,
  "targetRevisionId": string
}
字段
writeMode

enum (WriteMode)

可选。请求的写入模式。

联合字段 control。确定要写入的文档的修订版本,以及如果该修订版本不是文档的当前修订版本,请求应如何运行。control 只能是下列其中一项:
requiredRevisionId

string

写入请求将应用于的文档的修订版本 ID。如果这不是文档的最新修订版本,系统将不会处理相应请求,并会返回 400 错误请求错误。

如果响应中返回了必需的修订版本 ID,则表示应用相应请求后文档的修订版本 ID。

targetRevisionId

string

写入请求将应用于的文档的目标修订版本 ID。如果在检索目标修订版本 ID 后发生了协作者更改,则这些更改可能会产生与应用于目标修订版本 ID 不同的结果。

指定目标修订版本 ID 后,系统会根据目标修订版本 ID 应用写入请求,并将文档的修订版本 ID 递增 1。

如果您未指定目标修订版本 ID,则写入请求会应用于最新的修订版本 ID,并且相应文档的修订版本 ID 会递增 1。

如果响应中返回了目标修订版本 ID,则表示应用相应请求后文档的修订版本 ID。

NullValue

表示 JSON null。

NullValue 是一个标记,使用只有一个值的枚举来表示 Value 类型联合的 null 值。

如果类型为 NullValue 的字段的值不是 0,则视为无效。大多数 ProtoJSON 序列化程序都会发出一个 Value,并将 null_value 设置为 JSON null,无论整数值是多少,因此会往返于 0 值。

枚举
NULL_VALUE Null 值。

WriteMode

写入请求的模式。

枚举
WRITE_MODE_UNSPECIFIED 默认写入模式。未指定写入模式的请求会被视为 EDIT。
EDIT 更改会直接应用于文档。
SUGGEST 更改以建议的形式显示。

工具注释

工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。

除了标题字符串之外,还定义了以下布尔值提示:

  • readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。
  • destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。
  • idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。
  • openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界,而内存工具不是开放世界。

破坏性提示:❌ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:✅

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file
  • https://www.googleapis.com/auth/documents