作者: 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 的无缝交互:

观看 Google Apps Script MCP Server 的操作演示 - 通过 VS Code AI Agent 创建项目、管理部署和执行脚本。
开始之前,请确保您拥有:
git clone https://github.com/mohalmah/google-apps-script-mcp-server.git
cd google-apps-script-mcp-server
npm install
请参阅下面的详细 OAuth 设置指南。
npm run setup-oauth
npm start
克隆仓库:
git clone https://github.com/mohalmah/google-apps-script-mcp-server.git
cd google-apps-script-mcp-server
安装依赖项:
npm install
对于 Google Apps Script API:
配置范围(可选但推荐):
https://www.googleapis.com/auth/script.projectshttps://www.googleapis.com/auth/script.projects.readonlyhttps://www.googleapis.com/auth/script.deploymentshttps://www.googleapis.com/auth/script.deployments.readonlyhttps://www.googleapis.com/auth/script.metricshttps-//www.googleapis.com/auth/script.processes添加测试用户(针对外部应用):
http://localhost:3001/oauth/callback
1234567890-abcdefghijklmnop.apps.googleusercontent.comGOCSPX-abcdefghijklmnopqrstuvwxyz在项目根目录创建一个 .env 文件:
# 在 Windows 上
type nul > .env
# 在 macOS/Linux 上
touch .env
编辑 .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 为您的客户端 IDyour_client_secret_here 为您的客户端密钥执行 OAuth 设置脚本:
npm run setup-oauth
这会做些什么:
http://localhost:3001 启动一个临时本地服务器当浏览器打开时:
设置过程安全地存储了令牌:
npm start
您应该看到如下输出:
Google Apps Script MCP 服务器正在 stdio 上运行
OAuth 令牌加载成功
服务器准备好处理 MCP 请求
# 列出所有可用工具
npm run list-tools
# 测试 OAuth 连接
npm run test-oauth
# 启用调试日志
npm run debug
此 MCP 服务器提供了 16 个综合工具,用于 Google Apps Script 管理:
script-projects-create目的:创建一个新的 Google Apps Script 项目 参数:
title(必需):新脚本项目的标题parentId(可选):父项目的 ID示例用法:创建一个自动化任务的脚本
// 创建:"我的自动化脚本"项目
{
"title": "我的自动化脚本",
"parentId": "1234567890"
}
script-projects-get目的:获取 Google Apps Script 项目的元数据 参数:
scriptId(必需):要检索的脚本项目的 IDfields(可选):响应中要包含的具体字段alt(可选):响应的数据格式(默认:'json')示例用法:检索项目信息
// 获取脚本 ID 的项目详情
{
"scriptId": "1ABC123def456GHI789jkl"
}
script-projects-get-content目的:获取 Google Apps Script 项目的部分内容 参数:
scriptId(必需):脚本项目的 IDversionNumber(可选):要检索的具体版本号返回什么:项目中的完整源代码和文件 示例用法:下载脚本源代码以备份或分析
script-projects-update-content目的:更新 Google Apps Script 项目的部分内容 参数:
scriptId(必需):要更新的脚本项目的 IDfiles(必需):包含名称、类型和源的文件对象数组示例用法:将代码更改部署到您的脚本项目
script-projects-versions-create目的:创建 Google Apps Script 项目的版本 参数:
scriptId(必需):脚本项目的 IDdescription(必需):新版本的描述示例用法:为部署创建版本快照
{
"scriptId": "1ABC123def456GHI789jkl",
"description": "添加了电子邮件通知功能"
}
script-projects-versions-get目的:获取特定脚本版本的详细信息 参数:
scriptId(必需):脚本项目的 IDversionNumber(必需):要检索的版本号script-projects-versions-list目的:列出脚本项目的全部版本 参数:
scriptId(必需):脚本项目的 IDpageSize(可选):每页的版本数量pageToken(可选):分页标记script-projects-deployments-create目的:创建 Google Apps Script 项目的部署 参数:
scriptId(必需):要部署的脚本 IDversionNumber(必需):要部署的版本号manifestFileName(必需):清单文件的名称description(必需):部署的描述示例用法:将您的脚本部署为 Web 应用程序或 API 可执行文件
{
"scriptId": "1ABC123def456GHI789jkl",
"versionNumber": 3,
"manifestFileName": "appsscript.json",
"description": "生产部署 v1.2"
}
script-projects-deployments-get目的:获取特定部署的详细信息 参数:
scriptId(必需):脚本项目的 IDdeploymentId(必需):部署的 IDscript-projects-deployments-list目的:列出脚本项目的全部部署 参数:
scriptId(必需):脚本项目的 IDpageSize(可选):每页的部署数量script-projects-deployments-update目的:更新现有的部署 参数:
scriptId(必需):脚本项目的 IDdeploymentId(必需):要更新的部署的 IDdeploymentConfig(必需):新的部署配置script-projects-deployments-delete目的:删除部署 参数:
scriptId(必需):脚本项目的 IDdeploymentId(必需):要删除的部署的 IDscript-scripts-run目的:执行 Google Apps Script 函数 参数:
scriptId(必需):要运行的脚本 ID示例用法:远程触发脚本执行 注意:脚本必须已部署,并且您必须具有执行权限
script-processes-list目的:列出脚本项目的执行过程 参数:
scriptId(必需):脚本项目的 IDpageSize(可选):每页的过程数量pageToken(可选):分页标记statuses(可选):按过程状态过滤types(可选):按过程类型过滤functionName(可选):按函数名称过滤startTime(可选):按开始时间过滤endTime(可选):按结束时间过滤显示什么:运行、已完成和失败的脚本执行
script-processes-list-script-processes目的:列出脚本过程的替代方法,具有额外的过滤选项
参数:类似于 script-processes-list,具有增强的过滤选项
script-projects-get-metrics目的:获取脚本项目的执行指标和分析数据 参数:
scriptId(必需):脚本项目的 IDdeploymentId(必需):部署的 IDmetricsGranularity(必需):指标数据的粒度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 | 监控执行和性能 |
开发工作流程:
script-projects-create 创建新项目script-projects-update-content 上传代码script-projects-versions-create 创建稳定版本script-projects-deployments-create 部署到生产监控和调试:
script-processes-list 查看执行历史script-projects-get-metrics 分析性能script-projects-get-content 备份源代码生产管理