Token导航 LogoToken导航TokenDH.com
MCP Calendar Agent logo
AI代理未说明官方级别未说明来源级核验

MCP Calendar Agent

MCP Server

一款基于AI的日历代理,通过实时天气检查自动安排户外活动到Google日历。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
AI代理C#日程管理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

SaleemAlsalehUAE

提供方

SaleemAlsalehUAE

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🧠 MCP日历代理

在谷歌日历中预订活动之前,使用AI代理检查真实天气状况 模型上下文协议(MCP)语义内核.

🚀 它做什么\ 1.️⃣ 检测用户何时想要安排户外活动\ 2.️⃣ 调用真实的天气MCP服务器(AccuWeather支持)\ 3.️⃣ 决定户外活动是否可行\ 4.️⃣ 自动创建真正的Google日历事件

______________________________________________________________________

🔧 技术栈

技术
LLMAzure OpenAI(gpt-4o/gpt-4o-agent)
代理微软语义内核
工具MCP天气服务器+自定义日历插件
天气APIAccuWeather(通过MCP)
日历Google日历API(OAuth 2.0)
运行时。NET 8 C#控制台应用程序

______________________________________________________________________

🧩 运作原理

代理逻辑

代理遵循以下工作流程 户外活动:

  1. 询问用户 城市+国家
  2. 呼叫 weather-get_hourly 具有该位置的MCP工具
  3. 如果下雨、下雪或低于10°C→ 建议a 联机会议
  4. 否则→ 创建户外活动 Google 日历
  5. 在创建事件之前,始终与用户确认详细信息

气象MCP工具

  • 使用MCP兼容的天气服务器(通过 npx @timlukahorstmann/mcp-weather)
  • 返回给定位置的实时小时天气预报
  • 代理使用此预测来决定事件是否可行

谷歌日历集成

  • 使用OAuth(首次运行时打开浏览器窗口)
  • 在用户的 主要的,重要的 Google 日历
  • 使用适当的IANA时区(例如。, Asia/Damascus, America/New_York)

______________________________________________________________________

📂 项目结构

mcp-calendar-agent/
├─ McpAgentApp.sln
├─ .gitignore
└─ McpAgentApp/
   ├─ Program.cs               → Agent bootstrapping & chat loop
   ├─ GoogleCalendarPlugin.cs  → Google Calendar event creation
   ├─ WeatherPlugin.cs         → Example custom weather plugin (optional)
   └─ McpAgentApp.csproj
注意:类似文件 credentials.json, secrets.json,令牌文件为 仅限本地 并被故意排除在外 .gitignore.

______________________________________________________________________

🔐 安全与秘密

此存储库旨在 默认安全:

  • 回购中未存储API密钥或OAuth机密
  • .gitignore 不包括:

- credentials.json (谷歌OAuth客户端机密) - secrets.json / *.secrets.json - TokenResponse*.json 以及其他令牌文件

  • GitHub秘密扫描/推送保护已启用并已验证

您必须配置机密 本地 在运行代理之前。

______________________________________________________________________

🛠 先决条件

  • 已安装.NET 8 SDK
  • Azure OpenAI资源(gpt-4o或类似部署)
  • MCP Weather服务器使用的AccuWeather(或兼容的)API密钥
  • 启用日历API和 credentials.json 下载

______________________________________________________________________

⚙️ 本地配置

1.️⃣ 用户机密(推荐)

内部 McpAgentApp,初始化并设置用户机密:

dotnet user-secrets init
dotnet user-secrets set "AzureOpenAI:Endpoint" "https://YOUR-RESOURCE.openai.azure.com/"
dotnet user-secrets set "AzureOpenAI:ApiKey"   "YOUR_AZURE_OPENAI_KEY"
dotnet user-secrets set "AzureOpenAI:DeploymentName" "gpt-4o-agent"

dotnet user-secrets set "AccuWeather:ApiKey" "YOUR_ACCUWEATHER_KEY"

这些值被读入 Program.cs 通过 ConfigurationBuilder().AddUserSecrets ().

2.️⃣ Google OAuth凭据

  • 转到谷歌云控制台
  • 启用 谷歌日历API
  • 创建OAuth客户端凭据(桌面应用程序)
  • 下载 credentials.json
  • 将其放置在应用程序运行的位置旁边(例如,在 McpAgentApp 文件夹)

提交 credentials.json。它被忽略了 .gitignore.

______________________________________________________________________

▶️ 运行代理

从解决方案根:

dotnet restore
dotnet run --project McpAgentApp

您应该看到类似以下内容:

Custom GoogleCalendarPlugin loaded.
Connecting to Weather MCP Server...
Loaded 2 tools from Weather MCP Server.
------------------------------------------
Agent ready. Ask me to schedule an outdoor event.

现在,您可以与代理人交谈:

You: Please schedule an outdoor football meeting for tomorrow at 5pm.
Agent: Certainly. What is the city and state/country for the weather check?

You: Damascus, Syria

此时,代理人:

  • 调用天气MCP工具(weather-get_hourly)
  • 评估预测
  • 决定活动是否可行
  • 请求确认
  • 在正确的时区创建Google日历事件(Asia/Damascus 在这个例子中)

______________________________________________________________________

🧪 示例会话(大马士革演示)

You: Please schedule an outdoor football meeting for tomorrow at 5pm.
Agent: Certainly. What is the city and state/country for the weather check?

You: Damascus, Syria
Agent: (calls weather-get_hourly via MCP)
Agent: The weather in Damascus, Syria tomorrow at 5 PM will be around 17°C and sunny, which is suitable for an outdoor football meeting.

Agent: I will schedule the event with the following details:
       - Title: Outdoor Football Meeting
       - Date: 
       - Time: 5 PM–6 PM
       - Location: Damascus, Syria
       - Time Zone: Asia/Damascus
       Is this correct?

You: Yes, create it.
Agent: (calls CreateEventAsync via GoogleCalendarPlugin)
Agent: The outdoor football meeting has been successfully scheduled.
       You can view and manage it at: https://www.google.com/calendar/event?eid=...

查看谷歌日历,您将看到在正确的当地时间创建的活动。

______________________________________________________________________

🔌 使用的MCP工具

气象MCP工具

  • 工具名称: weather-get_hourly
  • 目的:返回给定地点的每小时预测,以便代理可以对户外活动做出决策

谷歌日历插件

  • 方法: CreateEventAsync(summary, startTime, endTime, location, description, timeZone)
  • 目的:在经过身份验证的用户的主Google日历中创建事件

这两个工具都是通过语义内核的工具调用行为自动调用的。

______________________________________________________________________

🎥 演示(领英)

该项目的简短演示视频将在领英上分享,显示:

  • 使用MCP工具调用的控制台输出
  • 代理推理(天气→ 决定→ 日历)
  • Google日历中的结果事件

______________________________________________________________________

🌱 未来的增强功能

  • 添加Outlook日历支持作为Google日历的替代方案
  • 添加基于位置的自然语言时区检测
  • 添加对重复事件的支持(每周站立、培训等)
  • 添加更多MCP工具(地图、位置、提醒、通知)

______________________________________________________________________

📬 作者

萨利姆·阿勒萨利赫\ AI/MCP/。NET/语义内核\ github: SaleemAlsalehUAE\ 领英: SaleemAlsalehUAE

______________________________________________________________________

⭐ 支持

如果这个项目帮助或激励你构建自己的MCP工具:

  • ⭐ 为存储库添加星号
  • 📨 分享LinkedIn演示
  • 🛠️ 用想法或扩展打开一个问题或公关

这个项目是一个实用的、现实世界的例子 使用MCP工具在现实世界中行动的代理,而不仅仅是回答问题。

目录标签

目录标签

AI代理C#日程管理本地部署天气集成日历管理自动化调度户外活动

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP