Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Description from the maker (original English)
macOS automation via Hammerspoon — 75 tools for windows, Spaces, audio, Bluetooth, and more
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"hammerspoon": {
"command": "npx",
"args": [
"-y",
"hammerspoon-mcp"
]
}
}
}Run this in your terminal
claude mcp add hammerspoon -- npx -y hammerspoon-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"hammerspoon": {
"command": "npx",
"args": [
"-y",
"hammerspoon-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"hammerspoon": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"hammerspoon-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account mobabur94, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Give AI agents deep control over macOS — windows, audio, Bluetooth, Spaces, Focus mode, and 200+ OS APIs — through one MCP server.
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.
# 1. Install Hammerspoon (if you haven't)
brew install --cask hammerspoon
npx hammerspoon-mcp
Note: The server auto-discovers the
hsbinary — it checks~/.local/bin/hs,/usr/local/bin/hs,/opt/homebrew/bin/hs, and the app bundle path. You don't needhson your PATH if Hammerspoon is installed to/Applications.
┌─────────────────────────────────────────────────────────┐
│ 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.)
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>
| Tool | Description |
|---|---|
hs_list_windows | All visible windows with app, title, frame, id |
hs_focus_window | Bring window to front by id or title match |
hs_move_window | Move/resize window by id |
hs_window_layout | 16 presets (halves, thirds, quarters, grid, cascade, center…) + custom fractional layouts |
hs_save_layout | Snapshot all window positions as a named layout |
hs_restore_layout | Restore a saved layout (matches by app + title) |
hs_list_layouts | List saved layout names |
| Tool | Description |
|---|---|
hs_spaces_list | All spaces per screen with active markers |
hs_spaces_active | Currently focused space + screen |
hs_spaces_goto | Switch by ID or index |
hs_spaces_move_window | Move window to another space (optionally follow) |
hs_spaces_add | Create a new space |
hs_spaces_remove | Remove a space (safety checks) |
hs_spaces_windows | Windows on a specific space |
hs_spaces_window_spaces | Which space(s) a window is on |
hs_spaces_mission_control | Toggle Mission Control / Exposé / Launchpad / Show Desktop |
| Tool | Description |
|---|---|
hs_list_apps | Running applications with bundle ID, PID, hidden state |
hs_launch_app | Launch or activate an app by name |
hs_kill_app | Quit an app |
| Tool | Description |
|---|---|
hs_click | Click at coordinates with button + modifier options |
hs_type | Type text (Unicode, CJK, emoji) |
hs_hotkey | Press key combo (e.g. "cmd+shift+4") |
| Tool | Description |
|---|---|
hs_screenshot | Capture full screen or region (base64 PNG) |
hs_screens | Display info (resolution, name, rotation) |
hs_mouse_position | Current cursor coordinates |
| Tool | Description |
|---|---|
hs_audio_devices | List all input/output with volume, mute, transport type |
hs_audio_default | Get/set default devices (fuzzy name match) |
hs_audio_volume | Volume on any specific device (0–100) |
hs_audio_mute | Mute/unmute/toggle any device |
hs_audio_datasources | List/switch data sources (speakers vs headphones) |
hs_audio_watch | Watch for device changes |
| Tool | Description |
|---|---|
hs_bluetooth_status | Power state and discoverability |
hs_bluetooth_power | On / off / toggle |
hs_bluetooth_devices | List paired or connected devices |
hs_bluetooth_connect | Connect by name (fuzzy) or MAC address |
hs_bluetooth_disconnect | Disconnect a device |
Requires blueutil:
brew install blueutil
| Tool | Description |
|---|---|
hs_focus_status | Check if DND/Focus is active + profile name |
hs_focus_toggle | Toggle via Control Center (no setup needed) |
hs_focus_shortcut | Enable/disable via macOS Shortcuts (most reliable) |
hs_focus_install_shortcut | One-time setup guide |
hs_focus_schedule | DND for N minutes with auto-disable |
hs_focus_cancel_timer | Cancel scheduled disable |
| Tool | Description |
|---|---|
hs_battery | Charge %, power source, time remaining |
hs_wifi | Current SSID and interface details |
hs_volume | System volume get/set |
hs_dark_mode | Get/toggle dark mode |
hs_notify | Post a macOS notification |
hs_clipboard | Read/write system pasteboard |
| Tool | Description |
|---|---|
hs_brightness | Get/set screen brightness (0–100) |
| Tool | Description |
|---|---|
hs_timer_start | Named countdown with notification on fire |
hs_timer_cancel | Cancel by name |
hs_timer_list | List active timers |
| Tool | Description |
|---|---|
hs_finder_selection | Get currently selected Finder items |
hs_finder_open | Open/reveal path in Finder |
hs_trash | Move to Trash (reversible) |
hs_quicklook | Quick Look preview |
| Tool | Description |
|---|---|
hs_system_info | CPU, memory, thermal state, uptime |
hs_caffeinate | Prevent sleep for N minutes |
hs_execute | Run shell command (user environment) |
hs_open_url | Open URL in browser or specific app |
hs_alert | HUD-style on-screen overlay message |
| Tool | Events |
|---|---|
hs_watch_apps | App activated, launched, terminated, hidden |
hs_watch_wifi | Network changes |
hs_watch_usb | Device connect/disconnect |
hs_watch_battery | Charge level, power source |
hs_watch_screens | Display configuration |
hs_watch_paths | Filesystem changes |
hs_watch_sleep | Sleep/wake/lock/unlock |
hs_watch_clipboard | Every pasteboard change |
hs_watch_clipboard_history | Ring buffer with source app tracking |
hs_get_clipboard_history | Read the full buffer |
hs_watch_urls | Incoming hammerspoon://mcp/... URLs |
hs_unwatch | Stop a watcher |
hs_list_watchers | List active watchers |
| Tool | Description |
|---|---|
hs_eval | Execute 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.
MCP clients can subscribe to resource URIs and receive push notifications when OS events fire:
| URI | Triggers |
|---|---|
watcher://apps | App lifecycle events |
watcher://wifi | Network changes |
watcher://usb | USB device events |
watcher://battery | Battery/power changes |
watcher://screens | Display reconfiguration |
watcher://paths | Filesystem changes |
watcher://sleep | Sleep/wake/lock events |
watcher://clipboard | Pasteboard changes |
watcher://clipboard_history | Clipboard ring buffer updates |
watcher://urls | Incoming URL events |
watcher://audio | Audio device changes |
hammerspoon://system | System info snapshot |
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", ... }
"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 })
| Capability | hammerspoon-mcp | mac-use-mcp | macos-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 queries | via hs_eval | ✅ | ❌ |
| Zero-install (no prerequisites) | ❌ | ✅ | ✅ |
| Total tools | 75 | 18 | ~10 |
| Requirement | Install |
|---|---|
| macOS 13+ | — |
| Node.js 22+ | brew install node |
| Hammerspoon
Only the beginning is shown; read the rest in the repo