关于 MCPApp
MCPApp 是一个基于 Google Apps Script(GAS)实现的 MCP 库,可用于构建 MCP 服务端与客户端。README 提供了示例 curl 命令,便于测试 initialize、tools/list、prompts/list 和 tools/call 等方法。项目说明中提到其已与 GASADK 集成。
主要功能
- 01基于 Google Apps Script 构建 MCP 服务
- 02支持 initialize、tools/list、prompts/list、tools/call 方法
- 03可选的 LockService 并发控制
- 04可将表格用于日志记录
- 05支持 BeforeTool 和 AfterTool 钩子
适用场景
- 01在 Google Apps Script 中搭建 MCP 服务供 Gemini CLI 调用
- 02使用 GAS 构建 MCP 客户端或 MCP 网络
- 03通过表格记录 MCP 消息日志以便调试
MCP 相关
MCPApp 在 GAS 中实现 MCP 服务端,向 Gemini CLI 等 MCP 客户端暴露工具和提示词,同时也可用于构建 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCPApp
🚀 特别公告:已集成 GASADK!
MCPApp 现已获得全面支持,可直接通过 GASADK(Google Apps Script Agent Development Kit)使用。GASADK 提供了全面的框架,可用于构建强大的多 Agent 系统,并在 Google Apps Script 中无缝使用 MCP 工具。
👉 前往 GitHub 查看 GASADK,助力您的开发!
概述
Model Context Protocol (MCP) 是一项新兴标准,旨在充当通用适配器,让 AI 应用能够与外部系统和数据源无缝、安全地连接。MCP 的核心目的是为 AI 模型请求和接收上下文相关信息提供标准化方法,这对于执行复杂任务至关重要。
本仓库介绍了两个方向:
用于测试 MCP 服务的 curl 示例命令
初始化
curl -L "<YOUR_MCP_SERVER_URL>" -d '{"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"sample-mcp-client","version":"0.0.0"}},"jsonrpc":"2.0","id":0}'
tools/list
curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
prompts/list
curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":1,"method":"prompts/list","params":{}}'
tools/call
curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"<TOOL_NAME>","arguments":{<ARGUMENTS_FOR_TOOL>}}}'
许可证
作者
更新历史
-
v1.0.0(May 8, 2025)
- 首次发布。
-
v1.0.1(May 9, 2025)
- 修复了日志记录中的一个错误。
-
v1.0.2(May 29, 2025)
- 从 v1.0.2 开始,提供了 LockService,以便将 MCPApp 用作库。
-
v2.0.0(June 12, 2025)
- 从 v2.0.0 开始,可使用 Google Apps Script 构建 MCP 客户端和 MCP 服务。
-
v2.0.1(June 18, 2025)
- 修复了一个错误。
-
v2.0.2(June 19, 2025)
- 修复了一个错误。
-
v2.0.3(July 1, 2025)
- 修复了一个错误。
-
v2.0.4(July 2, 2025)
- 修复了一个错误。
-
v2.0.5(July 31, 2025)
- 修复了一个错误。
-
v2.0.6(August 1, 2025)
- 更新了 "prompts/get" 方法。
-
v2.0.7(August 6, 2025)
- 从 v2.0.7 开始,现在可以选择启用或禁用 LockService。
- 默认情况下,此库运行时会启用 LockService。若要禁用它,只需将
return new MCPApp.mcpApp({ accessKey: "sample" })修改为return new MCPApp.mcpApp({ accessKey: "sample", lock: false })。 - 禁用 LockService(
lock: false)后,来自 Gemini CLI 等客户端的异步请求可能会更快处理。但请注意,并发请求数不得超过 30。请谨慎使用此选项。
-
v2.0.8(August 6, 2025)
- 修复了一个错误。
-
v2.0.10(May 9, 2026)
- 重构了 MCPApp。
-
v2.0.11(May 9, 2026)
- 修复了一个错误。
-
v2.1.0(May 10, 2026)
- 修复了一个错误。
-
v2.1.1(May 12, 2026)
- 修复了一个错误。
-
v2.1.2(May 12, 2026)
- 已修改
-
v2.1.7(May 15, 2026)
- 修复了多个错误。
-
v2.2.0(May 19, 2026)
- 可使用
const mcpServers = ["mcp-url-1", { "mcp-server-name": { "httpUrl": "https://mcp-url-2", "headers": { "key": "value" } } }]来使用 MCP 服务。
- 可使用
-
v2.3.0(June 10, 2026)
- 添加了多渠道工作表日志记录。指定电子表格 ID 后,日志会存储在 "MCP" 工作表中;否则会使用 "log" 工作表。系统会自动创建带格式的标题
["Date", "Method", "ID", "Direction", "Message"],并在 LockService 锁定期间以线程安全的方式初始化工作表。 - 通过添加
[MCP Server Error]或[MCP Client Error]前缀增强了错误消息,便于调试。
- 添加了多渠道工作表日志记录。指定电子表格 ID 后,日志会存储在 "MCP" 工作表中;否则会使用 "log" 工作表。系统会自动创建带格式的标题
-
v2.4.0(June 24, 2026)
- 将默认模型升级为
models/gemini-3.1-flash-lite。 - 集成了
GasHookManager兼容性,以支持 MCP 服务端的 BeforeTool 和 AfterTool 钩子。
- 将默认模型升级为
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
