Focusmate MCP服务器
MCP(模型上下文协议)服务器,使Claude能够预订、取消和查询Focusmate责任会话。
特性
- 预订会议 -为特定日期和时间安排Focusmate会议
- 取消会话 -按ID取消现有会话
- 列出会话 -查询日期范围内即将举行和过去的会话
- 交互式身份验证 -基于浏览器的安全登录,具有cookie持久性
安装
# Clone the repository
git clone https://github.com/goodgravy/focusmate-mcp.git
cd focusmate-mcp
# Install dependencies
npm install
# Build
npm run build
# Install Playwright browsers
npx playwright install chromium配置
克劳德桌面
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"focusmate": {
"command": "node",
"args": ["/path/to/focusmate-mcp/build/index.js"]
}
}
}替换 /path/to/focusmate-mcp 安装的实际路径。
API密钥(用于list_sessions)
要使用 list_sessions 工具,您需要Focusmate API密钥:
- 首选 焦点设置
- 滚动到API部分并生成API密钥
- 创建配置文件:
mkdir -p ~/.focusmate-mcp
echo '{"apiKey": "your-api-key-here"}' > ~/.focusmate-mcp/config.json
chmod 600 ~/.focusmate-mcp/config.json用法
初始身份验证
在预订或取消会议之前,请向Focusmate进行身份验证:
Use the focusmate_auth tool to log in这将打开一个浏览器窗口,您可以在其中登录Focusmate。登录后,您的会话将自动保存。
可用工具
focusmate_auth
打开浏览器窗口登录Focusmate。Cookie已保存以备将来使用。
参数:
force(布尔值,可选):即使存在有效Cookie,也强制重新身份验证
例子:
Authenticate with Focusmatebook_session
预订Focusmate责任会议。
参数:
startTime(字符串,必填):会话开始的ISO 8601日期时间duration(字符串,可选):会话持续时间-“25”、“50”或“75”分钟(默认值:“50”)
例子:
Book a 50-minute Focusmate session for tomorrow at 2pm注意:会议必须在15分钟的时间范围内开始(例如,14:00、14:15、14:30、14:45)。
cancel_session
取消现有的Focusmate会话。
参数:
sessionId(string,必填):要取消的会话的ID
例子:
Cancel my Focusmate session with ID abc123list_sessions
列出某个日期范围内的Focusmate会话。
参数:
startDate(字符串,必填):日期范围的开始(ISO 8601)endDate(字符串,可选):日期范围结束(默认为从startDate开始的7天)
例子:
Show my Focusmate sessions for this week错误代码
| 代码 | 含义 | 解决方案 |
|---|---|---|
AUTH_EXPIRED | 会话Cookie已过期 | 运行 focusmate_auth 重新登录 |
SLOT_UNAVAILABLE | 请求的时隙已占用 | 请选择其他时间 |
SESSION_CONFLICT | 您当时已经有一个会话 | 取消现有会话或选择其他时间 |
INVALID_TIME | 时间与有效的15分钟时段不匹配 | 请使用类似于:00、:15、:30或:45的时间 |
SESSION_NOT_FOUND | 会话ID不存在 | 请检查会话ID list_sessions |
CONFIG_ERROR | 未配置API密钥 | 将API密钥添加到 ~/.focusmate-mcp/config.json |
AUTOMATION_FAILED | 浏览器自动化错误 | 检查屏幕截图 ~/.focusmate-mcp/screenshots/ |
文件位置
- Cookie:
~/.focusmate-mcp/cookies.json - 配置:
~/.focusmate-mcp/config.json - 截图:
~/.focusmate-mcp/screenshots/
发展
# Run in development mode
npm run dev
# Run tests
npm test
# Type check
npm run lint故障排除
“身份验证已过期”错误
跑 focusmate_auth 再次登录。Focusmate会话通常在几个小时不活动后过期。
预订失败,无明显错误
检查中的屏幕截图 ~/.focusmate-mcp/screenshots/。当自动化失败时,它会捕获屏幕截图,这可以帮助诊断UI更改或意外状态。
list_sessions的“未配置API密钥”
这 list_sessions 该工具使用Focusmate的官方API,这需要一个API密钥。预订和取消操作使用浏览器自动化,只需要来自的Cookie focusmate_auth.
浏览器未打开进行身份验证
确保安装了Playwright浏览器:
npx playwright install chromium局限性
- 只读API:Focusmate的官方API仅支持读取数据。预订和取消使用浏览器自动化,如果Focusmate更改其UI,则可能会中断。
- 速率限制:API限制为每分钟100个请求。浏览器自动化自然较慢,不应该达到极限。
- 会话持续时间:仅支持25、50和75分钟的会话(Focusmate的标准选项)。
许可证
麻省理工学院
