原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Hammerspoon

作者:mobabur94版本 0.1.0i★ –i在你的电脑上运行
注册名称io.github.mobabur94/hammerspoon

安装

概览

作者提供的说明(英文原文)

macOS automation via Hammerspoon — 75 tools for windows, Spaces, audio, Bluetooth, and more

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 设计、图片与音频

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "hammerspoon": {
      "command": "npx",
      "args": [
        "-y",
        "hammerspoon-mcp"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add hammerspoon -- npx -y hammerspoon-mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "hammerspoon": {
      "command": "npx",
      "args": [
        "-y",
        "hammerspoon-mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "hammerspoon": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "hammerspoon-mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 mobabur94 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“设计、图片与音频”中的其他服务器比较i

  • 星标数多于此分类中其他 2202 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 2202 个服务器的 21% 更新
  • 基础检查结果等于或优于此分类中其他 2202 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Hammerspoon 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.0)于3个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Figma Context MCP, Claude Real Video, Figma MCP Server

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Figma Context MCP

作者:GLips

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

在你的电脑上运行★ 16,165MIT5个月前更新
安装

Claude Real Video

作者:HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

在你的电脑上运行★ 2,284MIT2个月前更新
安装

Figma MCP Server

作者:figma

The Figma MCP server brings Figma design context directly into your AI workflow.

在云端运行★ 2,15213个月前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

hammerspoon-mcp

Give AI agents deep control over macOS — windows, audio, Bluetooth, Spaces, Focus mode, and 200+ OS APIs — through one MCP server.

What is this?

An MCP server that bridges AI agents to Hammerspoon — the most powerful macOS automation tool available. Unlike screenshot-and-click tools, this gives agents programmatic OS-level access: manage windows by ID, switch audio devices by name, move apps between Spaces, toggle Focus mode, and subscribe to real-time OS events.

75 tools. 12 subscribable resources. Zero native dependencies.

Quick Start

# 1. Install Hammerspoon (if you haven't)

brew install --cask hammerspoon

2. Enable the IPC module (one-time setup)

Add this line to ~/.hammerspoon/init.lua:

require("hs.ipc")

Then reload your Hammerspoon config (Cmd+Alt+Ctrl+R or restart the app)

3. (Optional) Install the hs CLI symlink for convenience:

Run in Hammerspoon console: hs.ipc.cliInstall()

Or manually: ln -sf /Applications/Hammerspoon.app/Contents/Frameworks/hs/hs ~/.local/bin/hs

4. Run the MCP server

npx hammerspoon-mcp

Note: The server auto-discovers the hs binary — it checks ~/.local/bin/hs, /usr/local/bin/hs, /opt/homebrew/bin/hs, and the app bundle path. You don't need hs on your PATH if Hammerspoon is installed to /Applications.

Architecture

┌─────────────────────────────────────────────────────────┐

│ MCP Client (Claude, Cursor, MeshClaw, etc.) │ └──────────────────────────┬──────────────────────────────┘ │ stdio (JSON-RPC) ┌──────────────────────────▼──────────────────────────────┐ │ hammerspoon-mcp (Node.js) │ │ ├─ tools → execSync("hs -c '...'") (request/response)│ │ └─ watchers → named pipe reader (push events) │ └──────────────────────────┬──────────────────────────────┘ │ hs CLI / named pipe ┌──────────────────────────▼──────────────────────────────┐ │ Hammerspoon.app (Lua runtime + ObjC bridge) │ │ 200+ modules: window, screen, spaces, audio, wifi, │ │ bluetooth, battery, USB, filesystem, accessibility... │ └──────────────────────────┬──────────────────────────────┘ │ macOS APIs (CoreGraphics, IOKit, etc.)

MCP Client Configuration

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{

"mcpServers": { "hammerspoon": { "command": "npx", "args": ["hammerspoon-mcp"] } } }

</details>

Claude Code

claude mcp add hammerspoon -- npx hammerspoon-mcp

Cursor / VS Code / Copilot

Add to .vscode/mcp.json:

{

"servers": { "hammerspoon": { "command": "npx", "args": ["hammerspoon-mcp"] } } }

</details>

Kiro

Add to ~/.aws/amazonq/mcp.json:

{

"mcpServers": { "hammerspoon": { "command": "npx", "args": ["hammerspoon-mcp"] } } }

</details>

Tools

🪟 Window Management (7)
ToolDescription
hs_list_windowsAll visible windows with app, title, frame, id
hs_focus_windowBring window to front by id or title match
hs_move_windowMove/resize window by id
hs_window_layout16 presets (halves, thirds, quarters, grid, cascade, center…) + custom fractional layouts
hs_save_layoutSnapshot all window positions as a named layout
hs_restore_layoutRestore a saved layout (matches by app + title)
hs_list_layoutsList saved layout names
🖥️ Spaces / Virtual Desktops (9)
ToolDescription
hs_spaces_listAll spaces per screen with active markers
hs_spaces_activeCurrently focused space + screen
hs_spaces_gotoSwitch by ID or index
hs_spaces_move_windowMove window to another space (optionally follow)
hs_spaces_addCreate a new space
hs_spaces_removeRemove a space (safety checks)
hs_spaces_windowsWindows on a specific space
hs_spaces_window_spacesWhich space(s) a window is on
hs_spaces_mission_controlToggle Mission Control / Exposé / Launchpad / Show Desktop
📱 Application Control (3)
ToolDescription
hs_list_appsRunning applications with bundle ID, PID, hidden state
hs_launch_appLaunch or activate an app by name
hs_kill_appQuit an app
⌨️ Input (3)
ToolDescription
hs_clickClick at coordinates with button + modifier options
hs_typeType text (Unicode, CJK, emoji)
hs_hotkeyPress key combo (e.g. "cmd+shift+4")
🖼️ Screen (3)
ToolDescription
hs_screenshotCapture full screen or region (base64 PNG)
hs_screensDisplay info (resolution, name, rotation)
hs_mouse_positionCurrent cursor coordinates
🔊 Audio Devices (6)
ToolDescription
hs_audio_devicesList all input/output with volume, mute, transport type
hs_audio_defaultGet/set default devices (fuzzy name match)
hs_audio_volumeVolume on any specific device (0–100)
hs_audio_muteMute/unmute/toggle any device
hs_audio_datasourcesList/switch data sources (speakers vs headphones)
hs_audio_watchWatch for device changes
🔵 Bluetooth (5)
ToolDescription
hs_bluetooth_statusPower state and discoverability
hs_bluetooth_powerOn / off / toggle
hs_bluetooth_devicesList paired or connected devices
hs_bluetooth_connectConnect by name (fuzzy) or MAC address
hs_bluetooth_disconnectDisconnect a device

Requires blueutil: brew install blueutil

🌙 Focus / Do Not Disturb (6)
ToolDescription
hs_focus_statusCheck if DND/Focus is active + profile name
hs_focus_toggleToggle via Control Center (no setup needed)
hs_focus_shortcutEnable/disable via macOS Shortcuts (most reliable)
hs_focus_install_shortcutOne-time setup guide
hs_focus_scheduleDND for N minutes with auto-disable
hs_focus_cancel_timerCancel scheduled disable
🔋 System State (6)
ToolDescription
hs_batteryCharge %, power source, time remaining
hs_wifiCurrent SSID and interface details
hs_volumeSystem volume get/set
hs_dark_modeGet/toggle dark mode
hs_notifyPost a macOS notification
hs_clipboardRead/write system pasteboard
🔆 Display (1)
ToolDescription
hs_brightnessGet/set screen brightness (0–100)
⏱️ Timers (3)
ToolDescription
hs_timer_startNamed countdown with notification on fire
hs_timer_cancelCancel by name
hs_timer_listList active timers
📁 Finder / Files (4)
ToolDescription
hs_finder_selectionGet currently selected Finder items
hs_finder_openOpen/reveal path in Finder
hs_trashMove to Trash (reversible)
hs_quicklookQuick Look preview
🛠️ Utilities (5)
ToolDescription
hs_system_infoCPU, memory, thermal state, uptime
hs_caffeinatePrevent sleep for N minutes
hs_executeRun shell command (user environment)
hs_open_urlOpen URL in browser or specific app
hs_alertHUD-style on-screen overlay message
👁️ Watchers — Live OS Event Streams (13)
ToolEvents
hs_watch_appsApp activated, launched, terminated, hidden
hs_watch_wifiNetwork changes
hs_watch_usbDevice connect/disconnect
hs_watch_batteryCharge level, power source
hs_watch_screensDisplay configuration
hs_watch_pathsFilesystem changes
hs_watch_sleepSleep/wake/lock/unlock
hs_watch_clipboardEvery pasteboard change
hs_watch_clipboard_historyRing buffer with source app tracking
hs_get_clipboard_historyRead the full buffer
hs_watch_urlsIncoming hammerspoon://mcp/... URLs
hs_unwatchStop a watcher
hs_list_watchersList active watchers
🧪 Escape Hatch (1)
ToolDescription
hs_evalExecute arbitrary Lua in the Hammerspoon runtime

This gives access to all 200+ Hammerspoon modules not covered by dedicated tools — USB details, serial ports, network interfaces, Canvas drawing, menubar items, etc.

Resources (Subscriptions)

MCP clients can subscribe to resource URIs and receive push notifications when OS events fire:

URITriggers
watcher://appsApp lifecycle events
watcher://wifiNetwork changes
watcher://usbUSB device events
watcher://batteryBattery/power changes
watcher://screensDisplay reconfiguration
watcher://pathsFilesystem changes
watcher://sleepSleep/wake/lock events
watcher://clipboardPasteboard changes
watcher://clipboard_historyClipboard ring buffer updates
watcher://urlsIncoming URL events
watcher://audioAudio device changes
hammerspoon://systemSystem info snapshot
How event streaming works
Agent calls: hs_watch_wifi

→ Server injects Lua watcher into Hammerspoon runtime → macOS WiFi change fires → Watcher writes JSON to named pipe (/tmp/hs-mcp-events.pipe) → Node reader emits event → Server calls sendResourceUpdated("watcher://wifi") → Client reads resource → gets { ssid: "NewNetwork", ... }

Examples

"Tile my editor and terminal side by side"

hs_window_layout({ preset: "side-by-side" })

"Switch my audio to AirPods"

hs_audio_default({ output: "airpods" })

→ "set default output: AirPods Pro"

"Move Slack to Space 3"

hs_list_windows({ app: "Slack" })  → { id: 4523, ... }

hs_spaces_move_window({ windowId: 4523, spaceIndex: 3 })

"Start a 25-minute focus session"

hs_focus_schedule({ minutes: 25 })

hs_timer_start({ name: "pomodoro", minutes: 25, message: "Break time!" })

"Notify me when I switch away from my IDE"

hs_watch_apps()

→ Events stream to watcher://apps whenever focus changes

"Connect my headphones and set volume to 40%"

hs_bluetooth_connect({ device: "WH-1000XM5" })

hs_audio_volume({ device: "WH-1000XM5", volume: 40 })

Compared to Alternatives

Capabilityhammerspoon-mcpmac-use-mcpmacos-automator-mcp
Window management by ID✅❌❌
Virtual desktop (Spaces) control✅❌❌
Audio device switching✅❌❌
Bluetooth control✅❌❌
Focus / DND mode✅❌❌
Real-time OS event subscriptions✅❌❌
Clipboard history✅✅❌
Arbitrary OS scripting✅ (Lua)❌✅ (AppleScript)
Screenshot✅✅❌
Click / type / hotkeys✅✅❌
Accessibility tree queriesvia hs_eval✅❌
Zero-install (no prerequisites)❌✅✅
Total tools7518~10

Prerequisites

RequirementInstall
macOS 13+—
Node.js 22+brew install node

| Hammerspoon

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx