窗口布局管理服务

一个通过自然语言命令控制macOS窗口布局的MCP服务器,支持Moom窗口管理和DisplayPlacer多显示器精确布局。

  • by itrimble
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 itrimble/moom-mcp

使用说明

Moom MCP服务器

一种模型上下文协议(MCP)服务器,支持对 行星环卫星 通过Claude Desktop中的自然语言命令在macOS上设置窗口布局。

概述

此MCP服务器允许Claude与强大的macOS窗口管理工具Moom交互,使您能够:

  • 在已保存的窗口布局之间切换
  • 以像素完美的精度创建新的窗口排列
  • 控制多个监视器上的窗口定位和大小
  • 通过对话式命令管理您的工作空间布局
  • 新:DisplayPlacer集成,实现精确的多显示器定位

特性

  • 🖼️ activate_layout -立即切换到任何已保存的Moom布局
  • 💾 save_current_layout -将当前窗口排列另存为可重复使用的布局
  • 🎯 trigger_moom_action -执行Moom窗口操作(调整大小、移动、居中等)
  • 📋 show_moom_menu -显示Moom弹出菜单
  • 🖥️ DisplayPlacer集成 -像素完美的多显示器窗口定位
  • 📐 精确布局 -基于精确坐标的窗口管理

先决条件

安装

  1. 克隆此存储库:

    git clone https://github.com/itrimble/moom-mcp.git
    cd moom-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 授予访问权限:

    • 打开 系统首选项 → 安全与隐私 → 隐私 → 无障碍
    • 添加并启用终端(或您的终端应用程序)
    • 添加并启用Claude Desktop
  4. 添加到Claude桌面配置:

    • 打开克劳德桌面
    • 导航到“设置”→ 开发者→ 编辑配置
    • 将以下内容添加到您的 claude_desktop_config.json:
    {
      "mcpServers": {
        "moom": {
          "command": "node",
          "args": ["/absolute/path/to/moom-mcp/src/index.js"]
        }
      }
    }
    
  5. 重新启动克劳德桌面

用法

安装后,您可以在Claude Desktop中使用自然语言命令:

激活布局

  • “切换到我的教学(Mac Mini)布局”
  • “激活AI研究模式工作区”
  • “使用我的编码布局”
  • 新:“切换到DisplayPlacer Coding Pro”(像素完美定位)

保存布局

  • “将当前窗口排列保存为‘聚焦模式’”
  • “创建一个名为“视频编辑”的新布局”

窗口操作

  • “让这个窗口变大”(增长)
  • “将活动窗口居中”
  • “将窗口向左移动”
  • “用当前窗口填充屏幕”

菜单访问

  • “显示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                    # Main MCP server implementation
│   └── displayplacer-layouts.js    # DisplayPlacer integration module
├── examples.md         # Usage examples and workflows
├── test.js            # Basic functionality tests
├── test-ui.js         # UI automation tests
├── validate.js        # Configuration validator
├── demo.js            # Feature demonstration
├── package.json       # Node.js configuration
├── LICENSE            # MIT License
└── README.md          # This file

发展

测试

运行测试套件:

npm test          # Basic tests
npm run test-ui   # UI automation tests
npm run validate  # Validate configuration

调试

  1. 检查Moom是否正在运行:

    pgrep -x Moom
    
  2. 验证是否授予了访问权限

  3. 运行验证脚本:

    npm run validate
    

故障排除

“访问Moom菜单时出错”

  • 确保Moom正在运行
  • 验证终端和克劳德桌面的访问权限
  • 检查Moom的菜单栏图标是否可见

布局未激活

  • 布局名称区分大小写
  • 验证Moom首选项中的确切布局名称
  • 布局名称中的特殊字符可能需要转义

Claude中未加载MCP

  • 配置更改后重新启动Claude Desktop
  • 检查配置文件路径是否为绝对路径
  • 验证Node.js是否在您的PATH中

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

作者

伊恩·特林布尔 - GitHub

致谢

相关项目