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