Mac Health MCP
Provides read-only local diagnostics for macOS, including overall system health, ranked causes of slowness, top processes, memory and disk reports, battery health, thermal status, Spotlight activity, and startup items.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mac Health MCP why is my Mac slow?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
A Model Context Protocol server that lets Claude Desktop, Claude Code and other MCP clients check your Mac's health: uptime, memory, disk, busy processes, Spotlight, heat, battery and startup items. Ask "Why is my Mac slow?" and Claude gets a ranked list of likely causes, each with a plain explanation, the number behind it and what you can do. Local, read-only, zero dependencies.
Built with Claude.
Demo
The same kind of conversation as text (made-up example values):
You: Why is my Mac slow?
Claude: I found 3 likely causes, most likely first:
1. It has been a long time since the last restart (uptime 23 days).
Apps and macOS slowly pile up memory and background work over time.
Restart the Mac when it suits you.
2. Memory is tight (memory pressure: warning, 4.2 GB swap).
macOS is moving memory out to the disk, which is much slower.
The apps using the most memory are ExampleBrowser (3.1 GB) and
DemoApp (1.8 GB). Closing tabs or apps you don't need will help.
3. One app is keeping the processor busy (DemoApp at 145 % CPU in both
measurements). Quit it if you don't need it right now.
Free disk space, Spotlight, heat, battery health and startup items
look fine.Related MCP server: PCCheck MCP Server
Install
Option A: Claude Desktop, one click (recommended)
Download
mac-health-x.y.z.mcpbfrom the latest release on GitHub.Double-click the file (or drag it into Claude Desktop, or use Settings → Extensions → Install Extension…).
Click Install, then ask Claude: "Why is my Mac slow?"
Claude Desktop runs the extension with its own built-in Node.js, so nothing else needs to be installed.
Option B: manual configuration
Download or clone the repository to a permanent folder. No npm install is needed (there are no dependencies). Replace /path/to/mac-health-mcp below with the real folder.
git clone https://github.com/Swedishwizards/mac-health-mcp.gitClaude Desktop: open Settings → Developer → Edit Config (the file ~/Library/Application Support/Claude/claude_desktop_config.json) and add:
{
"mcpServers": {
"mac-health": {
"command": "node",
"args": ["/path/to/mac-health-mcp/server/index.js"]
}
}
}Restart Claude Desktop afterwards. If Claude Desktop cannot find node, use the full path from which node (for example /opt/homebrew/bin/node or /usr/local/bin/node) as command.
Claude Code:
claude mcp add mac-health -- node /path/to/mac-health-mcp/server/index.jsAny other MCP client: run node /path/to/mac-health-mcp/server/index.js as a stdio server.
Tools
All tools are read-only and local. Every answer starts with a short plain-language summary, followed by the numbers as structured data. The built-in summaries and grades are in Swedish (Bra = good, Okej = OK, Behöver åtgärd = needs attention, Okänd = unknown); Claude answers you in your own language.
Tool | What it does |
| Why is my Mac slow? Likely causes ranked, each with the number behind it and what you can do (details below). |
| Health check of the whole Mac, each part graded (details below). |
| Which apps and processes use the most CPU and memory right now, grouped per app, with cryptic macOS names explained (optional |
| Memory pressure, swap, compressed memory and file cache in plain language, with a grade. |
| Free space on the startup disk with a grade, plus the largest folders in your home folder. Can take up to about 20 seconds. |
| Battery health, cycles, charge state, temperature and tips, with a grade. Desktop Macs get a "no battery" answer. |
| Whether macOS is slowing the processor down because of heat, with advice. |
| What starts automatically (launch agents and daemons), marked as Apple or third party. Only lists, never changes. |
diagnose_slowness: the eight checks
Answers "why is my Mac slow?" with a ranked list of likely causes, each with a plain explanation, the number behind it and what you can do.
Check | Triggers when |
Uptime | More than 14 days since the last restart |
Memory and swap | High memory pressure or more than 2 GB swap (names the apps using the most memory) |
Free disk | Under 10 % free on the startup disk (names the largest home folders) |
Single process | One process over 80 % CPU in both measurements ( |
Spotlight |
|
Heat |
|
Battery health | Under 80 % of new capacity |
Startup items | 15 or more from third parties (at most three names shown) |
Every command runs once and is shared between the checks. A check is only called "looks good" if it could actually be made; checks that could not run are listed as unknown. Causes are likely, not certain, and nothing is ever changed.
get_mac_overview
A health check of the whole Mac, each part graded, with advice when something is off:
Part | What it shows | Source |
Model | Model identifier, chip, cores, memory |
|
macOS | Version and build |
|
Uptime | Time since last restart (restart advice after 14 days) |
|
CPU | Load average per core |
|
Memory | Free %, memory pressure level, swap, breakdown |
|
Disk | Free / total on the startup disk |
|
Battery | Charge, state, health (capacity vs new), cycles (skipped on desktops) |
|
Thermal | Thermal warnings and CPU speed limit |
|
If a command is missing, fails or times out, that part is reported as Okänd (unknown) instead of the whole tool failing.
Privacy
Local only. Everything runs on your Mac with built-in macOS tools (
sysctl,sw_vers,vm_stat,memory_pressure,df,du,top,ps,pmset,ioreg). No network requests.No telemetry. Nothing is collected, stored or sent anywhere; the only output is the answer to your MCP client.
Read-only. Never deletes, closes or changes anything. No admin password.
startup_itemsonly lists folder contents anddisk_reportonly reads sizes.Identifiers are filtered out. Only whitelisted values are parsed, and a final filter on every answer removes serial numbers, UUIDs, hardware IDs, MAC addresses, your user name, your computer name and home folder paths (shown as
~) before anything is sent to Claude.Safe commands. Commands run without a shell, with absolute paths, a fixed locale and a timeout.
Requirements
macOS. The tools rely on built-in macOS commands; on other systems every tool answers that it only works on macOS.
Node.js 18 or newer. With the
.mcpbinstall (option A) Claude Desktop provides Node.js itself; for manual configuration (option B) Node.js 18+ must be installed.No
npm install, no dependencies.
Development
npm test # runs on any OS (macOS and Linux in CI) with made-up command output from test/fixtures
npm run pack # builds dist/mac-health-<version>.mcpb with the official packer (downloads it the first time)
npm start # runs the MCP server over stdioQuick manual check without a client:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
| node server/index.jsProject layout:
server/index.js MCP server (JSON-RPC over stdio), tool definitions, privacy filter on every answer
server/lib/collect.js runs the read-only macOS commands (no shell, timeouts)
server/lib/parse.js parses command output (whitelisted fields only)
server/lib/overview.js get_mac_overview: sections and grades
server/lib/diagnose.js diagnose_slowness: the eight checks
server/lib/reports.js the other tools
server/lib/explain.js plain-language names for macOS processes
server/lib/privacy.js removes identifiers before anything leaves
test/ tests with saved, made-up command output (fixtures) and a fake backendCI runs the tests on macOS (main runner) and Ubuntu with Node 18 and 22, plus a stdio smoke test, and builds the .mcpb as a downloadable artifact. Nothing is published from CI.
License
Available Tools
8 toolsbattery_reportBattery reportARead-onlyIdempotent
Battery health (capacity compared to new), charge cycles, charge state, temperature and tips, with a grade. Desktop Macs without a battery get a calm "no battery" answer. Serial numbers are never returned. Read-only.
Inputs: no named parameters.
diagnose_slownessWhy is my Mac slow?ARead-onlyIdempotent
Finds the likely reasons why this Mac feels slow and ranks them, most likely first. Checks uptime (over 14 days), memory pressure and swap (over 2 GB, naming the apps using most memory), free disk (under 10 %, naming the largest home folders), single processes over 80 % CPU in two measurements (named and explained), Spotlight indexing, heat throttling (kernel_task) battery health (under 80 %) and startup items (15 or more from third parties, at most three names shown). Each cause has a plain-Swedish explanation, the number behind it and what the user can do. Use it first when the user asks why their Mac is slow. Takes a few seconds (longer only if the disk is nearly full). Read-only, local.
Inputs: no named parameters.
disk_reportDisk reportARead-onlyIdempotent
Free space on the startup disk with a grade and warning when it gets low, plus the largest folders in the home folder (shown as ~/Library, ~/Downloads …). Only reads sizes, never deletes anything. Measuring the home folder can take up to about 20 seconds; if it takes longer the tool answers with what it has. Folders protected by macOS are skipped and reported.
Inputs: no named parameters.
get_mac_overviewMac health overviewARead-onlyIdempotent
Health check of this Mac: model, macOS version, uptime, CPU load, memory pressure (incl. swap), free disk space on the startup disk, battery (charge, health, cycles) and thermal throttling. Each part gets a grade: "Bra" (good), "Okej" (ok) or "Behöver åtgärd" (needs attention), plus advice. Use it when the user asks how their Mac is doing or why it is slow. Read-only, local, no admin password.
Inputs: no named parameters.
memory_reportMemory reportARead-onlyIdempotent
Memory pressure, swap, compressed memory and file cache, explained in plain Swedish with a grade ("Bra", "Okej", "Behöver åtgärd"). Use it when the user wonders if their Mac has enough RAM or why it is sluggish. Read-only.
Inputs: no named parameters.
startup_itemsStartup itemsARead-onlyIdempotent
What starts automatically: launch agents and daemons in ~/Library/LaunchAgents, /Library/LaunchAgents and /Library/LaunchDaemons, each marked as Apple or third party. Only lists folder contents; never changes or deletes anything.
Inputs: no named parameters.
thermal_statusThermal statusARead-onlyIdempotent
Whether macOS is slowing the processor down because the Mac is too hot (thermal throttling), with a grade and advice. Use it when the Mac is hot, the fan is loud or it suddenly feels slow. Read-only.
Inputs: no named parameters.
top_processesTop processesARead-onlyIdempotent
The apps and processes using the most CPU and memory right now (measured over about a second), with plain-language explanations of cryptic macOS names (e.g. mds_stores = Spotlight indexing, kernel_task, WindowServer, bird/cloudd = iCloud, backupd = Time Machine). Helpers are also grouped per app. Only process names are returned, never user names or full paths. Use it when the Mac is slow, hot or the fan is loud. Read-only.
Inputs: limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Several tools overlap: diagnose_slowness and get_mac_overview both answer 'why is my Mac slow' and include uptime, memory, disk, battery and thermal checks, creating real misselection risk. The component reports (memory_report, disk_report, battery_report, thermal_status, top_processes, startup_items) are more clearly scoped, but they also duplicate data exposed by the aggregate tools.
All names use snake_case, which is good, but the patterns are mixed: diagnose_slowness and get_mac_overview are verb_noun, while memory_report, disk_report, battery_report, thermal_status and startup_items are noun_noun, and top_processes has no clear verb convention. The set remains readable, but it does not follow one predictable naming scheme.
Eight tools is a well-scoped size for a Mac health diagnostics server. Each tool has a recognizable role: one ranked diagnosis, one overview, and six focused component inspections.
The surface covers the main health areas: slowness diagnosis, CPU/memory, disk, battery, thermal throttling, startup items and an overview. Minor gaps remain around network diagnostics, SMART/storage health, crash logs or macOS update status, but most common Mac health questions are supported.
Maintenance
Related MCP Connectors
Network, domain and website diagnostics for AI clients via MCP.
Hosted Apple Health MCP: workouts, sleep and HRV in ChatGPT, Claude, Gemini, Grok. Free, no export.
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Apple Health history for Claude, ChatGPT and any MCP client: sleep, HRV, workouts, daily metrics.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceDiagnose MCP servers — health checks, tool testing, token cost audits, conflict detection, and security scanning with 50+ prompt injection patterns. Works as CLI or MCP server inside Claude Desktop.1MIT
- AlicenseAqualityCmaintenanceProvides Claude with read-only access to PC diagnostics including hardware specs, live performance metrics, disk usage, network checks, and more, enabling natural language queries about PC health and performance.151MIT
- AlicenseNot gradedqualityDmaintenanceLets MCP clients (Claude Code, Claude Desktop) inspect a Linux home server's health over the network: uptime, load, memory, disk, Docker containers, systemd services, journal errors, and listening ports. Read-only, bearer-token secured.MIT
- AlicenseAqualityCmaintenanceEnables an MCP client such as Claude to inspect a Mac's battery, memory, CPU, GPU, disk, and most energy-hungry apps, and to shut down, restart, sleep, or lock the screen now or on a schedule with a cancellable 60-second grace period.147 npmMIT