Skip to main content
Glama

Moom MCP Server

by itrimble

Moom MCP Server

A Model Context Protocol (MCP) server that enables programmatic control of Moom window layouts on macOS through natural language commands in Claude Desktop.

Overview

This MCP server allows Claude to interact with Moom, a powerful macOS window management tool, enabling you to:

  • Switch between saved window layouts
  • Create new window arrangements
  • Control window positioning and sizing
  • Manage your workspace layouts through conversational commands

Features

  • 🖼️ activate_layout - Instantly switch to any saved Moom layout
  • 💾 save_current_layout - Save your current window arrangement as a reusable layout
  • 🎯 trigger_moom_action - Execute Moom window actions (resize, move, center, etc.)
  • 📋 show_moom_menu - Display the Moom popup menu

Prerequisites

  • macOS (10.12 or later)
  • Moom installed and running
  • Node.js 14 or higher
  • Claude Desktop app
  • Terminal app with accessibility permissions

Installation

  1. Clone this repository:
    git clone https://github.com/itrimble/moom-mcp.git cd moom-mcp
  2. Install dependencies:
    npm install
  3. Grant accessibility permissions:
    • Open System PreferencesSecurity & PrivacyPrivacyAccessibility
    • Add and enable Terminal (or your terminal app)
    • Add and enable Claude Desktop
  4. Add to Claude Desktop configuration:
    • Open Claude Desktop
    • Navigate to Settings → Developer → Edit Config
    • Add the following to your claude_desktop_config.json:
    { "mcpServers": { "moom": { "command": "node", "args": ["/absolute/path/to/moom-mcp/src/index.js"] } } }
  5. Restart Claude Desktop

Usage

Once installed, you can use natural language commands in Claude Desktop:

Activating Layouts

  • "Switch to my Teaching (Mac Mini) layout"
  • "Activate the AI Research Mode workspace"
  • "Use my coding layout"

Saving Layouts

  • "Save the current window arrangement as 'Focus Mode'"
  • "Create a new layout called 'Video Editing'"

Window Actions

  • "Make this window bigger" (grow)
  • "Center the active window"
  • "Move window to the left"
  • "Fill the screen with current window"
  • "Show the Moom menu"
  • "Open Moom's layout picker"

Available Commands

CommandDescriptionExample
activate_layoutSwitch to a saved Moom layout{ "layoutName": "Teaching (Mac Mini)" }
save_current_layoutSave current window arrangement{ "layoutName": "Development Setup" }
trigger_moom_actionExecute window actions{ "action": "center" }
show_moom_menuDisplay Moom popup menu{}

Supported Window Actions

  • grow - Increase window size
  • shrink - Decrease window size
  • move-left - Move window left
  • move-right - Move window right
  • move-up - Move window up
  • move-down - Move window down
  • center - Center window on screen
  • fill-screen - Maximize window

Project Structure

moom-mcp/ ├── src/ │ └── index.js # Main MCP server implementation ├── 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

Development

Testing

Run the test suite:

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

Debugging

  1. Check if Moom is running:
    pgrep -x Moom
  2. Verify accessibility permissions are granted
  3. Run the validation script:
    npm run validate

Troubleshooting

"Error accessing Moom menu"

  • Ensure Moom is running
  • Verify accessibility permissions for Terminal and Claude Desktop
  • Check that Moom's menu bar icon is visible

Layouts not activating

  • Layout names are case-sensitive
  • Verify the exact layout name in Moom preferences
  • Special characters in layout names may need escaping

MCP not loading in Claude

  • Restart Claude Desktop after configuration changes
  • Check the config file path is absolute
  • Verify Node.js is in your PATH

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Ian Trimble - GitHub

Acknowledgments

  • Many Tricks for creating Moom
  • Anthropic for the Model Context Protocol
  • The MCP community for inspiration and examples
-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

A Model Context Protocol server that enables programmatic control of Moom window layouts on macOS through natural language commands in Claude Desktop.

  1. Overview
    1. Features
      1. Prerequisites
        1. Installation
          1. Usage
            1. Activating Layouts
            2. Saving Layouts
            3. Window Actions
            4. Menu Access
          2. Available Commands
            1. Supported Window Actions
          3. Project Structure
            1. Development
              1. Testing
              2. Debugging
            2. Troubleshooting
              1. "Error accessing Moom menu"
              2. Layouts not activating
              3. MCP not loading in Claude
            3. Contributing
              1. License
                1. Author
                  1. Acknowledgments
                    1. Related Projects

                      Related MCP Servers

                      • -
                        security
                        F
                        license
                        -
                        quality
                        A Model Context Protocol server built with mcp-framework that allows users to create and manage custom tools for processing data, integrating with the Claude Desktop via CLI.
                        Last updated -
                        48
                        4
                        TypeScript
                        • Apple
                      • -
                        security
                        F
                        license
                        -
                        quality
                        A Model Context Protocol server that allows management and execution of Blender Python scripts, enabling users to create, edit and run scripts in a headless Blender environment through natural language interfaces.
                        Last updated -
                        4
                        Python
                      • -
                        security
                        F
                        license
                        -
                        quality
                        A Model Context Protocol server implementation that provides a standardized interface for interacting with Spiral's language models, offering tools to generate text from prompts, files, or web URLs.
                        Last updated -
                        14
                        Python
                        • Linux
                        • Apple
                      • -
                        security
                        A
                        license
                        -
                        quality
                        A Model Context Protocol server that enables remote execution of shell commands across different operating systems, automatically handling platform-specific differences between Windows and Unix-like systems.
                        Last updated -
                        JavaScript
                        MIT License
                        • Linux

                      View all related MCP servers

                      MCP directory API

                      We provide all the information about MCP servers via our MCP API.

                      curl -X GET 'https://glama.ai/api/mcp/v1/servers/itrimble/moom-mcp'

                      If you have feedback or need assistance with the MCP directory API, please join our Discord server