Ditto MCP 服务器集合(Google Workspace 实现)

使用说明

项目简介

  • 该仓库实现了一个可运行的 MCP 服务器框架,核心通过 Model Context Protocol(MCP)实现与客户端的 JSON-RPC 通信,使用 SSE(Server-Sent Events)作为传输,提供本地化的资源、工具注册与执行能力,并集成 Google Workspace 相关的各项服务(Gmail、日历、Docs、Sheets、Drive),以及 Google Home 的 Assistant 指令能力。

主要功能点

  • MCP 服务器核心能力
    • 通过 SSE 端点与 Ditto 客户端进行 JSON-RPC 形式的请求/应答。
    • 支持注册和执行工具(Tools),返回统一格式的内容或错误信息。
    • 会话管理、能力声明与状态上报,提供可扩展的后端上下文服务。
  • 多服务集成
    • Gmail、Calendar、Docs、Sheets、Drive、Google Home(Assistant gRPC 指令)等工具集成(通过 Google API 客户端实现)。
  • 本地化、可部署的服务
    • Next.js 应用结构,提供设置向导、仪表盘、OAuth 授权流程、ngrok 隧道管理、Bearer Token 认证等。
  • 安全与运维
    • Bearer 令牌鉴权、令牌和配置的本地持久化(保存在 ~/.ditto-mcp-servers/ 目录下)。
    • ngrok 隧道支持,便于在本地环境对外暴露。
  • 灵活配置
    • 通过 REST 风格路由完成 Google OAuth 授权、令牌保存、以及服务开关配置等。
    • 支持按需开启 Gmail、Calendar、Docs、Sheets、Drive、Home 等工具。

安装步骤

  • 依赖与环境
    • Node.js 20+、pnpm、ngrok 账号(用于隧道)
  • 快速安装与运行
    • 克隆仓库并进入项目目录
    • 安装依赖并启动服务器(在相应子项目中执行含有 Next.js 的 dev 流程,例如对应服务器目录下的 pnpm dev)
    • 打开 http://localhost:3100,跟随设置向导完成 Google OAuth、ngrok 配置与服务开关
  • 运行后如何对接 Ditto
    • 使用 Ditto App 的设置页面,添加 MCP 服务器
    • URL 填写格式通常为 http(s)://<ngrok-域名>/api/mcp
    • Auth 设为 Bearer,填入 Token(仪表盘生成的连接令牌)
    • “加载工具” 按钮确保工具可用,按需开启 Gmail/Calendar/Docs/Sheets/Drive/Home 等工具

服务器配置(MCP 客户端需要) 以下 JSON 配置仅用于说明 MCP 服务器的启动信息,格式用于 MCP 客户端的启动配置。请勿直接在应用源码中使用注释性代码。本示例描述了如何通过命令启动 Google Workspace 相关的 MCP 服务器。

{ "server_name": "google-workspace", "command": "pnpm", "args": ["--prefix", "./servers/google-workspace", "dev"], "notes": "在本地通过 Next.js 启动 Google Workspace MCP 服务器,请确保工作目录结构完整且服务器可访问。" }

基本使用方法

  • 在 Ditto App 中添加服务器后,确保服务器已成功启动且“加载工具”可用。
  • 通过 Ditto 客户端发送请求给 /api/mcp,通过 SSE 通道进行会话管理与消息传递。
  • 常见操作包括使用 Gmail、Calendar、Docs、Sheets、Drive 的工具来操作相应的 Google 资源,以及通过 Home 工具向 Google Assistant 发送命令。
  • 如需外部访问,需配置 ngrok 隧道并将获得的公网地址填入 Ditto 客户端的服务器 URL。
  • 服务器使用 Token 进行鉴权,初次启动后仪表盘会展示 Bearer Token,后续接入 Ditto 客户端时将该 Token 填入 Auth 字段即可。

关键词 模型上下文、资源与工具注册、SSE、Google Workspace 集成、本地后端服务

分类ID 6

服务器信息