mcpField
M
MCP iCal Server

MCP iCal Server

本地服务
github.com/kristofferv98AI 与智能体379 周前更新

关于 MCP iCal Server

面向 macOS 日历管理的 MCP 服务,通过 OpenAI Agent SDK 将自然语言请求交给专用日历 Agent 处理。它以单一工具入口提供事件管理,并在会话内保留上下文。

主要功能

  1. 01单一工具入口调用日历 Agent
  2. 02自然语言创建和更新事件
  3. 03查询日程与空闲时段
  4. 04支持提醒和重复事件
  5. 05查看并选择日历

适用场景

  1. 01用自然语言安排带地点和提醒的会议
  2. 02查询下周日程或可用时间
  3. 03更改事件时间、日历或备注

MCP 相关

向 MCP 客户端公开单一工具 `send_to_calendar_agent`,由 OpenAI Agent SDK 构建的日历 Agent 处理请求并调用日历操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP iCal Server

🗓️ 由 Agent 驱动的 macOS 日历管理

MIT License Python 3.12+ MCP Compatible

本项目基于 Omar-V2/mcp-ical,并采用基于 Agent 的方法重新实现了用户交互层。

🌟 概述

使用专用 AI Agent,改变你与 macOS 日历的交互方式!此 MCP iCal 服务借助 OpenAI Agent SDK,为所有日历操作提供一个强大的统一入口。

与公开多个工具的传统 MCP 实现不同,此服务采用基于 Agent 的方法:

  • 🧠 单一工具接口:仅需一个 MCP 工具(send_to_calendar_agent),即可将请求交由专用日历 Agent 处理
  • 🤖 有状态对话:Agent 会在同一会话的请求之间保留上下文
  • 🔄 零配置运行:专用 Agent 会自动处理自然语言
You: "What's my schedule for next week?"
Claude: "Let me check that for you..."
[Calendar agent processes request and returns clean schedule]

You: "Add a lunch meeting with Sarah tomorrow at noon"
Claude: "Event created: Lunch with Sarah, tomorrow at 12:00 PM"

✨ 功能

📅 创建事件

即时将自然语言转换为日历事件!

"Schedule a team lunch next Thursday at 1 PM at Bistro Garden"
↓
📎 Created: Team Lunch
   📅 Thursday, 1:00 PM
   📍 Bistro Garden
支持的功能:
  • 选择自定义日历
  • 设置地点和备注
  • 智能提醒
  • 循环事件
高级用户示例:
🔄 Recurring Events:
"Set up my weekly team sync every Monday at 9 AM with a 15-minute reminder"

📝 Detailed Events:
"Schedule a product review meeting tomorrow from 2-4 PM in the Engineering calendar, 
add notes about reviewing Q1 metrics, and remind me 1 hour before"

📱 Multi-Calendar Support:
"Add a dentist appointment to my Personal calendar for next Wednesday at 3 PM"
🔍 智能日程管理与可用时间查询

通过自然语言查询,快速查看日程:

"What's on my calendar for next week?"
↓
📊 Shows your upcoming events with smart formatting

"When am I free to schedule a 2-hour meeting next Tuesday?"
↓
🕒 Available time slots found:
   • Tuesday 10:00 AM - 12:00 PM
   • Tuesday 2:00 PM - 4:00 PM
✏️ 智能更新事件

轻松修改事件:

"Move tomorrow's team meeting to 3 PM instead"
↓
✨ Meeting rescheduled to 3:00 PM
更新功能:
  • 修改时间和日期
  • 转移日历
  • 更新地点
  • 添加备注
  • 调整提醒
  • 更改循环模式
📊 日历管理
  • 查看所有可用日历
  • 智能推荐日历
  • 配置 iCloud 后,无缝集成 Google Calendar

💡 专业提示:你可以在自定义日历中创建事件。如果 Google Calendar 已与 iCloud 日历同步,就可以使用此 MCP 服务在 Google Calendar 中创建事件!创建或更新事件时,只需指定 Google Calendar 即可。

🚀 快速开始

💡 注意:以下说明重点介绍如何将 MCP 服务与 Claude for Desktop 搭配使用,但此服务也可用于任何兼容 MCP 的客户端。有关使用其他客户端的详细信息,请参阅 MCP 文档。

前置条件
安装

此 MCP 服务可用于任何兼容 MCP 的客户端,但以下说明适用于 Claude for desktop。

  1. 克隆并设置
# Clone the repository
git clone https://github.com/yourusername/mcp-ical.git
cd mcp-ical

# Install dependencies
uv sync
  1. 使用 API 密钥配置 Claude for Desktop

创建或编辑 ~/Library/Application\ Support/Claude/claude_desktop_config.json,并将 OpenAI API 密钥作为环境变量添加:

{
    "mcpServers": {
        "mcp-ical": {
            "command": "uv",
            "args": [
                "--directory",
                "/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-ical",
                "run",
                "mcp-ical"
            ],
            "env": {
                "OPENAI_API_KEY": "your-api-key-here"
            }
        }
    }
}
  1. 启动 Claude 以访问日历

⚠️ 重要提示:必须从终端启动 Claude,才能正确请求日历权限。直接从 Finder 启动不会触发权限提示。

/Applications/Claude.app/Contents/MacOS/Claude
  1. 开始使用!
Try: "What's my schedule looking like for next week?"

🔑 注意:首次使用日历相关命令时,macOS 会提示授予日历访问权限。只有按照上述说明从终端启动 Claude 后,才会显示此提示。

🧪 测试

⚠️ 警告:测试会创建临时日历和事件。虽然会自动清理,但请仅在开发环境中运行测试。

# Install dev dependencies
uv sync --dev

# Run test suite
uv run pytest tests

🧠 工作原理

此实现采用了独特的架构:

  1. 向客户端公开一个 MCP 工具(send_to_calendar_agent)
  2. 调用该工具时,它会将请求传递给一个使用 OpenAI Agent SDK 构建的专用日历 Agent
  3. 该 Agent 处理自然语言请求,并调用相应的日历操作
  4. 格式化结果并返回给客户端

这种方法有以下几个优点:

  • 简化客户端集成:只需调用一个工具
  • 改进上下文处理:Agent 会维护对话状态
  • 交互更自然:专用 Agent 能够理解特定于日历的术语和意图

❓ 此项目与原项目的区别

此实现保留了 Omar-V2/mcp-ical 的大部分核心日历功能,但完全重新实现了用户交互层:

  1. 单一入口:我们没有直接向客户端公开多个 MCP 工具,而是实现了一个单一入口,由它委托给 OpenAI 驱动的 Agent
  2. 基于 Agent 的处理:添加了一个 OpenAI Agent,用于理解自然语言并将其转换为日历操作
  3. 有状态的对话:添加了请求之间的对话上下文跟踪,以便在同一会话中使用
  4. 简化客户端集成:客户端只需了解一个工具,而不必了解多个日历操作

核心日历操作(创建事件、列出事件等)和 macOS 集成与原始实现基本保持不变。

🐛 已知问题

重复事件
  • 非标准的重复日程可能无法始终正确设置
  • 使用能力更强的大模型可获得更好的结果
  • 全天重复事件的提醒时间可能会偏差一天

🤝 贡献

欢迎反馈和贡献!以下是你可以提供帮助的方式:

  1. Fork 此仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到该分支
  5. 创建 Pull Request

📝 许可证

此项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

📝 致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。