一个简单的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
http://localhost:8080credentials.jsontask mod-tidy
task build
该程序支持两种模式:
显示今天的议程:
task run-text
# 或直接运行:./agenda-mcp text
显示特定日期的议程:
./agenda-mcp text 2024-12-25
日期必须以YYYY-MM-DD格式提供。如果没有提供日期,则显示今天的议程。
task run-mcp
首次运行(认证模式):
认证后,您可以使用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检查器:
task inspector
这将在http://localhost:8080启动MCP检查器,用于测试MCP服务器功能。
如果您不想使用Task,可以直接运行命令:
# 安装依赖项
go mod tidy
# 直接运行模式
go run main.go text # 显示今天的议程
go run main.go text 2024-12-25 # 显示特定日期的议程
go run main.go mcp # 启动MCP服务器
当以MCP模式运行(task run-mcp)时,程序充当可以与LLM应用程序(如Claude)集成的模型上下文协议服务器,提供两个日历工具:
get_todays_agenda - 从Google日历获取今天的日程get_agenda_for_date - 获取特定日期的日程(YYYY-MM-DD格式)将以下内容添加到您的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.json和token.json私密