日历事件管理API

Google Calendar API的MCP服务器,支持基于参与者域名的权限控制,防止外部参与者修改或删除事件。

  • by shivaduke28
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 shivaduke28/google-calendar-mcp

使用说明

谷歌日历mcp

谷歌Calendar API的MCP(Model Context Protocol)服务器。

通过基于参与者所属域的权限控制,可以在服务器端阻止包含外部参与者的事件的更改和删除。

工具

工具|说明| |---|---| | get-current-time 获取当前日期和时间 | list-events 获取一个或多个日历的事件列表(TOON格式) | create-event |创建日历事件(可指定来宾)| | update-event 更新日历事件(可更改来宾) | delete-event |删除日历事件|

list-events 的响应 香椿 格式导出文件时,将会显示此对话框。

设置

1.GCP项目准备

  1. Google 云控制台 在中创建项目
  2. 启用谷歌日历API
  3. 设置“授权”屏幕
  4. 创建OAuth2.0客户端ID(桌面应用程序)
  5. 下载认证信息的JSON文件→ credentials.json 保存为

2.使用方法

npx(推奨)

{
  "mcpServers": {
    "google-calendar": {
      "command": "npx",
      "args": ["-y", "@shivaduke28/google-calendar-mcp"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/credentials.json",
        "GOOGLE_OAUTH_TOKENS": "/path/to/tokens.json",
        "GOOGLE_CALENDAR_PERMISSIONS": "/path/to/permissions.json"
      }
    }
  }
}

从源运行

npm install
npm run build
{
  "mcpServers": {
    "google-calendar": {
      "command": "node",
      "args": ["/path/to/google-calendar-mcp/dist/index.js"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/credentials.json",
        "GOOGLE_OAUTH_TOKENS": "/path/to/tokens.json"
      }
    }
  }
}

3.环境变数

变数 必须 说明
GOOGLE_OAUTH_CREDENTIALS 是:客户机凭据的JSON文件路径
GOOGLE_OAUTH_TOKENS 是_用户令牌的目标路径。首次认证时自动生成
GOOGLE_CALENDAR_PERMISSIONS |否|权限设置文件路径。未指定时使用默认设置

4.认证

首次启动时浏览器打开,要求用谷歌账户进行认证。认证后,令牌 GOOGLE_OAUTH_TOKENS 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

权限

在权限设置文件中,根据操作类型和参与者条件 allow / deny 中所述修改相应参数的值。

GOOGLE_CALENDAR_PERMISSIONS 缺少支持的问题

{
  "internalDomain": "",
  "permissions": {
    "read": { "self_only": "allow", "internal": "allow", "external": "allow" },
    "create": { "self_only": "allow", "internal": "allow", "external": "deny" },
    "update": { "self_only": "allow", "internal": "allow", "external": "deny" },
    "delete": { "self_only": "allow", "internal": "allow", "external": "deny" }
  }
}

参与者条件

对于每个操作,根据参加者的条件 allow / deny 的双曲正切值。

条件 説明
self_only |参加者只有自己(或没有参加者)|
internal 所有其他参与者 internalDomain 属于,属于
external internalDomain 包括外部参与者

发展

npm install
npm run dev          # tsx で開発実行
npm run build        # tsc でビルド
npm run typecheck    # 型チェック

许可证

国际学生委员会