npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@iflow-mcp/keyboard-maestro-mcp

v1.0.0

Published

MCP server for Keyboard Maestro automation - log analysis, macro CRUD, and execution

Downloads

11

Readme

Keyboard Maestro MCP

An MCP server for Keyboard Maestro. Manage your macros with natural language commands.

What Can You Do?

Instead of digging through menus and clicking buttons, just ask:

| Just say... | |-------------| | "Run my morning routine macro" | | "Create a macro that types my email signature when I press Cmd+Shift+S" | | "What macros have been failing lately? Fix them." | | "Duplicate my 'Open Project' macro and modify it for the new client" | | "Disable all my work macros, I'm on vacation" |

Your AI assistant becomes a power user of your Mac. It can read, create, modify, run, and debug your Keyboard Maestro macros through conversation.

Real-World Examples

| Use Case | Example | |----------|---------| | Debugging | "My clipboard manager macro stopped working yesterday. Check the logs and tell me what went wrong." | | Bulk Editing | "I have 20 macros that open Chrome. Change them all to open Arc instead." | | Quick Automation | "Make a macro that mounts my NAS drives when I connect to my home WiFi." | | Organization | "Create a new macro group called 'Client Work' and move all macros with 'ACME' in the name into it." |

[!IMPORTANT] This MCP gives your AI full access to Keyboard Maestro. It can run, modify, and delete macros. Always review suggested changes before approving them.

Requirements

  • macOS (Keyboard Maestro is macOS-only)
  • Keyboard Maestro installed and running
  • Node.js v18+

Quick Start

git clone https://github.com/saihgupr/keyboard-maestro-mcp.git
cd keyboard-maestro-mcp
npm install
npm run setup

The setup wizard will configure your AI client automatically. It supports:

  • Claude Desktop
  • Cursor
  • VS Code (Copilot)
  • Windsurf
  • Antigravity
  • Any MCP-compatible client

Available Tools

Macro Management

| Tool | What it does | |------|--------------| | km_search_macros | Find macros by name | | km_list_macros | List all macros | | km_get_macro | Get macro details | | km_get_macro_xml | Export a macro's full definition | | km_create_macro | Build a new macro | | km_clone_macro | Duplicate an existing macro | | km_delete_macro | Remove a macro | | km_enable_macro | Turn macros on/off | | km_run_macro | Execute a macro right now | | km_manage_group | Organize macro groups |

Action Editing

| Tool | What it does | |------|--------------| | km_list_actions | See all steps in a macro | | km_add_action | Add a new step | | km_move_action | Reorder steps | | km_delete_action | Remove a step | | km_get_action_xml | Export a step's definition | | km_set_action_xml | Replace a step | | km_search_replace_action | Find and replace text in a step |

Trigger Editing

| Tool | What it does | |------|--------------| | km_add_trigger | Add a new trigger | | km_delete_trigger | Remove a trigger | | km_get_trigger_xml | Export a trigger | | km_set_trigger_xml | Replace a trigger |

Variables and Logs

| Tool | What it does | |------|--------------| | km_manage_variable | Read, write, or delete KM variables | | km_get_errors | Find recent macro failures | | km_get_log | Search the engine log |

Testing Your Setup

Quick check:

npm run verify

Interactive testing:

npx @modelcontextprotocol/inspector node build/index.js

Manual Configuration

If you prefer to configure manually, add this to your AI client's MCP config:

{
  "mcpServers": {
    "keyboard-maestro": {
      "command": "node",
      "args": ["/path/to/keyboard-maestro-mcp/build/index.js"]
    }
  }
}

Support

Having issues? Open an issue on GitHub

If you like this project, please consider giving the repo a ⭐ star!