日历AI集成服务

morgen-mcp是一个将Morgen日历与MCP兼容的AI客户端连接的服务,通过获取用户日历事件并整合到日记中,生成个性化的日记记录。

  • by batoorsayed
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 batoorsayed/morgen-mcp

使用说明

早晨MCP

连接您的MCP服务器 明天 日历到任何兼容MCP的AI客户端。


想法

日历应用程序为您提供了一天的技术框架;你做了什么,什么时候做的。物理日志捕捉到了它的感觉。这个工具介于两者之间。

morgen-mcp 将您的Morgen时间表作为AI客户端可以调用的工具公开。在一天结束的时候,开始一段对话:人工智能会获取你的事件,阅读你现有的笔记以了解背景,问你几个简短的问题,并写一些读起来像真实日记而不是会议日志的东西。

搭配 mcp黑曜岩 该条目直接出现在您的黑曜石日报中。没有额外的订阅,没有额外的API密钥。适用于您已经使用的任何AI客户端。


运作原理

morgen-mcp 是一个 MCP(模型上下文协议) 服务器。它公开了3个工具:

工具 说明
get_events 在所选日历中获取给定日期的事件
list_accounts 列出已连接的Morgen帐户及其ID
list_calendars 列出帐户下的日历

AI客户端调用这些工具来获取您的日程安排。写日记条目并保存取决于客户端和您连接的任何其他MCP工具。


需求


设置

git clone https://github.com/batoorsayed/morgen-mcp
cd morgen-mcp
uv sync

1.获取Morgen API密钥

首选 platform.morgen.so >开发人员>API密钥。

2.配置环境

cp .env.example .env
# Add your API key to .env

然后运行此命令获取您的帐户ID,并准备粘贴env行:

uv run morgen-mcp --list-accounts

它将打印类似以下内容:

Accounts:
  abc123def456  Your Name  [icloud]
  xyz789ghi012  Your Name  [google]
  ...

Add to your .env:
  MORGEN_ACCOUNT_ID=abc123def456,xyz789ghi012,...

它还会打印一个建议的CLAUDE.md代码段,您可以将其粘贴到项目说明中。

将env行复制到您的 .env。仅包括您想要其事件的帐户。请参阅 费率限制 注意如下。

3.向您的MCP客户注册

克劳德代码 :从克隆的目录中运行此命令:

claude mcp add --scope user morgen-mcp -- uv --directory $(pwd) run morgen-mcp

跑一次。适用于所有项目。凭据从以下位置提取 .env 自动。

其他客户 (Claude Desktop、Cursor、Windsurf等):添加到客户端的MCP配置文件中,替换 /path/to/morgen-mcp 带有克隆的实际路径。大多数客户都在扩张 $VAR 来自shell环境的引用。如果没有,请直接粘贴实际值。

{
  "mcpServers": {
    "morgen-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/morgen-mcp", "run", "morgen-mcp"],
      "env": {
        "MORGEN_API_KEY": "$MORGEN_API_KEY",
        "MORGEN_ACCOUNT_ID": "$MORGEN_ACCOUNT_ID"
      }
    }
  }
}

用法

只需与您的AI客户端对话:

"Write my diary entry for today"
"What did I have on my calendar yesterday?"
"Summarize my week"

一天的结束仪式

在一天结束的时候,打开你的人工智能客户端,说这样的话 “写今天的日记”.从那里:

  1. AI通过以下方式获取您当天的活动 get_events
  2. 它检查今天的黑曜石日报(YYYY-MM-DD.md)存在,如果不存在,则创建它
  3. 它读取你的晨间笔记和你标记的任何最近的笔记,以丰富上下文
  4. 它会问你2-3个简短的问题:日历无法告诉你的事情(什么很难,什么让你惊讶,什么值得记住)
  5. 它写一个个人日记条目,并将其附加在 ### End of Day 标题

此工作流程需要morgen mcp(日历)和 mcp黑曜岩 (注释)连接到您的客户。morgen-mcp只处理事件获取。AI使用MCP和下面的系统提示来协调其余部分。鸣谢 盆景 对于mcp黑曜石。

系统提示:将此添加到客户的项目说明中:

When I ask for a diary entry:
1. Fetch my Morgen events for that day using get_events
2. Check if today's Obsidian daily note (YYYY-MM-DD.md) exists — if not, create it
3. Read today's note and any notes I've flagged as important from the past few days
4. Ask me 2-3 short questions to capture what the calendar doesn't show
5. Write a personal diary entry — human, not a bullet list — weaving the events and my answers together
6. Append it to my daily note under a "### End of Day" heading

输出示例

### End of Day

Morning focus block finally broke the deadlock on the data layer —
that one took longer than it should have but shipping it felt like
putting down something heavy. Three back-to-back meetings killed the
afternoon momentum. The kind of day where you do more than it felt like.

费率限制

摩根API允许每15分钟窗口100分。每 /list 通话(日历、活动)费用为10分。

get_events 为每个配置的帐户获取一个日历和一个事件。有6个账户,即70分,还剩30分。对于每天使用几次的日记工具来说,这很好,但要避免快速连续地调用它。

如果你打429,请等待几分钟,然后重试。


隐私

事件数据从Morgen获取并传递给您的AI客户端进行处理。没有数据被存储或发送到其他任何地方。您的AI客户端自己的隐私政策适用于它如何处理这些数据。


贡献

小工具,开门。欢迎公关——保持简单。


许可证

麻省理工学院