项目简介
本项目是用于演示如何在Google Apps Script (GAS) 环境中实现 Model Context Protocol (MCP) 服务器的示例代码。它展示了GAS脚本如何作为一个后端服务,接收来自LLM客户端的标准化 JSON-RPC 请求,并根据请求提供预设的上下文信息(资源)或执行定义好的外部功能(工具)。此示例旨在帮助开发者理解MCP协议如何在无服务器或自定义环境中落地。
主要功能点
该示例MCP服务器实现了MCP协议的基本交互模式:
- 能力声明 (Capabilities): 当客户端连接时,服务器能声明自己支持哪些资源和工具。
- 资源读取 (Read Resource): 响应客户端获取特定资源数据的请求。示例中包含一个简单的资源。
- 工具调用 (Invoke Tool): 响应客户端执行特定工具的请求。示例中包含一个简单的工具('sayHelloTool')。
- JSON-RPC 支持: 通过标准化的 JSON-RPC 格式进行请求和响应。
安装步骤
由于这是一个Google Apps Script项目,其“安装”过程不同于传统应用:
- 创建一个新的Google Apps Script项目(或将示例代码添加到现有项目)。
- 将示例 'Code.gs' 文件中的代码复制到您的GAS项目中。
- 根据需要,您可能需要部署该脚本。如果计划通过命令行工具(如 'ggsrun')以 StdIO 方式运行,确保脚本可以通过该工具执行特定函数。如果计划通过 WebHook 或其他方式,则可能需要部署为 Web 应用或其他可执行类型。
服务器配置 (供MCP客户端使用)
MCP客户端需要配置如何连接和启动此服务器。具体的配置信息取决于您部署GAS脚本的方式以及客户端支持的连接协议(Stdio, SSE, WebSocket等)。如果通过支持 StdIO 的命令行工具(如 'ggsrun')启动,客户端的配置文件(通常为 JSON 格式)大致如下。请根据您实际使用的启动工具及其文档填写准确的 'command' 和 'args' 信息。
{ "server name": "您的MCP服务器名称", // 例如:"My GAS MCP Server" "command": "/path/to/your/script_runner", // 运行Google Apps Script的命令行工具路径 "args": [ "arg1", // 启动工具所需的参数列表 "arg2" // 例如,Google Apps Script的项目ID、要执行的函数名等 // 具体参数请参考您使用的工具文档 ] }
- 'server name': 在客户端界面中显示的服务名称。
- 'command': 客户端用于启动MCP服务器进程的本地可执行文件路径。
- 'args': 传递给 'command' 的命令行参数数组,用于指定要运行的GAS脚本及执行方式。
基本使用方法
在客户端配置并连接成功后,客户端将通过 MCP 协议与您的 GAS 脚本进行通信。
- 客户端首先会发送 'mcp.capabilities' 请求,获取服务器支持的功能列表。
- 根据返回的能力,客户端可以发送 'mcp.readResource' 请求来获取服务器提供的上下文数据。
- 客户端也可以发送 'mcp.invokeTool' 请求来调用服务器上注册的工具函数,并传递所需的参数。
您的GAS脚本将在接收到这些 JSON-RPC 请求后执行相应的处理逻辑并返回结果。
信息
分类
AI与计算