A side-by-side look at the Hammerspoon and Hammerspoon MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Hammerspoon for os automation work as a local process; choose Hammerspoon MCP for os automation as a local process. You can also run both side by side in one mcpServers block.
hs_list_windows, hs_focus_window, hs_move_window.HS_MCP_TOOLS.hs_health, hs_api_search, hs_console_tail.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | OS Automation | OS Automation |
| Quality signal | 53/100 · Good | 52/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | HS_MCP_TOOLS |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 1 |
| Directory activity | 0 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 75 | 24 |
| Full listing | View Hammerspoon | View Hammerspoon MCP |
hs_list_windowsAll visible windows with app, title, frame, idhs_focus_windowBring window to front by id or title matchhs_move_windowMove/resize window by idhs_window_layout16 presets (halves, thirds, quarters, grid, cascade, center…) + custom fractional layoutshs_save_layoutSnapshot all window positions as a named layouths_restore_layoutRestore a saved layout (matches by app + title)hs_list_layoutsList saved layout nameshs_spaces_listAll spaces per screen with active markershs_spaces_activeCurrently focused space + screenhs_spaces_gotoSwitch by ID or indexhs_spaces_move_windowMove window to another space (optionally follow)hs_spaces_addCreate a new spacehs_healthReport bridge status: resolved `hs` path, whether Hammerspoon answers, its version.hs_api_searchSearch Hammerspoon's bundled API reference and return exact signatures.hs_console_tailReturn the last N lines of the Hammerspoon console.hs_reload_configReload `~/.hammerspoon/init.lua`.hs_notifyShow a transient on-screen alert, without stealing focus.hs_list_windowsList windows, with id, title, owning app, screen, and frame.hs_focus_windowFocus a window by id, or by a substring of its title.hs_move_windowMove or resize a window by id, in absolute screen pixels.hs_window_layoutSnap a window to a named preset such as `left-half` or `quarter-top-left`.hs_list_appsList running applications, with bundle id, PID, and window count.hs_launch_appLaunch an application by name, or focus it if it is already running.hs_focus_appBring an already-running application to the front.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"hammerspoon": {
"command": "npx",
"args": [
"-y",
"hammerspoon-mcp"
]
}
}
}
{
"mcpServers": {
"hammerspoon-mcp": {
"command": "npx",
"args": [
"-y",
"@vukvukovich/hammerspoon-mcp"
],
"env": {
"HS_MCP_TOOLS": "YOUR_HS_MCP_TOOLS_HERE"
}
}
}
}