项目简介

本项目是用于演示如何在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项目,其“安装”过程不同于传统应用:

  1. 创建一个新的Google Apps Script项目(或将示例代码添加到现有项目)。
  2. 将示例 'Code.gs' 文件中的代码复制到您的GAS项目中。
  3. 根据需要,您可能需要部署该脚本。如果计划通过命令行工具(如 '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与计算