Token导航 LogoToken导航TokenDH.com
Motion Calendar MCP logo
日程管理未说明官方级别未说明来源级核验

Motion Calendar MCP

MCP Server

为Claude Code提供完整的日历访问功能,包括事件管理、可用性检查、日程安排等。

工具数

12

提示词数

0

GitHub Stars

1

资源数

0
日程管理事件管理JavaScriptClaude自动化Claude

安装说明

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

作者 / 组织

lorecraft-io

提供方

lorecraft-io

最后核验

2026/5/17 20:20

快速接入

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

详细介绍

运动MCP

Motion MCP

Claude Code的完整日历访问权限——事件、可用性、日程安排。

Motion的公共API应该是什么,但他们选择不这样做(出于某种原因,所以我修复了它)。

](https://www.npmjs.com/package/fidgetcoding-motion-mcp) ![License: MIT](https://opensource.org/licenses/MIT) ](https://nodejs.org) ![MCP Compatible](https://modelcontextprotocol.io)

______________________________________________________________________

快速导航

链接章节功能时间
自然语言示例与它对话全天复制粘贴事件、可用性、队友的提示~1分钟
为什么存在为什么运动公共API间隙和为什么存在此垫片~2min
如何比较比较与运动网络/应用程序、原始公共API、无MPCP基线~ 1分钟
安装设置将MCP连接到Claude的一个衬垫~1分钟
工具参考所有12个MCP工具——日历+任务~2分钟
用法示例参考工作流程(当前、可用性、定期、移动)~2分钟
配置设置环境变量,默认日历,时区~3分钟
故障排除参考身份验证失败、令牌过期、同步延迟~2分钟
安全参考秘密处理+披露~1分钟
项目状态Meta低维护模式+去哪里~1分钟
许可证Meta麻省理工学院--
作者Meta谁建造的-

______________________________________________________________________

自然语言示例

\[!重要\] 你说话。克劳德派遣。没有命令,没有语法,没有JSON。 安装此MCP后,您可以用简单的英语通过Claude驱动您的运动日历。Claude选择工具,填写参数,并在对话中交回结果。
"What's on my calendar today?"
"Am I free Thursday afternoon? Find me any 45-minute gaps between 1pm and 5pm."
"Create a 30-minute meeting called 'Team Sync' tomorrow at 2pm with teammate@example.com."
"Move my 3pm call to 4pm, same day."
"Cancel the standup on Friday."
"Search my calendar for anything about onboarding this month."
"Is Sarah busy Wednesday morning? Pull her events between 9am and noon."
"List all my teammates so I know whose availability I can check."
"Show me every all-day event this week — out of office, holidays, deadlines."
"Force a sync with Google Calendar, I just added something over there and want it to show up here."

上述每一项都成为了幕后的工具调用。你永远不需要知道是什么工具。你永远不必建造有效载荷。你只需说出句子。

↑ back to top

______________________________________________________________________

为什么存在

我曾长期是Motion的付费用户。然后我试图通过MCP将Motion与Claude联系起来,并意识到我每年要支付约228美元购买一个没有真正智能工具的日历——至少不是我可以交给代理人的工具。所以我建造了这个。

Motion自称是AI优先的日历。营销承诺日程智能、自动重新安排、队友协调。在Motion网络应用程序中,大部分内容实际上都在那里。问题出在公共API上。

运动的公共API有一个值得尊敬的表面 任务和项目 --27个端点,涵盖创建、列表、更新、工作区、自定义字段、状态、重复任务。如果你只想“让克劳德添加一个运动任务”,你可以在一个下午将其与文档联系起来。其他几个运动MCP已经存在。内置的Motion MCP可以做到这一点。 @rf-d/motion-mcp 这样做。 h3ro-dev/motion-mcp-server 这样做。

他们都不能碰日历事件。运动自己的公共API也不能。

对于日历显示的产品 *是* 产品,这是一个显著的差距。您可以创建任务。您可以设置其优先级。您可以更新其状态。您无法读取、创建、更新或删除任务应登录的日历上的单个事件。您也无法检查可用性、列出队友、查询忙/闲、搜索事件、提取全天项目或管理连接的日历。代理每天实际需要运行的每个表面都被锁定在内部API后面。

Motion本身也没有官方的Motion MCP服务器。如果有一个并且它干净地暴露了日历端点,我就不会写这个了。我等待着,定期检查,最终接受了它不会来的事实。

因此,这个MCP通过做Motion web应用程序所做的事情来填补空白:它通过Firebase(与Motion前端使用的身份验证流相同)进行身份验证,并与 internal.usemotion.com这为Claude提供了完整的日历界面——事件CRUD、可用性、搜索、队友事件、全天事件、同步触发器、日历管理。有一些额外的设置,因为你必须从浏览器的IndexedDB中提取Firebase刷新令牌,但一旦连接好,它就可以工作了。

运动是一种好产品。自动调度程序很周到,UI很精致,他们的团队显然很关心。您可以在以下网址注册 usemotion.com。但对我个人来说,每年支付228美元购买一个无法由代理人驱动的日历是一件很难的事,而缺乏官方的MCP最终将我推下了平台。如果Motion发布一个覆盖这一表面的第一方MCP,我会非常高兴——老实说,这个回购可能会在他们这样做的那天退役。

在那之前,这就是这里。

↑ back to top

______________________________________________________________________

如何比较

能力🟢 Motion MCP(此回购)运动网络/应用程序原始运动公共API未集成
克劳德的完整事件CRUD🟢 ✅ 是手册(GUI)❌ 否❌ 没有
可用性/忙/闲检查🟢 ✅ 是✅ 仅视觉❌ 否❌ 没有
队友事件可见性🟢 ✅ 是✅ 是❌ 否❌ 没有
重复事件(创建/读取)🟢 ✅ 是 (通过 create_event)✅ 是❌ 否❌ 没有
全天活动查询🟢 ✅ 是✅ 是❌ 否❌ 没有
按文本搜索事件🟢 ✅ 是✅ 是❌ 否❌ 没有
日历管理(启用/禁用)🟢 ✅ 是✅ 是❌ 否❌ 没有
列出已连接的日历🟢 ✅ 是✅ 是❌ 否❌ 没有
同步触发器(Google/Outlook)🟢 ✅ 是✅ 是❌ 否❌ 没有
任务读取(公共API)🟢 ✅ 是✅ 是✅ 是❌ 没有
自动调度集成🟢 ✅ 作品 (您创建的事件尊重Motion的引擎)✅ 是部分(仅任务)❌ 没有
一个命令安装🟢 ✅ 是 (claude mcp add motion -- npx -y fidgetcoding-motion-mcp)N/AN/AN/A
适用于原始Motion订阅🟢 ✅ 是 (标准运动计划,无需额外层)✅ 是✅ 是不适用
开源/MIT🟢 ✅ 是❌ 专有不适用不适用

权衡是诚实的:这个MCP需要一些额外的设置步骤,因为它以Motion自己的web应用程序的方式进行身份验证(Firebase刷新令牌+从浏览器的IndexedDB中提取的用户ID)。作为交换,您将获得其他所有集成都被锁定的日历表面。

↑ back to top

______________________________________________________________________

安装

一个命令:

claude mcp add motion -- npx -y fidgetcoding-motion-mcp

然后配置凭据(请参阅 配置)并重新启动克劳德代码。

如果您更愿意在Claude MCP配置中内联设置所有内容,请跳到 配置 对于JSON形状。

↑ back to top

______________________________________________________________________

工具

日历工具(内部API)

名称功能关键参数
list_calendars列出连接到您的Motion帐户的每个日历——姓名、ID、源电子邮件、启用状态。*(无)*
list_events获取包含完整详细信息(标题、时间、与会者、位置、会议链接、重复)的日期范围内的事件。start, end, calendar_ids?
search_events按标题和描述的文本查询搜索事件。query, start?, end?
create_event创建一个包含标题、时间、描述、地点和与会者的活动。如果没有传递ID,则默认为您的主日历。组织者、状态、可见性和时区会自动填写。支持重复。title, start, end, calendar_id?, description?, location?, attendees?, recurrence?
update_event修改现有事件——标题、时间、描述、位置。event_id, title?, start?, end?, description?, location?
delete_event按ID删除事件event_id
check_availability查找所有日历中的开放时间段。扫描工作时间(默认为工作日上午9点至下午6点),并返回至少给定持续时间的间隔。start, end, duration_minutes, working_hours?
get_teammate_events根据队友的用户ID,在给定的日期范围内拉取队友的活动。可用于“Sarah周三上午有空吗?”user_ids, start, end
get_allday_events单独列出全天事件(OOO、假期、截止日期),并可选择日历过滤start, end, calendar_id?
sync_calendars强制Motion和您连接的提供商(Google、Outlook)之间进行同步。在外部添加事件时很有用。*(无)*
manage_calendars在您的Motion帐户中启用或禁用特定日历。calendar_id, enabled

任务工具(公共API)

名称功能关键参数
get_tasks列出具有可选状态筛选的任务(TODO, IN_PROGRESS, COMPLETED).status?
为什么只有一个任务工具? 内置的Motion MCP和几个社区MCP已经很好地服务了完整的Motion任务界面(创建、更新、项目、重复、自定义字段)。此回购有意关注其他MCP无法填补的日历空白。 get_tasks 包含在内,因此您不需要第二个MCP来读取日历旁边的任务状态。

↑ back to top

______________________________________________________________________

用法示例

工作的例子——你说什么,克劳德做什么,什么回来。

示例1--“今天我的日历上有什么?”

你: *“今天我的日历上有什么?”*

克劳德来电: list_eventsstart =今天00:00和 end =在您配置的时区中为今天23:59。

结果: Claude总结了当天的谈话内容:会议标题、时间、与会者和任何会议链接。没有电子表格。没有JSON转储。只是概述。

______________________________________________________________________

例2--“我星期四下午有45分钟的时间吗?”

你: *“我星期四下午有空吗?我需要在下午1点到5点之间停留45分钟。”*

克劳德来电: check_availabilitystart =星期四13:00, end =星期四17:00, duration_minutes = 45.

结果: Claude返回满足持续时间要求的开放间隙,例如。, *“你下午1:30-3:15和4:15-5:00有空。两个时段适合45分钟。”* 如果什么都不合适,它会直接这么说。

______________________________________________________________________

示例3——“创建一个每周1:1的循环。”

你: *“创建一个30分钟的1:1teammate@example.com从下周二开始,每周二下午2点,称为“每周1:1”。"*

克劳德来电: create_event 标题、开始/结束在您的时区, attendees: ["teammate@example.com"],以及每周重复规则。

结果: 活动在您的主日历上创建,邀请火灾,Motion的自动调度器尊重固定时间。Claude确认事件ID和首次发生。

______________________________________________________________________

示例4——“将我的下午3点改为下午4点。”

你: *“把我今天下午3点的会议改到下午4点。”*

克劳德来电: list_events 找到下午3点的活动,然后 update_event 随着新 startend.

结果: 活动已移动,Motion会重新通知与会者,Claude确认了新的时间。如果下午3点有多个活动,克劳德会在移动任何东西之前问是哪一个。

↑ back to top

______________________________________________________________________

配置

此MCP需要四个凭据。运动API键很简单。另外三个需要从浏览器中提取值——这是到达Motion日历端点的代价,这些端点仅通过其内部身份验证流公开。

环境变量

变量必填描述
MOTION_API_KEY您的运动API键来自 设置→ API 在Motion web应用程序中。
FIREBASE_API_KEY从浏览器中提取的Firebase API密钥(从 AIza).请参阅下面的步骤2。
FIREBASE_REFRESH_TOKEN来自IndexedDB的Firebase刷新令牌。请参阅下面的步骤2。
MOTION_USER_ID您的Motion用户ID。请参阅下面的步骤3。
MOTION_TIMEZONEIANA时区(默认: America/New_York).用于事件标头和新事件默认值。将其设置为匹配 你的 locale——默认值只是默认值。

步骤1-获取你的运动API密钥

  1. 打开 app.usemotion.com.
  2. 首选 设置→ API.
  3. 生成或复制API密钥。

步骤2--获取Firebase凭据

内部API通过Firebase进行身份验证。您需要两个值:一个Firebase API密钥和一个刷新令牌。

  1. 打开 app.usemotion.com 在Chrome(或任何带有DevTools的Chromium浏览器)中。
  2. 打开DevTools(Cmd+Option+I 在Mac上, Ctrl+Shift+I 在Windows/Linux上)。
  3. 首选 应用→ 索引数据库→ firebaseLocalStorageDbfirebaseLocalStorage.
  4. 单击表中的条目。下面显示了一个JSON对象。
  5. 找到 value → stsTokenManager → refreshToken --复制整个字符串。这是你的 FIREBASE_REFRESH_TOKEN.
  6. 对于 FIREBASE_API_KEY:打开 网络 选项卡,查找任何请求 googleapis.com,并复制的值 key= 查询参数(以开头 AIza).

步骤3--获取您的运动用户ID

您的用户ID在步骤2中的相同IndexedDB条目中可见——请查找 uid 现场。它是一串字母和数字(例如。, abc123def456...).

或者,检查任何 internal.usemotion.com “网络”选项卡中的请求 userId 场出现在其中的许多。

步骤4——设置默认日历(可选但推荐)

create_event 当没有时,默认为您的主运动日历 calendar_id 已通过。“Primary”是Motion标记为默认帐户的任何帐户,它没有硬编码到特定的电子邮件中。如果您有多个连接的日历,并希望Claude将新事件路由到特定日历,请致电 list_calendars 一次获取ID并将其显式传递给 create_event,或者让克劳德在会议上记住它。

第五步——把它连接到克劳德身上

将凭据放入 .env 项目根目录下的文件:

MOTION_API_KEY=your_motion_api_key_here
FIREBASE_API_KEY=your_firebase_api_key_here
FIREBASE_REFRESH_TOKEN=your_firebase_refresh_token_here
MOTION_USER_ID=your_motion_user_id_here
MOTION_TIMEZONE=America/New_York

…或通过您的Claude MCP配置传递它们:

{
  "mcpServers": {
    "motion": {
      "command": "npx",
      "args": ["-y", "fidgetcoding-motion-mcp"],
      "env": {
        "MOTION_API_KEY": "your_motion_api_key_here",
        "FIREBASE_API_KEY": "your_firebase_api_key_here",
        "FIREBASE_REFRESH_TOKEN": "your_firebase_refresh_token_here",
        "MOTION_USER_ID": "your_motion_user_id_here",
        "MOTION_TIMEZONE": "America/New_York"
      }
    }
  }
}

在任一选项之后重新启动Claude Code。

↑ back to top

______________________________________________________________________

故障排除

“身份验证失败”或“刷新令牌无效”。 Firebase刷新令牌在需要重新发行之前大约持续6个月。使用上述步骤2从浏览器中重新提取刷新令牌。Firebase API密钥本身没有过期。

“找不到用户ID”或日历调用返回空值。 你的 MOTION_USER_ID 可能已经过时或输入错误。从与刷新令牌相同的IndexedDB条目中重新提取它,并确保没有空格潜入。

速率限制错误。 动议 公共 API强制执行严格的速率限制(每分钟大约12个请求)。这 内部的 API更慷慨,因为它针对网络应用程序的交互式使用进行了调整,但它并不是无限的。避免紧密的轮询循环和批量操作。如果你打了429,后退一分钟,然后重试。

create_event 成功,但事件未出现在Google/Outlook中。 Motion按照自己的时间表同步出站。如果您刚刚创建了事件并希望立即推送,请致电 sync_calendars 或者请克劳德 *“强制运动同步。”*

Firebase网络选项卡显示否 googleapis.com 请求。 刷新 app.usemotion.com 在该选项卡中,新页面加载总是至少触发一个Firebase身份验证请求 key= 参数将在该调用中可见。

你看到了 firebaseLocalStorageDb 但是JSON结构看起来不同。 Motion偶尔会更新其前端。重要领域包括 refreshToken (下面某个地方 value)以及 uid。如果路径发生变化,请grep JSON——即使嵌套发生变化,值本身也是稳定的。

↑ back to top

______________________________________________________________________

安全

您的Firebase刷新令牌和Motion API密钥一起授予对您的Motion帐户的完全访问权限-日历、事件、任务。将它们视为密码:

  • 承诺你的 .env 文件到版本控制。包括 .gitignore 排除它,但要验证。
  • 将任一凭据粘贴到共享聊天、问题或屏幕截图中。
  • 从旋转运动API键 设置→ API 如果你怀疑它已经泄露了。要使Firebase刷新令牌无效,请退出所有Motion浏览器会话。

完整的政策和负责任的披露联系人:请参阅 安全.md.

↑ back to top

______________________________________________________________________

许可证

麻省理工学院——见 许可证 了解详情。

↑ back to top

______________________________________________________________________

项目状态

注意——低维护模式。 我自己也停止使用Motion,所以我不再积极构建这个MCP了。它仍然有效,我把它留给任何仍然在Motion上想要代理日历访问的人。但更新将是零星的,我可能无法跟上动态API的变化。 我积极维护的MCP是 早晨MCP --相同的哲学,不同的日历。如果你正在评估日历,并且足够灵活,可以切换,那么Morgen+Morgen mcp就是我登陆的地方。

如果Motion附带了带有日历界面的第一方MCP,我将在本自述文件的顶部链接它,然后走开。

↑ back to top

______________________________________________________________________

作者

建造于 内特·达维多维奇 / Lorecraft.

↑ back to top

安全:gitleaks预提交钩子

此回购随附 .gitleaks.toml config和用于本地的单行安装程序 预提交挂钩,用于扫描分段内容以查找机密(GitHub令牌、API密钥、JWT、, 等等)在每次提交之前。

bash scripts/install-pre-commit-hook.sh

钩子跑了 gitleaks protect --staged 以及包含秘密的块提交。 对于紧急情况,您可以绕过 git commit --no-verify --但不要绕过 真正的秘密。请改用env变量或秘密管理器。

如果gitleaks尚未安装:

  • macOS: brew install gitleaks
  • Linux:https://github.com/gitleaks/gitleaks/releases

目录标签

目录标签

日程管理事件管理JavaScriptClaude自动化日历管理本地部署日程安排自动化工具

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP