README
🚀 Moom MCP Server
Moom MCP Server 是一个模型上下文协议(MCP)服务器,它允许你在 Claude Desktop 中通过自然语言命令,以编程方式控制 macOS 上的 Moom 窗口布局。
🚀 快速开始
Moom MCP Server 让 Claude 能够与强大的 macOS 窗口管理工具 Moom 进行交互,你可以:
- 在保存的窗口布局之间切换
- 以像素级的精度创建新的窗口排列
- 跨多个显示器控制窗口的位置和大小
- 通过对话式命令管理工作区布局
- 新增功能:集成 DisplayPlacer 以实现精确的多显示器定位
✨ 主要特性
- 🖼️ activate_layout - 立即切换到任何保存的 Moom 布局
- 💾 save_current_layout - 将当前的窗口排列保存为可重复使用的布局
- 🎯 trigger_moom_action - 执行 Moom 窗口操作(调整大小、移动、居中等等)
- 📋 show_moom_menu - 显示 Moom 弹出菜单
- 🖥️ DisplayPlacer 集成 - 像素级精确的多显示器窗口定位
- 📐 精确布局 - 基于精确坐标的窗口管理
📦 安装指南
前提条件
- macOS(10.12 或更高版本)
- 已安装并运行 Moom
- Node.js 14 或更高版本
- Claude Desktop 应用程序
- 具有辅助功能权限的终端应用程序
- 可选:DisplayPlacer,用于增强多显示器支持
安装步骤
- 克隆此仓库:
git clone https://github.com/itrimble/moom-mcp.git
cd moom-mcp
- 安装依赖项:
npm install
- 授予辅助功能权限:
- 打开 系统偏好设置 → 安全性与隐私 → 隐私 → 辅助功能
- 添加并启用终端(或你的终端应用程序)
- 添加并启用 Claude Desktop
- 添加到 Claude Desktop 配置中:
- 打开 Claude Desktop
- 导航到设置 → 开发者 → 编辑配置
- 将以下内容添加到你的
claude_desktop_config.json中:
{
"mcpServers": {
"moom": {
"command": "node",
"args": ["/absolute/path/to/moom-mcp/src/index.js"]
}
}
}
- 重启 Claude Desktop
💻 使用示例
基础用法
安装完成后,你可以在 Claude Desktop 中使用自然语言命令:
激活布局
- "切换到我的教学(Mac Mini)布局"
- "激活人工智能研究模式工作区"
- "使用我的编码布局"
- 新增:"切换到 DisplayPlacer 编码专业版布局"(像素级精确布局)
保存布局
- "将当前的窗口排列保存为 '专注模式'"
- "创建一个名为 '视频编辑' 的新布局"
窗口操作
- "放大这个窗口"(增大窗口大小)
- "将活动窗口居中"
- "将窗口向左移动"
- "用当前窗口填充屏幕"
菜单访问
- "显示 Moom 菜单"
- "打开 Moom 的布局选择器"
多显示器精确控制(新增)
- "创建一个 DisplayPlacer 编码布局"(使用精确坐标)
- "以像素级精度定位窗口"
- "针对我的 4K 显示器设置进行优化"
可用命令
| 命令 | 描述 | 示例 |
|------|------|------|
| activate_layout | 切换到保存的 Moom 布局 | { "layoutName": "Teaching (Mac Mini)" } |
| save_current_layout | 保存当前的窗口排列 | { "layoutName": "Development Setup" } |
| trigger_moom_action | 执行窗口操作 | { "action": "center" } |
| show_moom_menu | 显示 Moom 弹出菜单 | {} |
支持的窗口操作
grow- 增大窗口大小shrink- 减小窗口大小move-left- 将窗口向左移动move-right- 将窗口向右移动move-up- 将窗口向上移动move-down- 将窗口向下移动center- 将窗口在屏幕上居中fill-screen- 最大化窗口
📚 详细文档
DisplayPlacer 集成
服务器现在使用 DisplayPlacer 提供了高级多显示器支持:
优点
- 像素级精确定位:使用精确的显示器坐标
- 多显示器感知:进行正确的原点计算
- 4K 显示器优化:考虑缩放因素
- 高刷新率支持(120Hz 以上)
- 负坐标处理:适用于左侧位置的显示器
增强布局
- DisplayPlacer 编码专业版:专为开发设计的精确布局
- 终极多显示器专业版:充分利用所有显示器
安装(可选)
brew install jakehilborn/jakehilborn/displayplacer
项目结构
moom-mcp/
├── src/
│ ├── index.js # 主 MCP 服务器实现
│ └── displayplacer-layouts.js # DisplayPlacer 集成模块
├── examples.md # 使用示例和工作流程
├── test.js # 基本功能测试
├── test-ui.js # UI 自动化测试
├── validate.js # 配置验证
├── demo.js # 功能演示
├── package.json # Node.js 配置
├── LICENSE # MIT 许可证
└── README.md # 本文件
开发
测试
运行测试套件:
npm test # 基本测试
npm run test-ui # UI 自动化测试
npm run validate # 验证配置
调试
- 检查 Moom 是否正在运行:
pgrep -x Moom
- 验证是否已授予辅助功能权限
- 运行验证脚本:
npm run validate
故障排除
"访问 Moom 菜单时出错"
- 确保 Moom 正在运行
- 验证终端和 Claude Desktop 的辅助功能权限
- 检查 Moom 的菜单栏图标是否可见
布局无法激活
- 布局名称区分大小写
- 验证 Moom 偏好设置中的准确布局名称
- 布局名称中的特殊字符可能需要转义
MCP 未在 Claude 中加载
- 在配置更改后重启 Claude Desktop
- 检查配置文件路径是否为绝对路径
- 验证 Node.js 是否在你的环境变量 PATH 中
📄 许可证
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
作者
Ian Trimble - GitHub
致谢
- Many Tricks 开发了 Moom
- Anthropic 提供了模型上下文协议
- MCP 社区提供了灵感和示例
Scan to join WeChat group