mcpField
C
calendar-mcp

calendar-mcp

本地服务
github.com/adalbertdb生产力173 周前更新

关于 calendar-mcp

calendar-mcp 是使用 Java 和 Quarkus 构建的 Google Calendar MCP 服务,目前仍在开发中。它通过 Google OAuth 凭据支持创建事件及多种删除操作。

主要功能

  1. 01创建 Google Calendar 事件
  2. 02删除事件
  3. 03按搜索文本或日期范围删除事件
  4. 04删除重复事件或清空所有事件
  5. 05使用 Google OAuth 进行身份验证

适用场景

  1. 01通过 MCP 客户端创建事件
  2. 02按文本匹配或日期删除事件
  3. 03删除重复事件或清空日历

MCP 相关

Quarkus 服务通过 MCP over SSE 与 MCP 客户端通信,并提供 Google Calendar 事件操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

挑战 3 - 使用客户端和服务端实现 MCP 协议

选项 A - 完整开发协议(客户端和服务端)

目录

· 要求
· 配置
· 项目结构
· 说明
· 技术说明
· 注意事项

要求

  • Java 17 或更高版本
  • Maven
  • Docker
  • Quarkus
  • Google 账号
  • Google Calendar API
  • Google Cloud Console 项目凭据
  • MCP 客户端

配置

  1. 克隆仓库
  2. 在 Google Cloud 中创建项目:https://console.cloud.google.com/welcome?inv=1&invt=AbzSaw&project=light-sunup-461210-i1,点击 my first proyect,然后创建新项目。
  3. 在项目中,依次点击 APIS y servicios -> Biblioteca -> Google Calendar API -> Habilitar。
  4. 前往:APIs y servicios -> Credenciales -> Crear credenciales -> Crear ID de cliente OAuth -> Configurar pantalla de consentimiento -> Crear cliente。
  5. 下载 JSON 并将其复制到 Resources 文件夹中。
  6. 编译:mvn clean install。
  7. 运行服务端:jbang target/calendar-mcp-1.0.0-SNAPSHOT-runner.jar

项目结构

src/
├── main/
│   ├── java/
│   │   └── org.acme/
│   │       ├── GoogleAuthService.java    # Manejo de OAuth2 con Google
│   │       ├── GoogleCalendarConfig.java # Cliente Calendar configurado
│   │       └── tools/
│   │           └── DeleteEvent.java      # Comandos para borrar eventos
│   └── resources/
│       └── credentials.json              # Clave de acceso OAuth

说明

pom.xml Maven 项目的核心配置文件。 声明这是一个 Quarkus 项目,并包含 REST 和 Google API 客户端的依赖项。

具体来说,该依赖项:

<dependency>
    <groupId>io.quarkiverse.mcp</groupId>
    <artifactId>quarkus-mcp-server-sse</artifactId>
    <version>1.2.0</version>
</dependency>

通过 MCP 持续维持客户端与服务端之间的通信,

Quarkus 服务端
  • GoogleAuthService:导入 Google OAuth、JSON 和 Jakarta 包,以兼容 Quarkus 环境。 常量 JSON_FACTORY 和 SCOPES 包含用于访问日历的凭据和权限。

    authorize() 方法:

    1. 读取凭据并执行授权流程。
    2. 定义用户的身份验证方式;在此示例中,"setAccessType("offline")" 可允许重新访问而无需再次验证,并将令牌保存在名为 "tokens" 的目录中。
    3. 在本地启动服务端,并通过 HTTP 在端口 8888 上打开浏览器。
    4. 授权用户;用户登录后,凭据将被保存。
  • GoogleCalendarConfig:用作依赖注入配置,注入一个负责使用 Google 进行 OAuth2 身份验证的依赖项

@Inject
GoogleAuthService authService;

calendarService() 类允许服务创建事件、访问日历……而无需持续进行身份验证。

工具
  • CreateEvent:在用户的 Google 日历中创建新事件。定义一个 REST 端点(POST 类型的 URL),该端点接收包含事件信息的 JSON。
  • DeleteEvent:删除用户 Google 日历中已有的事件。
    • deleteEventsByQuery():删除与搜索文本匹配的事件。
    • deleteEventsByDateRange():删除两个日期之间发生的所有事件。
    • deleteRecurringEvent():按 eventId 或 instanceDate 删除事件。
    • clearAllEvents():删除所有事件

技术说明

  • 令牌存储在 tokens/ 中,以支持“offline”访问。

注意事项

  • 删除事件不可撤销。
  • 请确保拥有日历的适当权限。
  • 请勿分享 credentials.json 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。