返回市场
谷歌应用脚本MCP服务器

谷歌应用脚本MCP服务器

作者:mohalmah24 星标更新:2025-06-01

项目介绍

Google Apps Script MCP Server

作者: mohalmah
许可证: MIT 许可证
仓库: google-apps-script-mcp-server

欢迎来到 Google Apps Script MCP(模型上下文协议)服务器!🚀

此 MCP 服务器提供了与 Google Apps Script API 的全面集成,允许您通过任何兼容 MCP 的客户端(如 Claude Desktop、带有 Cline 的 VS Code 或 Postman)来管理脚本项目、部署、版本和执行。

📋 目录

🌟 概述

此 MCP 服务器通过以下方式实现了与 Google Apps Script 的无缝交互:

  • OAuth 2.0 身份验证 - 带有自动刷新的安全令牌管理
  • 16 个综合工具 - 完整覆盖 Google Apps Script API
  • 符合 MCP 协议 - 适用于 Claude Desktop、VS Code 和其他 MCP 客户端
  • 安全令牌存储 - 在操作系统特定的安全存储中存储刷新令牌
  • 自动令牌刷新 - 自动处理令牌过期
  • 详细日志记录 - 全面的错误处理和调试

🎥 演示视频

Google Apps Script MCP Server 演示

观看 Google Apps Script MCP Server 的操作演示 - 通过 VS Code AI Agent 创建项目、管理部署和执行脚本。

🚀 特性

核心能力

  • 项目管理:创建、检索和更新 Google Apps Script 项目
  • 部署管理:创建、列出、更新和删除脚本部署
  • 版本控制:创建和管理脚本版本
  • 内容管理:获取和更新脚本内容和文件
  • 进程监控:列出并监控脚本执行过程
  • 指标访问:检索脚本执行指标和分析数据
  • 脚本执行:远程运行 Google Apps Script 函数

安全特性

  • OAuth 2.0 流程:完整的 Google OAuth 实现
  • 安全令牌存储:刷新令牌存储在操作系统密钥链/凭证管理器中
  • 自动令牌刷新:无需手动管理令牌
  • 环境变量支持:安全凭证配置

⚙️ 先决条件

开始之前,请确保您拥有:

  • Node.js(需要 v18+,推荐 v20+) - 下载地址
  • npm(随 Node.js 一起提供)
  • Google 账户,具有访问 Google Cloud 控制台的权限
  • Git(用于克隆仓库)

🚀 快速入门指南

1. 克隆仓库

git clone https://github.com/mohalmah/google-apps-script-mcp-server.git
cd google-apps-script-mcp-server

2. 安装依赖项

npm install

3. 设置 Google Cloud OAuth

请参阅下面的详细 OAuth 设置指南

4. 运行 OAuth 设置

npm run setup-oauth

5. 测试服务器

npm start

📖 详细设置说明

第一步:克隆和安装

克隆仓库:

git clone https://github.com/mohalmah/google-apps-script-mcp-server.git
cd google-apps-script-mcp-server

安装依赖项:

npm install

第二步:Google Cloud 控制台设置

2.1 创建或选择一个 Google Cloud 项目

  1. 访问 Google Cloud 控制台
  2. 点击顶部的项目下拉菜单
  3. 点击 "新建项目" 或选择现有项目
  4. 如果创建新项目:
    • 输入项目名称(例如,“Google Apps Script MCP”)
    • 记住您的项目 ID(稍后会用到)
    • 点击 "创建"

2.2 启用所需 API

  1. 在 Google Cloud 控制台中,导航至 APIs & Services
  2. 搜索并启用以下 API:
    • Google Apps Script API(必需)
    • Google Drive API(建议用于文件访问)
    • Google Cloud 资源管理 API(用于项目操作)

对于 Google Apps Script API:

  1. 搜索“Google Apps Script API”
  2. 点击结果
  3. 点击 "启用"
  4. 等待 API 启用(可能需要几分钟)

2.3 配置 OAuth 同意屏幕

  1. 转到 APIs & ServicesOAuth 同意屏幕
  2. 选择 外部(除非您在一个 Google Workspace 组织内)
  3. 填写所需信息:
    • 应用名称:“Google Apps Script MCP 服务器”
    • 用户支持电子邮件:您的电子邮件地址
    • 应用图标:(可选)
    • 应用域名:留空用于开发
    • 开发者联系信息:您的电子邮件地址
  4. 点击 "保存并继续"

配置范围(可选但推荐):

  1. 点击 "添加或移除范围"
  2. 添加这些范围:
    • https://www.googleapis.com/auth/script.projects
    • https://www.googleapis.com/auth/script.projects.readonly
    • https://www.googleapis.com/auth/script.deployments
    • https://www.googleapis.com/auth/script.deployments.readonly
    • https://www.googleapis.com/auth/script.metrics
    • https-//www.googleapis.com/auth/script.processes
  3. 点击 "更新"

添加测试用户(针对外部应用):

  1. 点击 "添加用户"
  2. 将您的 Gmail 地址作为测试用户添加
  3. 点击 "保存并继续"

2.4 创建 OAuth 2.0 凭据

  1. 转到 APIs & Services凭据
  2. 点击 "+ 创建凭据""OAuth 2.0 客户端 ID"
  3. 对于应用程序类型,选择 "Web 应用程序"
  4. 配置客户端:
    • 名称:“Google Apps Script MCP 客户端”
    • 授权的 JavaScript 起源:(暂时留空)
    • 授权的重定向 URI:添加确切的 URL:
      http://localhost:3001/oauth/callback
      
  5. 点击 "创建"
  6. 重要:立即复制您的 客户端 ID客户端密钥
    • 客户端 ID 样式:1234567890-abcdefghijklmnop.apps.googleusercontent.com
    • 客户端密钥样式:GOCSPX-abcdefghijklmnopqrstuvwxyz

第三步:配置环境变量

3.1 创建 .env 文件

在项目根目录创建一个 .env 文件:

# 在 Windows 上
type nul > .env

# 在 macOS/Linux 上
touch .env

3.2 添加 OAuth 凭据

编辑 .env 文件并添加您的凭据:

# Google Apps Script API OAuth 配置
GOOGLE_APP_SCRIPT_API_CLIENT_ID=your_client_id_here
GOOGLE_APP_SCRIPT_API_CLIENT_SECRET=your_client_secret_here

# 可选:日志级别
LOG_LEVEL=info

替换占位符为实际值:

  • 替换 your_client_id_here 为您的客户端 ID
  • 替换 your_client_secret_here 为您的客户端密钥

第四步:OAuth 认证设置

4.1 运行 OAuth 设置

执行 OAuth 设置脚本:

npm run setup-oauth

这会做些什么:

  1. http://localhost:3001 启动一个临时本地服务器
  2. 打开默认浏览器到 Google 的授权页面
  3. 请求您授予应用程序权限
  4. 通过回调 URL 捕获授权码
  5. 使用该码交换访问和刷新令牌
  6. 将刷新令牌安全地存储在您的操作系统凭证存储中
  7. 通过进行测试 API 调用来测试令牌

4.2 授予权限

当浏览器打开时:

  1. 选择您的 Google 账户(必须是您添加的测试用户)
  2. 查看请求的权限
    • 查看和管理您的 Google Apps Script 项目
    • 查看您的脚本执行和指标
    • 访问您的脚本部署
  3. **点击“继续”**或 "允许"
  4. 您应该看到:“OAuth 设置成功完成!”

4.3 验证令牌存储

设置过程安全地存储了令牌:

  • Windows:Windows 凭证管理器
  • macOS:Keychain Access
  • Linux:Secret Service API(GNOME Keyring/KDE Wallet)

第五步:测试您的设置

5.1 测试 MCP 服务器

npm start

您应该看到如下输出:

Google Apps Script MCP 服务器正在 stdio 上运行
OAuth 令牌加载成功
服务器准备好处理 MCP 请求

5.2 使用可用命令测试

# 列出所有可用工具
npm run list-tools

# 测试 OAuth 连接
npm run test-oauth

# 启用调试日志
npm run debug

🛠️ 可用工具

此 MCP 服务器提供了 16 个综合工具,用于 Google Apps Script 管理:

项目管理工具

1. script-projects-create

目的:创建一个新的 Google Apps Script 项目 参数

  • title(必需):新脚本项目的标题
  • parentId(可选):父项目的 ID

示例用法:创建一个自动化任务的脚本

// 创建:"我的自动化脚本"项目
{
  "title": "我的自动化脚本",
  "parentId": "1234567890"
}

2. script-projects-get

目的:获取 Google Apps Script 项目的元数据 参数

  • scriptId(必需):要检索的脚本项目的 ID
  • fields(可选):响应中要包含的具体字段
  • alt(可选):响应的数据格式(默认:'json')

示例用法:检索项目信息

// 获取脚本 ID 的项目详情
{
  "scriptId": "1ABC123def456GHI789jkl"
}

3. script-projects-get-content

目的:获取 Google Apps Script 项目的部分内容 参数

  • scriptId(必需):脚本项目的 ID
  • versionNumber(可选):要检索的具体版本号

返回什么:项目中的完整源代码和文件 示例用法:下载脚本源代码以备份或分析

4. script-projects-update-content

目的:更新 Google Apps Script 项目的部分内容 参数

  • scriptId(必需):要更新的脚本项目的 ID
  • files(必需):包含名称、类型和源的文件对象数组

示例用法:将代码更改部署到您的脚本项目

版本管理工具

5. script-projects-versions-create

目的:创建 Google Apps Script 项目的版本 参数

  • scriptId(必需):脚本项目的 ID
  • description(必需):新版本的描述

示例用法:为部署创建版本快照

{
  "scriptId": "1ABC123def456GHI789jkl",
  "description": "添加了电子邮件通知功能"
}

6. script-projects-versions-get

目的:获取特定脚本版本的详细信息 参数

  • scriptId(必需):脚本项目的 ID
  • versionNumber(必需):要检索的版本号

7. script-projects-versions-list

目的:列出脚本项目的全部版本 参数

  • scriptId(必需):脚本项目的 ID
  • pageSize(可选):每页的版本数量
  • pageToken(可选):分页标记

部署管理工具

8. script-projects-deployments-create

目的:创建 Google Apps Script 项目的部署 参数

  • scriptId(必需):要部署的脚本 ID
  • versionNumber(必需):要部署的版本号
  • manifestFileName(必需):清单文件的名称
  • description(必需):部署的描述

示例用法:将您的脚本部署为 Web 应用程序或 API 可执行文件

{
  "scriptId": "1ABC123def456GHI789jkl",
  "versionNumber": 3,
  "manifestFileName": "appsscript.json",
  "description": "生产部署 v1.2"
}

9. script-projects-deployments-get

目的:获取特定部署的详细信息 参数

  • scriptId(必需):脚本项目的 ID
  • deploymentId(必需):部署的 ID

10. script-projects-deployments-list

目的:列出脚本项目的全部部署 参数

  • scriptId(必需):脚本项目的 ID
  • pageSize(可选):每页的部署数量

11. script-projects-deployments-update

目的:更新现有的部署 参数

  • scriptId(必需):脚本项目的 ID
  • deploymentId(必需):要更新的部署的 ID
  • deploymentConfig(必需):新的部署配置

12. script-projects-deployments-delete

目的:删除部署 参数

  • scriptId(必需):脚本项目的 ID
  • deploymentId(必需):要删除的部署的 ID

执行和监控工具

13. script-scripts-run

目的:执行 Google Apps Script 函数 参数

  • scriptId(必需):要运行的脚本 ID
  • 其他参数取决于要执行的函数

示例用法:远程触发脚本执行 注意:脚本必须已部署,并且您必须具有执行权限

14. script-processes-list

目的:列出脚本项目的执行过程 参数

  • scriptId(必需):脚本项目的 ID
  • pageSize(可选):每页的过程数量
  • pageToken(可选):分页标记
  • statuses(可选):按过程状态过滤
  • types(可选):按过程类型过滤
  • functionName(可选):按函数名称过滤
  • startTime(可选):按开始时间过滤
  • endTime(可选):按结束时间过滤

显示什么:运行、已完成和失败的脚本执行

15. script-processes-list-script-processes

目的:列出脚本过程的替代方法,具有额外的过滤选项 参数:类似于 script-processes-list,具有增强的过滤选项

16. script-projects-get-metrics

目的:获取脚本项目的执行指标和分析数据 参数

  • scriptId(必需):脚本项目的 ID
  • deploymentId(必需):部署的 ID
  • metricsGranularity(必需):指标数据的粒度
  • fields(必需):要检索的具体指标字段

提供什么

  • 执行次数
  • 错误率
  • 性能指标
  • 使用分析

工具类别总结

类别工具目的
项目管理create, get, get-content, update-content管理脚本项目和源代码
版本控制versions-create, versions-get, versions-list处理脚本版本
部署deployments-create, deployments-get, deployments-list, deployments-update, deployments-delete管理脚本部署
执行scripts-run执行脚本函数
监控processes-list, get-metrics监控执行和性能

常见用例

开发工作流程

  1. 使用 script-projects-create 创建新项目
  2. 使用 script-projects-update-content 上传代码
  3. 使用 script-projects-versions-create 创建稳定版本
  4. 使用 script-projects-deployments-create 部署到生产

监控和调试

  1. 使用 script-processes-list 查看执行历史
  2. 使用 script-projects-get-metrics 分析性能
  3. 使用 script-projects-get-content 备份源代码

生产管理