Token导航 LogoToken导航TokenDH.com
Tools For MCP Server logo
开发工具HTTP官方级别未说明来源级核验

Tools For MCP Server

MCP Server

Gemini CLI与基于Google Apps Script构建的MCP服务器集成,提供160多种工具,用于自动化Google Workspace服务(如Gmail、Drive、Calendar等),显著提升开发效率和生产力。

工具数

149

提示词数

0

GitHub Stars

105

资源数

0
JavaScript命令行工具开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

tanaikech

提供方

tanaikech

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

](https://mseep.ai/app/tanaikech-toolsformcpserver)

现在,ToolsForMCPServer可以用作Gemini扩展。您可以在以下网址查看如何安装它 .

带MCP服务器的Gemini CLI:使用Google Apps脚本扩展可能性

Gemini CLI证实,使用低代码平台Google Apps Script(GAS)构建的MCP服务器提供了巨大的可能性。如果您已经为GAS创建了代码段,则可以通过将其用作MCP服务器来重新激活和/或以新的方式利用它们。Gemini CLI和其他MCP客户端将有助于实现这一目标。

![MIT License](LICENCE)

![](images/fig1.jpg)

摘要

Gemini CLI提供了一个强大的命令行界面,用于与谷歌的Gemini模型进行交互。通过利用模型上下文协议(MCP),可以使用自定义工具扩展CLI。本报告探讨了Gemini CLI与使用Google Apps Script Web Apps构建的MCP服务器的集成。我们演示了这种组合如何简化Google Workspace API(Gmail、Drive、Calendar等)的授权,使Gemini能够直接在Google生态系统中执行复杂的多步骤任务。我们提供了设置说明和几个实际示例,展示了这种集成如何释放自动化和提高生产力的巨大潜力。

引言

使用Google Apps Script的一个关键优势是它能够为Google API提供无缝授权,特别是在Google Workspace中。这大大降低了与构建与Google Workspace服务交互的应用程序相关的开发开销。

在此基础上,本报告旨在探索将Gemini CLI与由Google Apps Script Web Apps驱动的MCP服务器相结合时的扩展可能性。我们将深入探讨这种强大的组合如何促进各种工具和服务的集成,为谷歌生态系统中提高生产力和自动化解锁无限的潜在应用程序。

当前工具

现阶段(2025年11月14日),以下160个工具由 MCPServer工具 对于MCP服务器。

您可以在Gemini CLI上使用以下命令查看所有工具的说明。

/mcp desc

下一节将详细介绍使用Google Apps Script部署MCP服务器以及配置Gemini CLI以使用它。

准备MCP服务器

1.创建Google Apps脚本项目

首先,创建一个新的独立Google Apps脚本项目。独立项目不绑定到特定的Google Sheet、Doc或Form,这使其成为创建通用web服务的理想选择。您可以通过访问创建一个 script.google.com. 参考

2.安装库

为了简化MCP服务器的构建,我们将使用预构建的Google Apps脚本库。这些封装了复杂的MCP处理逻辑,并提供了现成的工具,保持了主脚本的整洁。

此示例使用两个Google Apps脚本库:

  1. MCPApp:管理MCP服务器生命周期和通信协议。
  2. MCPServer工具:提供一套预构建的工具,用于与谷歌工作区服务(Gmail、Drive、Calendar等)进行交互。

库项目密钥和安装

  1. 打开刚刚创建的项目的脚本编辑器。
  2. 安装MCPApp:

- 安装指南 - 项目密钥: 1TlX_L9COAriBlAYvrMLiRFQ5WVf1n0jChB6zHamq2TNwuSbVlI5sBUzh - 标识符: MCPApp - 存储库:

  1. 安装MCPServer工具:

- 安装指南 - 项目密钥: 1lnE7UL1jQgPDbTB9yjhiwZM0SaS9MObhzvWUWb_t8FisO6A3bLepvM2j - 标识符: ToolsForMCPServer - 存储库:

3.脚本

请将以下脚本复制并粘贴到脚本编辑器中(替换任何现有代码),然后保存项目。

这是使用此库的基本脚本。

const apiKey = "###"; // API key for Gemini API

/**
 * This function is automatically run when the MCP client accesses Web Apps.
 */
const doPost = (e) => main(e);

function main(eventObject) {
  const m = ToolsForMCPServer;

  m.apiKey = apiKey; // This is an API key for using Gemini API.
  // m.model = "models/gemini-2.5-flash"; // If you change model, use this.
  // m.defaultCalendarId = "###"; // If you want to use the specific calendar, please use this.
  // m.enableBaseTools = false; // Disable base tools
  // m.enableClassroomTools = false; // Disable tools for managing Google Classroom
  // m.enablePeopleTools = false; // Disable tools for managing Google People
  // m.enableAnalyticsTools = false; // Disable tools for managing Google Analytics
  // m.enableMapsTools = false; // Disable tools for managing Google Maps
  // m.enableFileSearch = false; // Disable tools for managing File Search

  const object = { eventObject, items: m.getTools() };
  return new MCPApp.mcpApp({ accessKey: "sample" })
    .setServices({ lock: LockService.getScriptLock() })
    .server(object);
}

注:

  • 如果您打算使用以下工具,则必须取消注释 apiKey 行,并为Gemini API提供有效的API密钥。

- generate_roadmap_to_ggle_sheets:在谷歌表格中创建路线图。 - generate_description_onggle_drive:为google drive上的文件生成并设置描述。 - generate_image_on_google_drive:根据提示生成图像并将其保存到google drive。 - summarize_file_on_google_drive:对存储在google drive上的文件进行摘要。 - description_web_site:提供给定网址的网站描述。

  • 如果您想使用特定的谷歌日历,请设置 defaultCalendarId.

应用程序编程接口

  • 如果发生与驱动器API相关的错误,请在高级谷歌服务中启用驱动器API。
  • 如果您想使用API的批量更新方法管理文档、工作表、幻灯片和日历,请在Advanced Google服务中启用文档API、工作表API、幻灯片API和日历API。
  • 如果你想管理谷歌课堂和谷歌人,请在高级谷歌服务中启用谷歌课堂API和谷歌人API。
  • 如果您想检索驱动器活动,请在高级谷歌服务中启用驱动器活动API。
  • 如果您想使用Google Analytics,请在高级Google服务中启用Google Analytics Admin API和Google Analytics Data API。

显示所有工具

运行此脚本时,此库中的所有工具都显示为JSON对象。

function showAlltools() {
  const res = ToolsForMCPServer.getToolList();
  console.log(res);
}

筛选工具

当你想使用特定的工具时,你也可以使用以下脚本。

此脚本仅使用工具 get_exchange_rate.

function main(eventObject) {
  const enables = ["get_exchange_rate"];

  const m = ToolsForMCPServer;
  m.apiKey = apiKey;
  const object = { eventObject, items: m.getTools({ enables }) };
  return new MCPApp.mcpApp({ accessKey: "sample" })
    .setServices({ lock: LockService.getScriptLock() })
    .server(object);
}

此脚本使用除工具之外的所有工具 get_exchange_rate.

function main(eventObject) {
  const disables = ["get_exchange_rate"];

  const m = ToolsForMCPServer;
  m.apiKey = apiKey;
  const object = { eventObject, items: m.getTools({ disables }) };
  return new MCPApp.mcpApp({ accessKey: "sample" })
    .setServices({ lock: LockService.getScriptLock() })
    .server(object);
}

4.部署Web应用程序

为了允许Gemini CLI与我们的脚本通信,我们必须将其部署为Web应用程序。这将创建一个唯一的URL,作为我们的MCP服务器端点。

您可以在以下网址找到详细信息 官方文件.

请按照以下步骤在脚本编辑器中部署Web App:

  1. 在脚本编辑器的右上角,单击 部署 -> 新部署.
  2. 点击 选择类型 -> 网页应用.
  3. 在以下字段中输入Web应用程序的描述 部署配置.
  4. 选择 “我” 为了 “执行方式”。这至关重要,因为它允许脚本在您的权限下运行,以访问您的Google服务。
  5. 选择 “任何人” 为了 “谁有权访问”这使得URL可以从互联网上调用。访问由不可访问的URL和 accessKey 在脚本中定义。
  6. 点击 部署.
  7. 在授权必要的范围后,复制 Web应用程序URL。它看起来与 https://script.google.com/macros/s/###/exec。这是您的MCP服务器端点。

重要提示: 修改应用程序脚本代码时,必须创建新的部署版本以发布更改。点击 部署 > 管理部署,选择您的活动部署,单击铅笔图标,然后选择 “新版本” 从版本下拉列表中。 更多信息请点击此处.

准备Gemini CLI

1.安装Gemini CLI

按照官方文档在您的系统上安装Gemini CLI。 参考

使用Gemini CLI和其他AI代理使用此MCP服务器有两种模式,如下所示。

2A。模式1

在此模式中,Gemini CLI直接连接到由Google Apps Script Web Apps构建的MCP服务器。

要将Gemini CLI连接到新的Apps Script服务器,您需要编辑其设置文件 settings.json。此文件通常位于 ~/.gemini/settings.json 在macOS/Linux或 %USERPROFILE%\.gemini\settings.json 在Windows上。

添加 mcpServers 配置块如下所示。

  1. 替换 https://script.google.com/macros/s/###/exec 使用您之前复制的Web App URL。
  2. 确保 accessKey 查询参数与 accessKey 您在Google Apps脚本中定义的(sample 在这个例子中)。
{
  "theme": "Default",
  "selectedAuthType": "gemini-api-key",
  "mcpServers": {
    "gas_web_apps": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://script.google.com/macros/s/###/exec?accessKey=sample"
      ],
      "env": {}
    }
  },
  "disableAutoUpdate": true
}

{
  "theme": "Default",
  "selectedAuthType": "###",
  "mcpServers": {
    "gas_web_apps": {
      "httpUrl": "https://script.google.com/macros/s/###/exec?accessKey=sample",
      "description": "MCP server built by Google Apps Script Web Apps"
    }
  }
}
  • "gas_web_apps":服务器的本地标识符。
  • "httpUrl":您的Web应用程序URL。在当前阶段,使用此URL时可能会出现错误。当时,使用 mcp-remote.
  • 如果你使用 mcp-remote,请安装。 参考
  • 如果出现以下错误 Request timed out 发生,请添加 timeout 并使用 GEMINI_TIMEOUT 如下所述。
  {
    "theme": "Default",
    "selectedAuthType": "gemini-api-key",
    "mcpServers": {
      "gas_web_apps": {
        "command": "npx",
        "args": [
          "mcp-remote",
          "https://script.google.com/macros/s/###/exec?accessKey=sample"
        ],
        "env": {},
        "timeout": 300000
      }
    },
    "disableAutoUpdate": true
  }
  GEMINI_TIMEOUT=300 # Seconds

2B。\[新增\]模式2(2025年10月15日新增)

现在,ToolsForMCPServer可以用作Gemini扩展。您可以在以下网址查看如何安装它 .

3.传输文件内容(2025年7月9日新增)

最近,我发表了一篇题为“使用Gemini CLI和由Google Apps脚本构建的MCP服务器处理文件内容”的报告 参考在本报告中,我得出的结论是,在后台使用Drive API比直接在提示中嵌入base64数据更有效地在Gemini CLI和Google Drive之间传输文件内容。因此,为了促进这种有效的转移,我使用 ggsrun,一个CLI工具。

3.1. ggsrun 安装指南

要使用此方法,您首先需要设置 ggsrun.

  1. 创建Google Cloud项目:谷歌云平台资源管理器 然后单击 创建项目.
  2. 启用驱动器API: 在新项目中,导航到 API和服务>已启用的API和服务。搜索并启用 驱动API.
  3. 创建凭据: 引导到 API和服务>凭据.
  4. 配置OAuth客户端ID: 点击 创建凭据,选择 OAuth客户端ID,并选择 网络应用程序.
  5. 设置重定向URI: 在“授权重定向URI”下,添加 http://localhost:8080.
  6. 创建和下载凭据: 点击 创建那么 下载JSON. 重要提示:将下载的文件重命名为 client_secret.json 并将其放置在您的工作目录中。
  7. 验证 ggsrun:

8-1.在包含以下内容的目录中打开您的终端 client_secret.json.

8-2.运行命令 ggsrun auth.

8-3.复制终端中显示的URL,将其粘贴到浏览器中,并授权请求的范围。

8-4.从浏览器的地址栏复制授权码并将其粘贴回终端。

要验证设置,请运行 ggsrun di 显示有关您的Google云端硬盘的信息。

3.2.为配置Gemini CLI ggsrun

使Gemini CLI能够使用 ggsrun,将以下工具定义添加到您的 GEMINI.md 文件。此文件通常位于 ~/.gemini/GEMINI.md 在macOS/Linux或 %USERPROFILE%\.gemini\GEMINI.md 在Windows上。

# Transferring file content between local PC and Google Drive using ggsrun

* GitHub Repository: 
* To download a file from Google Drive by filename, use this command:

ggsrun d -f [filename]

* To download a file from Google Drive by file ID, use this command:

ggsrun d -i [fileId]

* To download a file from Google Drive by a file ID by converting mimeType, use this command:

ggsrun d -i [fileId] -e [extension]

  [extension] is the file extension. For example, when you want to download the file in PDF format and TEXT format, use "pdf" and "txt", respectively.
* To upload files from the local PC to the root directory of Google Drive, use this command:

ggsrun u -f "[filename1],[filename2],,,"

* To upload files from the local PC to a specific directory of Google Drive, use this command:

ggsrun u -p [folderId] -f "[filename1],[filename2],,,"

* To search for files and folders on Google Drive, use this command:

ggsrun sf -q "search query of Drive API v3 ([https://developers.google.com/workspace/drive/api/guides/search-shareddrives)]"

* To search for files and folders on Google Drive, use this command:

ggsrun ls -s [filename]

沙盒

你是否曾面临过一项不属于你日常工作但手动完成繁琐的任务,比如,“今天下午我需要在特定文件夹中的所有谷歌文档的标题前添加一个“\[For Review\]”前缀”?或者你可能会想,‘我想用人工智能来处理我的电子表格,但我担心授予工具完全访问我的谷歌云端硬盘的安全影响’?那时,我可以推荐使用“假沙盒”。你可以看到以下文章。

示例提示和答案

以下示例演示了Gemini CLI如何使用Google Apps Script MCP服务器与各种Google服务进行交互。

确认已连接的MCP服务器

此命令列出了所有已配置的MCP服务器及其提供的工具。

提示

> /mcp

当您的设置正确时,将返回以下结果。

答案

ℹConfigured MCP servers:

  🟢 wrapped_gas_web_apps - Ready (149 tools, 3 prompts)
    Tools:
    - add_label_to_Gmail
    - analytics_admin_accountSummaries_list
    - analytics_admin_properties_get
    - analytics_data_properties_runRealtimeReport
    - analytics_data_properties_runReport
    - auto_new_draft_creation_Gmail
    - auto_reply_draft_creation_Gmail
    - change_permission_of_file_on_google_drive
    - classroom_courses_aliases_create
    - classroom_courses_aliases_delete
    - classroom_courses_aliases_list
    - classroom_courses_announcements_create
    - classroom_courses_announcements_delete
    - classroom_courses_announcements_get
    - classroom_courses_announcements_list
    - classroom_courses_announcements_modifyAssignees
    - classroom_courses_announcements_patch
    - classroom_courses_courseWork_create
    - classroom_courses_courseWork_delete
    - classroom_courses_courseWork_get
    - classroom_courses_courseWork_list
    - classroom_courses_courseWork_modifyAssignees
    - classroom_courses_courseWork_patch
    - classroom_courses_courseWork_rubrics_create
    - classroom_courses_courseWork_rubrics_delete
    - classroom_courses_courseWork_rubrics_get
    - classroom_courses_courseWork_rubrics_list
    - classroom_courses_courseWork_rubrics_patch
    - classroom_courses_courseWork_studentSubmissions_get
    - classroom_courses_courseWork_studentSubmissions_list
    - classroom_courses_courseWork_studentSubmissions_patch
    - classroom_courses_courseWork_studentSubmissions_reclaim
    - classroom_courses_courseWork_studentSubmissions_return
    - classroom_courses_courseWork_studentSubmissions_turnIn
    - classroom_courses_courseWorkMaterials_create
    - classroom_courses_courseWorkMaterials_delete
    - classroom_courses_courseWorkMaterials_get
    - classroom_courses_courseWorkMaterials_list
    - classroom_courses_courseWorkMaterials_patch
    - classroom_courses_create
    - classroom_courses_get
    - classroom_courses_getGradingPeriodSettings
    - classroom_courses_list
    - classroom_courses_patch
    - classroom_courses_remove
    - classroom_courses_students_create
    - classroom_courses_students_delete
    - classroom_courses_students_get
    - classroom_courses_students_list
    - classroom_courses_teachers_create
    - classroom_courses_teachers_delete
    - classroom_courses_teachers_get
    - classroom_courses_teachers_list
    - classroom_courses_topics_create
    - classroom_courses_topics_delete
    - classroom_courses_topics_get
    - classroom_courses_topics_list
    - classroom_courses_topics_patch
    - classroom_courses_update
    - classroom_courses_updateGradingPeriodSettings
    - classroom_invitations_accept
    - classroom_invitations_create
    - classroom_invitations_get
    - classroom_invitations_list
    - classroom_invitations_remove
    - classroom_registrations_create
    - classroom_registrations_delete
    - classroom_userProfiles_get
    - classroom_userProfiles_guardianInvitations_create
    - classroom_userProfiles_guardianInvitations_get
    - classroom_userProfiles_guardianInvitations_list
    - classroom_userProfiles_guardianInvitations_patch
    - classroom_userProfiles_guardians_get
    - classroom_userProfiles_guardians_list
    - classroom_userProfiles_guardians_remove
    - comments_drive_api_list
    - comments_drive_api_remove
    - convert_mimetype_of_file_on_google_drive
    - create_chart_on_google_sheets
    - create_charts_as_image_on_google_sheets
    - create_document_body_in_google_docs
    - create_file_to_google_drive
    - create_google_docs_from_markdown_on_google_drive
    - create_schedule_on_Google_Calendar
    - delete_schedules_on_Google_Calendar
    - description_video_on_youtube
    - description_web_site
    - drive_activity_api_query
    - explanation_analytics_data_properties_runRealtimeReport
    - explanation_analytics_data_properties_runReport
    - explanation_create_chart_by_google_sheets_api
    - explanation_create_maps_url
    - explanation_generate_quiz_with_google_forms
    - explanation_generate_survey_with_google_forms
    - explanation_google_apps_script_library_list
    - explanation_manage_google_docs_using_docs_api
    - explanation_manage_google_sheets_using_sheets_api
    - explanation_manage_google_slides_using_slides_api
    - explanation_reference_export_google_sheets_as_pdf
    - explanation_reference_generate_google_apps_script
    - explanation_search_file_in_google_drive
    - generate_description_on_google_drive
    - generate_image_on_google_drive
    - generate_presentation_with_google_slides
    - generate_quiz_with_google_forms
    - generate_roadmap_to_google_sheets
    - generate_survey_with_google_forms
    - get_attachment_files_from_Gmail
    - get_charts_on_google_sheets
    - get_current_date_time
    - get_current_weather
    - get_exchange_rate
    - get_file_from_google_drive
    - get_google_doc_object_using_docs_api
    - get_google_sheet_object_using_sheets_api
    - get_google_slides_object_using_slides_api
    - get_massages_by_search_from_Gmail
    - get_massages_by_time_from_Gmail
    - get_specific_date_weather
    - get_values_from_google_docs
    - get_values_from_google_sheets
    - manage_google_docs_using_docs_api
    - manage_google_sheets_using_sheets_api
    - manage_google_slides_using_slides_api
    - maps_convert_lat_lon_to_location
    - maps_convert_location_to_lat_lon
    - maps_create_map
    - maps_get_route
    - move_files_on_google_drive
    - people_connections_list
    - people_contactGroups_list
    - people_otherContacts_list
    - people_otherContacts_search
    - people_people_getBatchGet
    - publicly_share_file_on_google_drive
    - put_file_to_google_drive
    - put_values_into_google_docs
    - put_values_to_google_sheets
    - remove_files_on_google_drive
    - remove_mails_Gmail
    - rename_files_on_google_drive
    - revisions_drive_api_list
    - search_file_in_google_drive
    - search_schedule_on_Google_Calendar
    - search_values_from_google_sheets
    - send_mails_Gmail
    - summarize_file_on_google_drive
    - update_chart_on_google_sheets
    - update_schedule_on_Google_Calendar

    Prompts:
    - generate_roadmap
    - get_weather
    - search_files_on_google_drive

示例提示

使用MCPServer工具的示例提示

______________________________________________________________________

总结

上述示例表明,将Gemini CLI与使用Google Apps Script Web Apps构建的MCP服务器相结合,可以在Google Workspace中实现强大的自动化。通过利用Google Apps Script固有的授权功能,我们可以轻松地让Gemini访问Gmail、日历、驱动器、文档、表格和幻灯片。

所提供的样本仅代表可能的一小部分。这 ToolsForMCPServer 该库包括许多从以前开发的Google Apps Script实用程序派生的函数。此外,由于MCP服务器只是一个Google Apps Script项目,开发人员可以轻松地将他们自己现有的GAS代码段作为Gemini CLI的新工具。随着这个MCP服务器更新了更多的工具,谷歌生态系统中复杂的、人工智能驱动的自动化的潜力几乎是无限的。

附录

在这种情况下我们该怎么办?

  • 当Gemini CLI启动并出现错误时 Error connecting to MCP server 'gas_web_apps': Connection failed for 'gas_web_apps': MCP error -32000: Connection closed 发生时,请重新部署Web应用程序以反映最新脚本,然后重试。

添加自定义工具和提示

您可能希望将自定义工具和提示添加到MCP服务器。届时,请参考以下脚本。

如果只需要添加工具,请删除 prompts/listprompts/getitemsForMCP. 如果只需要添加提示,请删除 tools/listitemsForMCP.

/**
 * If you want to add your custom tools, please use the following script.
 * This is a simple sample. Please modify the following script to your situation.
 */
function getCustomTools() {
  const functions = {
    params_: {
      tool1: {
        description: "Use this for testing a tool 1 of MCP server.",
        parameters: {
          type: "object",
          properties: {
            sample: { type: "string", description: "Sample value." },
          },
          required: ["sample"],
        },
      },
      tool2: {
        description: "Use this for testing a tool 2 of MCP server.",
        parameters: {
          type: "object",
          properties: {
            sample: { type: "string", description: "Sample value." },
          },
          required: ["sample"],
        },
      },
    },

    tool1: (object) => object,
    tool2: (object) => object,
  };

  // for MCP
  const itemsForMCP = [
    ...Object.keys(functions.params_).map((f) => ({
      type: "tools/list",
      function: functions[f],
      value: {
        name: f,
        description: functions.params_[f].description,
        inputSchema: functions.params_[f].parameters,
      },
    })),

    {
      type: "prompts/list",
      value: {
        prompts: [
          {
            name: "prompt1",
            description: "Custom prompt 1",
            arguments: [
              { name: "sample1", description: "sample1", required: true },
            ],
          },
          {
            name: "prompt2",
            description: "Custom prompt 2",
            arguments: [
              { name: "sample2", description: "sample2", required: true },
            ],
          },
        ],
      },
    },

    {
      type: "prompts/get",
      value: {
        prompt1: {
          description: "Custom prompt 1",
          messages: [
            {
              role: "user",
              content: {
                type: "text",
                text: "Custom prompt 1",
              },
            },
          ],
        },
        prompt2: {
          description: "Custom prompt 2",
          messages: [
            {
              role: "user",
              content: {
                type: "text",
                text: "Custom prompt 2",
              },
            },
          ],
        },
      },
    },
  ];

  return itemsForMCP;
}

const apiKey = "###"; // API key for Gemini API

/**
 * This function is automatically run when the MCP client accesses Web Apps.
 */
const doPost = (e) => main(e);

function main(eventObject) {
  const m = ToolsForMCPServer;
  m.apiKey = apiKey;
  const object = { eventObject, items: [...m.getTools(), ...getCustomTools()] };
  return new MCPApp.mcpApp({ accessKey: "sample" })
    .setServices({ lock: LockService.getScriptLock() })
    .server(object);
}

降低加载MCP服务器启动速度的方法

为了减少运行Gemini CLI时加载MCP服务器的过程时间,我创建了一个包装器作为一种方法。使用此方法时,请使用ToolsForMCPServer和MCPApp部署Google Apps脚本Web应用程序。之后,请执行以下步骤。

现在,实现Node.js包装器以加速启动。

  1. 创建一个新的工作区目录并导航到其中。
  2. 安装必要的库: npm install @modelcontextprotocol/sdk zod@3.
  3. 下载两个必需的脚本文件 wrapped_gas_web_apps.jstools.js我的存储库.
  4. 修改 settings.json 使用Node.js包装器。替换 {your path} 通过绝对路径 wrapped_gas_web_apps.js.
{
  "theme": "Default",
  "selectedAuthType": "### your setting ###",
  "mcpServers": {
    "wrapped_gas_web_apps": {
      "command": "node",
      "args": ["{your path}/wrapped_gas_web_apps.js"]
    }
  }
}

$ gemini 再一次。您应该观察到启动速度明显加快。在我的测试中,启动时间缩短了大约15倍。虽然单个工具执行的性能保持不变,但改进的启动时间使CLI更加实用和用户友好。

______________________________________________________________________

许可证

麻省理工学院

作者

田奈克

捐赠

更新历史

  • v1.0.0(2025年7月3日)

1. 首次发布。

  • v1.0.1(2025年7月9日)

1. 方法名称 getServer 已更改为 getTools但是, getServer 仍然可以使用。 1. 添加了以下方法。

- 管理Gmail - 获取附件文件_发件人_邮件 - 用于管理Google云端硬盘 - 重命名files_ongoogle_drive - move_files_ongoogle_drive - convert_mimetype_of_file_on_google_drive - 使用Gemini - 生成_路线图_谷歌_工作表 - generate_description_onggle_drive - googledrive上的生成图像 - googledrive上的摘要文件 - 描述_网站

3. 在README.md中添加了示例提示和答案。

  • v1.0.2(2025年7月10日)

1. 工具 change_permission_of_file_on_google_drive 已添加。通过这种方式,当谷歌文档文件包含在Gmail中时,可以通过授权谷歌文档文件来发送电子邮件。

  • v1.0.3(2025年7月11日)

1. 工具 get_current_weather 已更新。 1. 一种新工具 get_specific_date_weather 已添加。

  • v1.0.4(2025年7月11日)

1. 函数 getSheet_ 已更新。

  • v1.0.5(2025年7月16日)

1. 一种新工具 search_values_from_google_sheets 已添加。

  • v1.0.6(2025年7月17日)

1. 添加了以下6个新工具。

- get_google_doc_object_using_docs_api - 使用.docs_api管理谷歌.docs - get_google_sheet_object_using_sheets_api - manage_google_sheets_using \_sheets_api - get_google_slides_object_using_slides_api - 管理_谷歌_幻灯片_使用_幻灯片_api

  • v1.0.7(2025年7月19日)

1. 添加了a getToolList 检索库中所有当前工具的方法。 1. 工具可以通过以下方式进行筛选 enablesdisables 作为数组参数 getTools 方法。如果 enables 仅使用中指定的工具 enables 将使用数组。如果 disables 使用,除中指定的工具外的所有工具 disables 将使用数组。如果两者都没有 enables 也不 disables 使用后,将使用所有工具。

  • v1.0.8(2025年7月23日)

1. 将Gemini CLI从v0.1.12更新到v0.1.13时出现问题。 参考 幸运的是,谷歌已经意识到了这个问题,我正在等待解决方案。与此同时,我收到了关于它的电子邮件,所以我更新了ToolsForMCPServer for Gemini CLI v0.1.13。详细更新如下:我确认ToolsForMCPServer v1.0.8中的所有工具在使用Gemini CLI v0.1.13进行测试时都能正常工作。

- oneOf 已从每个工具的架构中删除。 - 跟随 这份报告,请求体现在在MCP服务器端生成。因此,在使用工具时 manage_google_docs_using_docs_api, manage_google_sheets_using_sheets_api,以及 manage_google_slides_using_slides_api,请将您的API密钥用于Gemini API。

  • v1.0.9(2025年7月24日)

1. 添加了以下两个新工具。

- description_video_on_youtube:通过提供URL来描述youtube视频。 - create_google_docs_from_markdown_on_google_drive:从markdown格式创建google文档。

  • v1.0.10(2025年7月26日)

1. 当我将Gemini CLI从v0.1.12更新到v0.1.13时,出现了与MCP模式相关的问题。 参考 因此,作为当时的解决方法,我更新了这个库。但是当我将Gemini CLI更新到v0.1.14时,我确认可以使用之前的模式。因此,我重新实现了之前的模式。通过这种方式,可以使用Gemini CLI v0.1.14直接生成API的请求体。

  • v1.0.11(2025年7月29日)

1. management_calendar.js 已更新。 search_schedule_on_Google_Calendarcreate_schedule_to_Google_Calendar 已更新。还有2个工具 delete_schedules_on_Google_Calendarupdate_schedule_on_Google_Calendar 被添加。在此版本中,当您想要管理Google日历时,请在高级Google服务中启用日历API。

  • v1.0.12(2025年7月31日)

1. 在Gemini CLI v0.1.15中, prompts/list 即使在 prompts 未包含在 capabilities。这导致了错误 Error discovering prompts from gas_web_apps: MCP error -32001: Request timed outprompts 未归还 prompts/list。为了解决这个问题,我更新了 ToolsForMCPServer返回一个空数组 prompts,消除了误差。因此,通过v1.0.12中的此更新,您现在可以 自定义设置 promptsresources.

  • v1.0.13(2025年8月1日)

1. prompts/get 已更新。并且,添加了3个提示。

  • v1.0.14(2025年8月2日)

1. 库版本和协议版本被设置为变量。

  • v1.0.15(2025年8月2日)

1. 工具的缺陷 create_schedule_on_Google_Calendarupdate_schedule_on_Google_Calendar 被移除。

  • v1.0.16(2025年8月5日)

1. 工具 update_schedule_on_Google_Calendar 已更新。从这个版本开始,当事件更新时,会发送一封电子邮件。而且,客人也可以被带走。

  • v1.0.17(2025年8月5日)

1. main_library_side.js 已更新。

  • v1.0.18(2025年8月9日)

1. 一个bug被删除了。当运行Google Forms工具时,会出现以下错误 FunctionDeclaration in the request exceeds the maximum allowed nesting depth. 发生。通过重构JSON模式消除了此错误。

  • v1.0.19(2025年8月10日)

1. 新增了67个管理Google课堂的工具和3个管理Google人员的工具。当您使用这些工具时,请在高级谷歌服务中启用谷歌课堂API和谷歌用户API。您可以在以下位置看到示例提示 下一级课堂自动化:Gemini CLI、谷歌课堂和MCP.

  • v1.0.20(2025年8月11日)

1. 一个bug被删除了。 参考

  • v1.0.21(2025年8月12日)

1. 工具 create_schedule_on_Google_Calendarmanagement_calendar.js 已更新。在此版本中,将使用日历API。

  • v1.0.22(2025年8月13日)

1. 在将Gemini CLI从v0.1.18更新到v0.1.19时,我注意到了一个回归。 参考 我修改了大部分工具,但离开了 manage_google_docs_using_docs_api, manage_google_sheets_using_sheets_api,以及 manage_google_slides_using_slides_api 原封不动。这些工具依赖于 $ref 在他们的输入模式中,但它出现了 $ref 版本v0.1.19不支持。我将推迟进一步的更改,等待Gemini CLI的未来更新。在v0.1.19版本中,当运行Gemini CLI时,上面显示了以下3个错误。但是,还可以使用其他112种工具。

  Skipping tool 'manage_google_docs_using_docs_api' from MCP server 'gas_web_apps' because it has missing types in its parameter schema. Please file an issue with the owner of the MCP server.
  Skipping tool 'manage_google_sheets_using_sheets_api' from MCP server 'gas_web_apps' because it has missing types in its parameter schema. Please file an issue with the owner of the MCP server.
  Skipping tool 'manage_google_slides_using_slides_api' from MCP server 'gas_web_apps' because it has missing types in its parameter schema. Please file an issue with the owner of the MCP server.
  • v1.0.23(2025年8月14日)

1. 工具 get_attachment_files_from_Gmail 已更新。 参考

  • v1.0.24(2025年8月14日)

我处理了一个由Gemini CLI从v0.1.18更新到v0.1.19引起的问题。

此次更新降低了架构嵌套深度,现在需要使用 $ref然而 parametersJsonSchema 似乎与此不兼容。这意味着一个请求体,例如 batchUpdate 对于文档、表格和幻灯片API,不能使用输入模式直接生成。如果人工智能代理可以直接生成这种复杂的请求体,那将非常有用。

为了解决这个问题,我探索了在不使用 $ref 对于这三个工具。我提出了以下解决方法:

  The JSON schema is included in the tool's description, and this description is used as a prompt for the AI agent.

通过这种解决方法,输入模式仍然很简单,复杂的JSON模式仍然可以用于生成请求体。此外,使用Gemini CLI时不会出现错误。

  • v1.0.25(2025年8月14日)

1. 修改后的描述 manage_google_docs_using_docs_api, manage_google_sheets_using_sheets_api,以及 manage_google_slides_using_slides_api.

  • v1.0.26(2025年8月18日)

1. 添加了以下6个工具。

- comments_drive_api_list:用于获取Google Drive上文件的评论列表。 - comments_drive_api_remove:用于使用Google Drive API的“comments.delete”方法删除评论。 - revisions_drive_api_list:用于获取Google Drive上文件修订的列表。 - drive_activity_api_query:用于查询Google Drive中过去的活动。检索Google Drive中文件和文件夹的活动。 - people_otherContacts_search:用于提供经过身份验证的用户的其他联系人中与搜索查询匹配的联系人列表。 - people_people_getBatchGet:用于通过指定请求的资源名称列表来提供有关特定人员列表的信息。

  • v1.0.27(2025年8月22日)

1. 添加了以下6个Google Analytics工具。

- analytics_admin_accountSummaries_list:检索当前用户可访问的所有Google Analytics帐户的列表 - analytics_admin_properties_get:获取单个Google Analytics属性的详细信息 - analytics_data_properties_runReport:从Google Analytics属性获取自定义报告 - analytics_data_properties_runRealtimeReport:从Google Analytics属性生成实时事件数据的自定义报告

  • v1.0.28(2025年9月11日)

1. 添加了以下9个工具。

- create_document_body_in_google_docs - remove_files_ongoogle_drive - maps_get_route - maps_convert_location_to_lat_lon - maps_convert_lat_lon_to_location - maps_create_map - explanation_create_maps_url - 说明_参考_生成_谷歌_应用程序_脚本 - 说明_参考_导出_谷歌_表格\_ as_pdf

2. 工具“convert_mimetype_of_file_on_google_drive”的一个错误已被删除。这是从 此问题报告.

  • v1.0.29(2025年9月15日)

1. 添加了以下5个工具。这些工具为构建GoogleAPI的请求体提供了信息。

- 解释_分析_数据_特性_运行报告 - 解释_分析_数据_特性_实时报告 - 解释_管理_谷歌_表格_使用_表格_api - 解释_管理\_ gogle_docs_使用_docs_api - 说明_管理_谷歌_幻灯片_使用_幻灯片_api

1. 更新了以下8个工具。

- get_google_sheet_object_using_sheets_api - manage_google_sheets_using \_sheets_api - get_google_doc_object_using_docs_api - 使用.docs_api管理谷歌.docs - get_google_slides_object_using_slides_api - 管理_谷歌_幻灯片_使用_幻灯片_api - 分析_数据_特性_运行报告 - analytics_data_properties_run实时报告

  • v1.0.30(2025年9月16日)

1. 更新了“generate_survey_with_google_forms”和“generate_quiz_with_gogoogle_form”的JSON模式。此外,还增加了两个工具:“带谷歌表单的解释生成调查”和“带谷歌模板的解释生成问答”。最近,无法使用复杂的JSON模式。因此,当需要生成复杂的JSON时,我使用RAG来解释复杂的模式。

  • v1.0.31(2025年9月16日)

1. 修改了“generate_survey_with_google_forms”和“generate_quiz_with_gogoogle_form”的JSON模式。

  • v1.0.32(2025年9月17日)

1. 添加了以下4个工具。

- 使用谷歌表格进行解释、生成、调查 - 解释_生成_提问_使用_谷歌_表单 - 解释_搜索_谷歌_驱动 - 说明_谷歌_应用程序_脚本库_列表

1. 为了降低加载MCP服务器的启动速度,我创建了一个包装器。 参考

  • v1.0.33(2025年9月20日)

1. 该bug已从“management_sheets.js”中删除。

  • v1.0.34(2025年9月22日)

1. 添加了一个新工具“publicy_share_file_on_google_drive”。

  • v1.0.35(2025年9月23日)

1. 更新了一个工具“generate_wesentation_with_google_slides”。

  • v1.0.36(2025年9月24日)

1. 添加了以下4个工具。

- 解释_创建_图表\_ by_google_sheets_api - 谷歌上的图表 - create_chart_ongoogle_sheets - update_chart_ongoogle_sheets

  • v1.0.37(2025年9月24日)

1. 添加了以下1个工具。

- create_charts_as_image_on_google_sheets

  • v1.0.38(2025年10月2日)

1. 通过报告 这个问题,一个bug get_charts_on_google_sheets 可以删除。 type: "object" 被放置在房产中。由此,一个错误 Schema at properties.type must be a boolean or an object 发生。这已被删除。

  • v1.0.39(2025年10月15日)

1. use_geminimanagement_sheets 修改为使用Gemini CLI中的API密钥。当然,您可以直接在Web应用程序的脚本中连续设置API密钥。

  • v1.0.40(2025年11月3日)

1. 一个bug被删除了。 参考

  • v1.0.41(2025年11月14日)

- file_search_gas_create - file_search_gas_documents_get - file_search_gas_documents_list - file_search_gas_documents_query - file_search_gas_documents_remove - 文件搜索生成内容 - file_search_gas_get - file_search_gas_import_file - file_search_gas_list - file_search_gas_media_upload - file_search_gas_remove

  • v1.1.0(2026年1月1日)

1. 默认模型已更改 models/gemini-3-flash-preview 用于使用Gemini API。

顶部

目录标签

目录标签

JavaScript命令行工具开发工具GoogleWorkspace自动化本地部署低代码平台GoogleAppsScript

接入字段

传输方式(transport,传输协议)

HTTP

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

149

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

HTTPoauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP