プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Hammerspoon MCP

作者:vukvukovichバージョン 0.4.0i★ 1iパソコンで動く
レジストリ名io.github.vukvukovich/hammerspoon-mcp

インストール方法

What it does

Control macOS through Hammerspoon: windows, apps, and API search. Injection-safe by design.

  • Connects パソコンで動く
  • Account or key No key needed
  • Category デザイン・画像・音声

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 3/3 合格 · あなたのパソコンで動きます

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

Hammerspoon MCP のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Hammerspoon MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    キーの取り方は下の提供元 README にあります

  3. パソコン版 Claude アプリの設定ファイルを開く

    SettingsDeveloperEdit Config

  4. この設定を貼り付けて保存

    {
      "mcpServers": {
        "hammerspoon": {
          "command": "npx",
          "args": [
            "-y",
            "@vukvukovich/hammerspoon-mcp"
          ],
          "env": {
            "HS_MCP_TOOLS": "your-value",
            "HS_MCP_TRANSPORT": "your-value",
            "HS_MCP_HS_PATH": "your-value",
            "HS_MCP_DOCS_PATH": "your-value",
            "HS_MCP_LOG_LEVEL": "your-value"
          }
        }
      }
    }

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Claude を終了してもう一度開く

  6. 試してみる

    Hammerspoon MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が Hammerspoon MCP を使っていると言うか、回答に Hammerspoon MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ Hammerspoon MCP につなげません

Hammerspoon MCP はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · Hammerspoon MCP につなげるアプリを使う

  • Hammerspoon MCP のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • Hammerspoon MCP のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Node.js を入れてください(1 回だけ)
  • Hammerspoon MCP のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Node.js を入れてください(1 回だけ)
  • Hammerspoon MCP のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Node.js を入れてください(1 回だけ)

B · デザイン・画像・音声 の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

Hammerspoon MCP のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Hammerspoon MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    キーの取り方は下の提供元 README にあります

  3. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  4. このコマンドを貼り付けて Enter

    claude mcp add --scope user hammerspoon --env HS_MCP_TOOLS=your-value --env HS_MCP_TRANSPORT=your-value --env HS_MCP_HS_PATH=your-value --env HS_MCP_DOCS_PATH=your-value --env HS_MCP_LOG_LEVEL=your-value -- npx -y @vukvukovich/hammerspoon-mcp

    Enter の前に「your-value」を自分のキーに書き換えてください

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Claude Code で /mcp と入力

    Hammerspoon MCP が一覧にあり、接続済みと表示されれば OK です

  6. 試してみる

    Hammerspoon MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が Hammerspoon MCP を使っていると言うか、回答に Hammerspoon MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

Hammerspoon MCP のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Hammerspoon MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    キーの取り方は下の提供元 README にあります

  3. このボタンで Cursor を開く

    Cursor で開く

    Cursor がインストールの確認をするので Install を押します

  4. キーを入力

    Hammerspoon MCP の設定で HS_MCP_TOOLS, HS_MCP_TRANSPORT, HS_MCP_HS_PATH, HS_MCP_DOCS_PATH, HS_MCP_LOG_LEVEL が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Cursor の AI チャットを Agent モードで開く

  6. 試してみる

    Hammerspoon MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が Hammerspoon MCP を使っていると言うか、回答に Hammerspoon MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

Hammerspoon MCP のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Hammerspoon MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    キーの取り方は下の提供元 README にあります

  3. このボタンで VS Code を開く

    VS Code で開く

    VS Code がインストールの確認をするので Install を押します

  4. キーを入力

    Hammerspoon MCP の設定で HS_MCP_TOOLS, HS_MCP_TRANSPORT, HS_MCP_HS_PATH, HS_MCP_DOCS_PATH, HS_MCP_LOG_LEVEL が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. VS Code の AI チャットを Agent モードで開く

  6. 試してみる

    Hammerspoon MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が Hammerspoon MCP を使っていると言うか、回答に Hammerspoon MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?Hammerspoon MCP を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

claude mcp add --scope user hammerspoon --env HS_MCP_TOOLS=your-value --env HS_MCP_TRANSPORT=your-value --env HS_MCP_HS_PATH=your-value --env HS_MCP_DOCS_PATH=your-value --env HS_MCP_LOG_LEVEL=your-value -- npx -y @vukvukovich/hammerspoon-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "hammerspoon": {
      "command": "npx",
      "args": [
        "-y",
        "@vukvukovich/hammerspoon-mcp"
      ],
      "env": {
        "HS_MCP_TOOLS": "your-value",
        "HS_MCP_TRANSPORT": "your-value",
        "HS_MCP_HS_PATH": "your-value",
        "HS_MCP_DOCS_PATH": "your-value",
        "HS_MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "hammerspoon": {
      "command": "npx",
      "args": [
        "-y",
        "@vukvukovich/hammerspoon-mcp"
      ],
      "env": {
        "HS_MCP_TOOLS": "your-value",
        "HS_MCP_TRANSPORT": "your-value",
        "HS_MCP_HS_PATH": "your-value",
        "HS_MCP_DOCS_PATH": "your-value",
        "HS_MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "hammerspoon": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@vukvukovich/hammerspoon-mcp"
      ],
      "env": {
        "HS_MCP_TOOLS": "your-value",
        "HS_MCP_TRANSPORT": "your-value",
        "HS_MCP_HS_PATH": "your-value",
        "HS_MCP_DOCS_PATH": "your-value",
        "HS_MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

自分で入力する値

  • HS_MCP_TOOLS env
    Which tools to expose. "safe" (default) exposes inspection, window management, and system tools only. "all" additionally exposes hs_eval, hs_applescript, and hs_ui_press, which run arbitrary Lua and…
  • HS_MCP_TRANSPORT env
    How Lua reaches Hammerspoon. "socket" (default) keeps one persistent Unix domain socket, self-installed on first call, with automatic fallback to spawning; "spawn" runs one hs process per call.
  • HS_MCP_HS_PATH env
    Explicit path to the Hammerspoon hs command line tool. Only needed when Hammerspoon is installed somewhere unusual.
  • HS_MCP_DOCS_PATH env
    Explicit path to Hammerspoon's bundled docs.json, used by hs_api_search.
  • HS_MCP_LOG_LEVEL env
    Log verbosity on stderr: debug, info (default), warn, or error.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
67/週
接続方法
パソコンで動く
最新バージョンi
0.4.0
レジストリ公開日i
2026年8月15日
コードの最終更新i
2026年9月29日
作者
vukvukovich
パッケージ
npm: @vukvukovich/hammerspoon-mcp
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月12日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント vukvukovich で確認済みです

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:44 日前

  • ✓ 合格

    ライセンスがある

    MITを使用

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

デザイン・画像・音声のほかのサーバーとの比較i

  • このカテゴリのほかの2946件のうち78%よりスターが多い
  • このカテゴリのほかの2946件のうち21%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの2946件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Hammerspoon MCPは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は44 日前、最新バージョン(0.4.0)がレジストリに届いたのは3 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Figma Context MCP, AutoClip, Next AI Draw.io

同じカテゴリのほかの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Figma Context MCP

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

作者:GLips広く使われている↓ 15.2万/週★ 1.6万5 か月前更新

パソコンで動く

AutoClip

Clip long videos into short clips with covers and captions. Local CLI and MCP.

作者:zhouxiaoka広く使われている↓ 205/週★ 1万15 日前更新

パソコンで動く

Next AI Draw.io

draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand

作者:DayuanJiang広く使われている↓ 2.2万/週★ 3.7万 リポジトリ全体のスター5 日前更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Let an AI agent drive your Mac through Hammerspoon, without ever splicing its input into Lua source.

What it is

Hammerspoon is a macOS automation app you script in Lua. It exposes a command line interface through its hs.ipc module, so hs -c " " runs Lua inside the running Hammerspoon process.

This project is an MCP (Model Context Protocol) server that sits in front of that CLI. It gives an agent a set of typed tools (list windows, move a window, focus an app, search the Hammerspoon API docs, tail the console, reload your config) and translates each tool call into a Lua program that Hammerspoon runs.

It speaks MCP over stdio, so any MCP client can use it: Claude Code, Claude Desktop, or your own.

Project status

Published on npm as v0.4.x: 38 safe-tier tools, plus 3 gated behind HS_MCP_TOOLS=all. Still pre-1.0, so tool names and argument shapes can change between minor versions.

Why this one is different

1. Injection-safe by construction

Most of the risk in a "run Lua for me" bridge is the moment you build the Lua. The usual approach is to interpolate the arguments into a source string and escape the dangerous characters. Escaping is a discipline, and disciplines slip.

This server never interpolates. Every tool's Lua body is a static constant in the TypeScript source. Arguments travel separately:

  1. The validated argument object is JSON-encoded.
  2. That JSON is base64-encoded.
  3. The base64 text is spliced once, into one fixed prelude line:
local ARGS = hs.json.decode(hs.base64.decode("<base64>"))

The tool body then reads ARGS.title, ARGS.windowId, and so on.

The base64 alphabet is A-Z, a-z, 0-9, +, /, and =. It contains no quote, no backslash, no newline, no square bracket, and no hyphen. So the payload cannot close the Lua string, cannot start an escape sequence, cannot open a long bracket, and cannot open a comment. Injection is impossible because of the alphabet, not because someone remembered to escape correctly.

There is no shell layer either. The server talks to Hammerspoon over a persistent Unix socket, falling back to spawn(hsPath, ["-c", lua]) with an argv array, so no sh ever parses the command on either path.

2. Tiered tools, safe by default

The default tier is safe: read, inspect, and arrange operations. Arbitrary Lua evaluation exists as hs_eval, but it is off unless you set HS_MCP_TOOLS=all.

See Security for the reasoning. Short version: the threat is prompt injection, not you.

3. Built for the config-development loop

Most of the value of Hammerspoon is your own init.lua. So the server helps you write it, not just drive it:

  • hs_api_search searches Hammerspoon's bundled API documentation, so the agent can look up the real signature of hs.window.moveToUnit instead of guessing.
  • hs_console_tail reads back the Hammerspoon console, so the agent can see its own errors.
  • hs_reload_config reloads init.lua after an edit.

Edit, reload, read the console, fix. The agent can run that loop itself.

Quick start

Prerequisites
  • macOS.
  • Node.js 24 or newer.
  • Hammerspoon, installed and running:
  brew install --cask hammerspoon
  • The hs.ipc module loaded in your Hammerspoon config. Add this line to ~/.hammerspoon/init.lua:
  require("hs.ipc")

Then reload your config from the Hammerspoon menu bar icon. This is what installs and enables the hs command line tool. Without it, hs -c has nothing to talk to.

Verify the bridge by hand before wiring up any client:

hs -c "return 1 + 1"

If that prints 2, you are ready.

Add it to your MCP client

Claude Code:

claude mcp add hammerspoon -- npx -y @vukvukovich/hammerspoon-mcp

Any client that takes an mcpServers JSON block:

{

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

To opt into the unsafe tier, add the environment variable. Claude Code:

claude mcp add hammerspoon -e HS_MCP_TOOLS=all -- npx -y @vukvukovich/hammerspoon-mcp

JSON:

{

"mcpServers": { "hammerspoon": { "command": "npx", "args": ["-y", "@vukvukovich/hammerspoon-mcp"], "env": { "HS_MCP_TOOLS": "all" } } } }

Ask the agent to call hs_health first. It reports whether the hs binary was found, whether Hammerspoon is running, and whether hs.ipc answered.

Tool reference

Forty-one tools: thirty-eight in the safe tier, three gated.

ToolTierWhat it does
hs_healthsafeReport bridge status: resolved hs path, whether Hammerspoon answers, its version.
hs_api_searchsafeSearch Hammerspoon's bundled API reference and return exact signatures.
hs_console_tailsafeReturn the last N lines of the Hammerspoon console.
hs_reload_configsafeReload ~/.hammerspoon/init.lua.
hs_notifysafeShow a transient on-screen alert, without stealing focus.
hs_list_windowssafeList windows, with id, title, owning app, screen, and frame.
hs_focus_windowsafeFocus a window by id, or by a substring of its title.
hs_move_windowsafeMove or resize a window by id, in absolute screen pixels.
hs_window_layoutsafeSnap a window to a named preset such as left-half or quarter-top-left.
hs_list_appssafeList running applications, with bundle id, PID, and window count.
hs_launch_appsafeLaunch an application by name, or focus it if it is already running.
hs_focus_appsafeBring an already-running application to the front.
hs_screenssafeList screens, with id, name, frame, and which one is primary.
hs_machine_statussafeBattery, brightness, wifi, idle time, audio, and host info in one call.
hs_audio_devicessafeList audio output and input devices, showing the current default.
hs_audio_set_devicesafeSwitch the default output or input device, for example to headphones.
hs_audio_volumesafeGet or set volume and mute on the default device.
hs_brightnesssafeGet or set built-in display brightness.
hs_media_controlsafePlay, pause, skip, or go back, via system media keys.
hs_list_spacessafeList desktops (Spaces) per screen, with positions and which is current.
hs_goto_spacesafeSwitch desktop by id or by 1-based position.
hs_evalunsafeEvaluate arbitrary Lua. Requires HS_MCP_TOOLS=all.
hs_applescriptunsafeRun AppleScript. Reaches Mail, Notes, Reminders, Finder. Requires HS_MCP_TOOLS=all.
hs_ui_pressunsafePress a UI element found by hs_ui_inspect. Refuses to act without an expectLabel or expectRole from the inspection, and refuses when the element there no longer matches it. Requires HS_MCP_TOOLS=all.

hs_window_layout presets: left-half, `righ

冒頭だけを表示しています。続きはリポジトリで読めます