返回市场
议程-MCP

议程-MCP

作者:jeanlaurent2 星标更新:2025-07-30

项目介绍

从Google日历获取每日议程

一个简单的Go程序,用于获取并显示您来自Google日历的每日议程。

预备条件

该项目使用Task进行任务自动化。首先安装它:

# macOS
brew install go-task/tap/go-task

# Linux
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin

# Windows
choco install go-task

# 或通过Go安装
go install github.com/go-task/task/v3/cmd/task@latest

设置说明

1. 启用Google日历API

  1. 访问Google云控制台
  2. 创建新项目或选择现有项目
  3. 启用Google日历API:
    • 转到“API和服务”>“库”
    • 搜索“Google日历API”
    • 点击它并点击“启用”

2. 创建凭据

  1. 转到“API和服务”>“凭据”
  2. 点击“创建凭据”>“OAuth客户端ID”
  3. 如果提示,请先配置OAuth同意屏幕:
    • 选择“外部”用户类型
    • 填写所需信息(应用名称、用户支持电子邮件、开发者联系)
    • 将您的电子邮件添加到测试用户中
  4. 对于应用类型,选择“桌面应用”
  5. 给它命名(例如,“每日议程应用”)
  6. 重要:在“授权重定向URI”中添加http://localhost:8080
  7. 下载JSON文件,并将其保存为本目录下的credentials.json

3. 安装依赖项

task mod-tidy

4. 构建应用程序

task build

使用方法

该程序支持两种模式:

文本模式(显示日历议程)

显示今天的议程:

task run-text
# 或直接运行:./agenda-mcp text

显示特定日期的议程:

./agenda-mcp text 2024-12-25

日期必须以YYYY-MM-DD格式提供。如果没有提供日期,则显示今天的议程。

MCP服务器模式

task run-mcp

首次运行(认证模式):

  1. 程序会自动打开您的浏览器(如果无法打开,会显示URL)
  2. 使用您的Google账户登录
  3. 授权读取您的日历
  4. 认证将自动完成——您会看到成功页面
  5. 您的凭据将被保存以供将来使用

认证后,您可以使用task run-test来显示您的议程,或使用task run-mcp作为MCP服务器运行。

可用任务

运行task --list查看所有可用任务:

  • task build - 构建本地二进制文件
  • task clean - 清理构建工件
  • task mod-tidy - 整理和验证Go模块
  • task run-text - 在命令行中显示今天的议程
  • task run-mcp - 启动MCP服务器
  • task inspector - 运行npx MCP检查器

MCP检查器

为了调试和测试MCP服务器,您可以使用MCP检查器:

task inspector

这将在http://localhost:8080启动MCP检查器,用于测试MCP服务器功能。

替代方案:直接使用Go命令

如果您不想使用Task,可以直接运行命令:

# 安装依赖项
go mod tidy

# 直接运行模式
go run main.go text              # 显示今天的议程
go run main.go text 2024-12-25   # 显示特定日期的议程
go run main.go mcp               # 启动MCP服务器

功能

  • 📅 按时间顺序显示今天的事件
  • 🕐 显示事件时间(全天事件显示为“全天”)
  • 🎨 显示带有实际类别名称的事件颜色(专注时间、内部小组会议、外部会议、个人等)
  • 📍 如果有,显示事件地点
  • 📝 显示事件描述(截断至100个字符)
  • 👥 列出与会者及其响应状态(✅接受、❌拒绝、❓暂定、⏳待定)
  • 👁️ 显示事件可见性设置
  • ⏱️ 显示透明度设置(忙碌/空闲)
  • 🎉 当没有安排事件时显示友好消息
  • 🔌 MCP服务器:通过模型上下文协议暴露日历数据,以便与LLM应用程序集成

MCP服务器模式

当以MCP模式运行(task run-mcp)时,程序充当可以与LLM应用程序(如Claude)集成的模型上下文协议服务器,提供两个日历工具:

可用的MCP工具

  1. get_todays_agenda - 从Google日历获取今天的日程
  2. get_agenda_for_date - 获取特定日期的日程(YYYY-MM-DD格式)

MCP集成

将以下内容添加到您的MCP客户端配置中:

{
  "mcpServers": {
    "google-calendar": {
      "command": "/path/to/your/agenda-mcp",
      "args": ["mcp"],
      "env": {
        "client_id": "your-google-oauth-client-id",
        "project_id": "your-google-project-id",
        "client_secret": "your-google-oauth-client-secret"
      }
    }
  }
}

注意:将/path/to/your/agenda-m-替换为您构建的二进制文件的实际完整路径,并使用credentials.json文件中的Google OAuth凭据设置环境变量。

这允许LLM应用程序:

  • 使用get_todays_agenda工具获取您的每日Google日历日程
  • 使用get_agenda_for_date工具和日期参数(例如,“2024-12-25”)获取任何特定日期的日程

安全注意事项

  • 保持credentials.jsontoken.json私密
  • 不要将这些文件提交到版本控制系统
  • 该程序仅请求对您的日历的只读访问权限