cd /news/ai-agents/show-hn-mcp-for-your-mac-hardware · home › topics › ai-agents › article
[ARTICLE · art-161104] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Show HN: MCP for Your Mac Hardware

MacMonitor, a free open-source Mac app from primemindai, exposes live Apple Silicon hardware sensor data to AI agents including Claude and Codex through an MCP server, answering the question of why a Mac's fan is running. The app reads sensors read-only, requires no admin password, sends nothing over the network, and is built for Apple Silicon Macs on macOS 15 or newer, tested only on a MacBook Pro with an M4 Pro chip running macOS 26; Intel Macs are not supported. Because the app is not signed with a paid Apple Developer ID, first launch shows an "Apple could not verify MacMonitor" warning that users clear via System Settings or an xattr command.

read7 min views2 publishedOct 30, 2026
Show HN: MCP for Your Mac Hardware
Image: Michielbdejong (auto-discovered)

MCP for your Mac hardware. Works with Claude and Codex.

MacMonitor is a free, open-source Mac app that shows what your Mac's hardware is doing, live. It answers one question first: why is my fan on right now?

It lives in the menu bar, opens a window full of live graphs, keeps history, sends alerts, and lets AI agents like Claude and Codex read the same data through an MCP server.

It reads hardware sensors read only. It never writes to the hardware, never needs an admin password, and sends nothing over the network.

  • Built for Apple Silicon Macs (M-series chips).

  • Tested on one Mac: a MacBook Pro with an M4 Pro chip, on macOS 26.

  • Needs macOS 15 or newer to build and run.

  • On other Apple Silicon chips it should run, but some sensor names, the chip map drawing and the core layout are tuned for the M4 Pro. A reading it cannot find shows "not available" instead of a wrong number.

  • Intel Macs are not supported.

  • Menu bar: a tiny CPU graph plusCPU 42% · 71° · 2.3k (CPU, hottest temperature, fan RPM). Click it for key numbers, the fan headline and an "Open MacMonitor" button.

  • Overview: CPU, GPU, hottest temperature and fan tiles with moving graphs, power by chip part, system and wall power, thermal pressure, and the top apps by energy.

  • Chip map: a drawing of the M4 Pro chip. Each block glows blue (40°) to red (100°) with its live temperature. One bar per core (10 P cores, 4 E cores), with clocks and watts.

  • Detail pages: Heat & fans, CPU, GPU, Memory, Power & battery, Disks, Network, Apps. Click a row to open its history chart (15 minutes, 1 hour, 24 hours or 30 days).

  • Events: fan ramps, heat, throttle signs, memory, swap, disk, SSD, battery flag and wake.

  • Settings: alert switches and thresholds, start at login, sample rate, history size and a clear button.

  • Connect AI: copy-paste setup for Claude Code, Codex and Claude Desktop, with this app's real MCP server path filled in, a "Test connection" button, and the list of read-only tools. It only copies; it never edits your Claude or Codex config files.

Sensor names we have not proven carry a best guess tag. A reading that is missing shows "not available" or --, never a fake zero.

  1. Get MacMonitor-<version>.zip from thelatest release . It is for Apple Silicon Macs on macOS 15 or newer.
  2. Double-click the zip, then drag MacMonitor.app into your Applications folder.
  3. Open it. The first time, macOS says "Apple could not verify MacMonitor" . This is because the app is not signed with a paid Apple Developer ID yet. ClickDone , then pick one fix:

System Settings: openPrivacy & Security , scroll down to "MacMonitor was blocked", clickOpen Anyway , and confirm with your password or Touch ID. #

Terminal: run this once, then open the app again.

xattr -dr com.apple.quarantine /Applications/MacMonitor.app

You only do this once. Prefer to check the code first? Build it yourself (next section).

You need Apple's Command Line Tools (no Xcode needed). There are no third-party packages.

xcode-select --install                     # skip if the Command Line Tools are already installed
git clone https://github.com/primemindai/macmonitor.git MacMonitor
cd MacMonitor

Build only (to check it compiles):

swift build

Build, install and open the app:

scripts/bundle.sh --open

This builds a release copy, wraps it in MacMonitor.app, signs it ad hoc, installs it to ~/Applications/MacMonitor.app and opens it. The first launch asks once for notification permission and turns on "start at login".

Make a release zip (what the Releases page ships; it does not install anything):

scripts/release.sh 1.0.0

Run the tests. Use the script: plain swift test on Command Line Tools cannot find the Testing framework, so it fails or runs zero tests.

scripts/test.sh

Easiest way: open MacMonitor, click Connect AI in the sidebar, and click Copy next to the command for your tool. The page fills in the right path for wherever the app is installed, and Test connection checks that the server answers.

To do it by hand: the MCP server is a separate program inside the app. The commands below use the path from a source build (~/Applications). If you downloaded the app into your Applications folder, use /Applications/MacMonitor.app/Contents/MacOS/macmonitor-mcp instead.

~/Applications/MacMonitor.app/Contents/MacOS/macmonitor-mcp

Register it with Claude Code:

claude mcp add -s user macmonitor -- ~/Applications/MacMonitor.app/Contents/MacOS/macmonitor-mcp

Register it with Codex:

codex mcp add macmonitor -- ~/Applications/MacMonitor.app/Contents/MacOS/macmonitor-mcp

It is a standard stdio MCP server, so any other MCP client works the same way: point it at that path.

Tools (all read only):

Tool What it gives
get_snapshot Everything right now, grouped by area
why_fan The fan headline and the readings behind it
top_processes Top apps by cpu, memory, energy, gpu or disk
get_history Points for one metric over the last N minutes
list_metrics The metric names get_history accepts
get_events The Events log for the last N hours
get_sensors Every temperature sensor, with source and whether its label is proven
get_hardware_health SSD health, battery health (three views), adapter and display

The MCP server works even when the app is closed: it then takes a fresh live sample. History tools need the app to have been running.

These need root (an admin password) or would change hardware, so MacMonitor does not do them:

  • powermetrics (needs root).

  • Energy in watts for apps owned by root or other users. Those apps show CPU and Apple's energy impact score from top instead, marked "system".

  • The motion sensor (accelerometer).

  • Fan control or any write to the SMC. MacMonitor only reads.

  • No serial numbers are shown in the app or returned by the MCP server.

  • No network use. MacMonitor sends nothing anywhere.

  • It never asks for or stores a password.

  • The Wi-Fi network name is not shown (macOS needs Location access for it, and we do not ask).

History lives in ~/Library/Application Support/MacMonitor/history.sqlite. It keeps 24 hours at full detail (one row a second) and per-minute summaries for 30 days. It stays well under 150 MB (measured numbers in docs/proof/db-size.txt).

To clear it, use Settings, History, Clear history, or quit the app and delete that folder.

Stop starting at login: turn off Settings, Start at login. Or, if it used the LaunchAgent fallback:

launchctl bootout gui/$(id -u)/com.macmonitor.app
rm ~/Library/LaunchAgents/com.macmonitor.app.plist

If it used SMAppService, you can also remove it in System Settings, General, Login Items.

Remove the MCP entry from Claude Code:

claude mcp remove -s user macmonitor

MacMonitor is built not to heat the Mac it watches. Budget (100% = one core, 60 second average, child processes such as ps and top included): 3% with only the menu bar, 15% with the window open. Measure it:

defaults write com.macmonitor.app cpuLogPath /tmp/macmonitor-cpu.txt   # then restart the app
scripts/measure-cpu.sh "menu bar only" 60

Live motion (moving graph lines, rolling numbers, sliding bars, the spinning fan) runs in Core Animation, so the app draws one frame a second and the system animates the rest.

~/Applications/MacMonitor.app/Contents/MacOS/MacMonitor --render-screenshots docs/screenshots --wait 130

This samples live for --wait seconds, then renders every page in dark and light to PNG. It reads history but never writes it.

  • Sources/CSensors : small C wrappers that read the SMC, IOReport, HID sensors and NVMe SMART data.
  • Sources/MonitorCore : the sampler, the data model, the history database, the fan explainer and the MCP server logic.
  • Sources/MacMonitor : the SwiftUI menu bar app and window.
  • Sources/macmonitor-mcp : the MCP server program.
  • docs/specs/ : the original design spec.research/ : notes and small probe programs on which macOS data a normal user can read.
  • docs/FOLLOWUPS.md : known issues.

MIT. See LICENSE.

── more in #ai-agents 4 stories · sorted by recency
── more on @macmonitor 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-mcp-for-your…] indexed:0 read:7min 2026-10-30 · —