gcal mcp
通过Dedalus MCP框架使用OAuth2承载令牌身份验证的Google Calendar MCP服务器。
工具
日历
gcal_list_calendars-列出用户可访问的所有日历gcal_get_calendar-获取特定日历的详细信息gcal_create_calendar-创建辅助日历gcal_delete_calendar-删除辅助日历gcal_clear_calendar-清除日历(删除所有事件)gcal_patch_calendar-补丁日历元数据gcal_update_calendar-更新日历元数据(完全替换)
日历列表
gcal_calendarlist_get-获取日历列表条目gcal_calendarlist_insert-将现有日历插入用户的日历列表gcal_calendarlist_delete-从用户的日历列表中删除日历gcal_calendarlist_patch-修补日历列表条目gcal_calendarlist_update-更新日历列表条目(完全替换)
事件
gcal_list_events-列出日历中的事件gcal_get_event-按ID获取特定事件gcal_search_events-按文本查询搜索事件gcal_get_event_instances-获取重复事件的实例gcal_create_event-创建事件gcal_delete_event-删除事件gcal_patch_event-修补事件(部分更新)gcal_update_event-更新事件(完全替换)gcal_quick_add_event-从文本字符串快速添加事件gcal_move_event-将事件移动到另一个日历gcal_import_event-导入事件(创建私有副本)
忙/闲
gcal_get_freebusy-查询日历的忙/闲信息
设置
gcal_get_settings-获取用户的日历设置gcal_get_setting-获取特定的日历设置
颜色
gcal_get_colors-获取可用的日历和活动颜色
手表(Webhooks)
gcal_channels_stop-停止观看频道gcal_events_watch-关注活动资源的变化gcal_calendarlist_watch-关注CalendarList资源的更改gcal_settings_watch-关注设置资源的更改
______________________________________________________________________
对于MCP用户
如果你想使用此部分 呼叫 通过Dedalus SDK从您自己的应用程序访问gcal-mcp服务器。
先决条件
- Dedalus API密钥(
dsk-live-*或dsk-test-*) - 这
dedalus-labsPython SDK:pip install dedalus-labs
快速开始
看 src/_client.py 对于完整的工作示例。
OAuth流
- 您的第一个请求提出
AuthenticationError带着一个connect_url - 在浏览器中打开URL以授权Google日历访问
- 授权后,重试请求——凭据现在已存储
- 后续请求无需重新授权即可工作
______________________________________________________________________
面向MCP开发人员
如果你想使用此部分 构建、修改或部署 像这样的谷歌日历MCP服务器。
项目结构
src/
main.py # Entrypoint — loads .env and starts the server
server.py # MCPServer setup (port 8080, streamable HTTP)
gcal.py # All 29 Google Calendar tools + API connection
_client.py # Example client with OAuth browser flow先决条件
- 谷歌云项目 随着 日历API 启用
- OAuth 2.0凭据 --在中创建“Web应用程序”客户端 谷歌云控制台 并下载客户端密钥JSON
- Dedalus API密钥 (
dsk-live-*或dsk-test-*) - 紫外线 包管理器
环境变量
复制 .env.example 并填写您的值:
cp .env.example .envOAuth配置 (来自您的Google客户端机密JSON):
OAUTH_ENABLED=true
OAUTH_AUTHORIZE_URL=https://accounts.google.com/o/oauth2/auth
OAUTH_TOKEN_URL=https://oauth2.googleapis.com/token
OAUTH_CLIENT_ID=.apps.googleusercontent.com
OAUTH_CLIENT_SECRET=GOCSPX-
OAUTH_SCOPES_AVAILABLE=https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/calendar.events
OAUTH_BASE_URL=https://www.googleapis.com/calendar/v3Dedalus平台:
DEDALUS_API_KEY=dsk-live-...
DEDALUS_API_URL=https://api.dedaluslabs.ai
DEDALUS_AS_URL=https://as.dedaluslabs.ai添加新工具
- 在中定义异步函数
gcal.py随着@tool装饰师: - 将其添加到
gcal_tools列表在底部gcal.py
本地运行
cd gcal-mcp
uv sync
uv run python src/main.py服务器启动于 端口8080 并暴露 /mcp 通过可流式传输的HTTP。
