Skip to main content
Glama
Go-Business-Inc

MCP Mac Monitor

MCP Mac Monitor

A local MCP server that lets Claude (or any MCP client) check the status of your Mac — battery, memory, CPU, GPU, disk, and which apps are draining your battery — and shut it down, restart it, or put it to sleep.

Ask things like "How's my Mac doing?", "What's eating my battery?" or "Shut down my Mac in 30 minutes" — even from your phone, while Claude runs on the Mac.

Tools

Tool

What it does

get_snapshot

Everything at once: system, battery, memory, CPU, disk, top processes

get_battery

Charge %, charging state, time remaining, cycle count, health, temperature

get_memory

RAM used/total, compressed, swap, memory pressure

get_cpu

Usage %, load average, thermal state

get_disk

Free/used space per volume

get_top_processes

Processes using the most CPU or RAM

get_energy

Apps draining the most battery (energy impact + GPU %), with per-app CPU and GPU usage and total GPU usage

get_system_info

Model, chip, macOS version, uptime, local IP, current time

shutdown

Shut down now or in X minutes. If shutdown gets blocked, the Mac goes to sleep after 2 minutes

restart

Restart now or in X minutes

sleep

Sleep now or in X minutes

lock_screen

Turn the display off (locks it if a password is required on wake)

get_power_action / cancel_power_action

See / cancel a scheduled power action

Related MCP server: AppleScript Automation MCP

Requirements

  • macOS (Apple Silicon recommended — per-app GPU usage needs an Apple GPU)

  • Node.js 18 or later

  • No sudo required

Installation

git clone https://github.com/Go-Business-Inc/MCP-MAC-Monitor.git
cd MCP-MAC-Monitor
npm install

Claude Code

claude mcp add --scope user mac-monitor -- node /absolute/path/to/MCP-MAC-Monitor/src/index.js

Claude Desktop

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

{
  "mcpServers": {
    "mac-monitor": {
      "command": "/usr/local/bin/node",
      "args": ["/absolute/path/to/MCP-MAC-Monitor/src/index.js"]
    }
  }
}

Use the output of which node as command — Claude Desktop doesn't load your shell's PATH.

Permissions

The first time the Mac shuts down or restarts, macOS asks for permission to let the app control System Events (System Settings → Privacy & Security → Automation).

Safety

  • 60-second grace period. Every power action waits at least 60 s, so the reply reaches you and there's time to call cancel_power_action if it was a mistake.

  • Survives Claude closing. Scheduled actions run in a separate process (state in ~/.mac-monitor/scheduled.json), so they execute even if Claude quits.

  • Blocked shutdowns fall back to sleep. If an app refuses to quit (e.g. an unsaved document), the Mac sleeps after 2 minutes instead of draining the battery.

  • FileVault and remote restarts. With FileVault on, a restarted Mac stops at the disk-unlock screen until someone types the password — Claude won't be reachable remotely until then.

About the energy numbers

  • energy_impact is the POWER value from top — the same kind of relative score as Activity Monitor's Energy Impact (not watts). It reflects CPU time and wakeups but not GPU work, so get_energy ranks apps by energy_impact + gpu_percent.

  • Per-app GPU % comes from the GPU driver's per-process counters, sampled over ~2 seconds.

  • Real wattage would require powermetrics, which needs sudo; this server intentionally avoids it.

Configuration

Environment variable

Default

Purpose

MAC_MONITOR_DRY_RUN

—

Set to 1 to log power commands to ~/.mac-monitor/dry-run.log instead of running them

MAC_MONITOR_STATE_DIR

~/.mac-monitor

Where scheduled-action state is stored

MAC_MONITOR_FALLBACK_SECONDS

120

How long a blocked shutdown waits before sleeping the Mac

Credits

Built by Go Business Inc.

Go Business Inc. helps companies transform their operations through digital automation: process-based CRM and sales pipelines, AI chatbots and agents, automated marketing journeys, customer self-service portals, business intelligence dashboards, hardware automation, and remote-work management.

Available Tools

14 tools
cancel_power_actionCancelar apagado programadoA
Idempotent

Cancela el apagado, reinicio o reposo programado, si todavía no se ejecutó.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (idempotentHint=true, readOnlyHint=false, destructiveHint=false), the description adds the critical timing behavior: the cancellation only takes effect if the action has not yet been executed. This clarifies a key edge case not captured in annotations. It does not specify what happens if no scheduled action exists, but that is a minor omission for such a simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action verb ('Cancela'). It contains no redundant information and is easily scannable by an agent, with all necessary context packed into a minimal structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter cancel tool with no output schema, the description is complete. It states what action it cancels, the condition under which it works, and implicitly its idempotent nature. The tool's simplicity means no further detail is required for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema already covers all input requirements (100% coverage). There is nothing for the description to add about parameters, and the baseline of 4 applies since no parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb 'Cancela' (cancels) with a clear resource: scheduled shutdown, restart, or sleep. It distinguishes itself from sibling tools that initiate actions (shutdown, restart, sleep) or retrieve information (get_power_action), leaving no ambiguity about its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear condition 'si todavía no se ejecutó' (if it has not yet been executed), which tells the agent when it is appropriate to use this tool. It does not explicitly mention alternatives or exclusions, but the condition itself implies the timing constraint, and the tool's role is evident from the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_batteryBateríaA
Read-only

Batería: porcentaje, si está cargando, fuente de energía, tiempo restante, ciclos, salud (capacidad máxima vs. de fábrica), condición y temperatura.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds value by listing the specific battery attributes returned, which goes beyond the annotations. However, it does not disclose details like whether the tool requires special permissions, whether some fields may be unavailable on certain hardware, or the format of the response. With annotations covering the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the tool's purpose and then lists the specific data points. It is efficient and contains no filler. It could be slightly improved by adding a brief usage note, but as-is it is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with annotations covering safety, the description is mostly complete. It lists the output fields, which is the main thing an agent needs to know. However, it does not mention potential platform variations (e.g., some fields may be null on certain devices) or whether the tool returns a single object or a structured payload. Given the tool's simplicity, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides no parameter semantics to rely on. The description compensates by clearly enumerating the data fields the tool returns, which is the only semantic information an agent needs. With 0 params, the baseline is 4, and the description meets that baseline by explaining what the output contains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: retrieving battery information, and enumerates the specific data points (percentage, charging status, power source, time remaining, cycles, health, condition, temperature). This is a specific verb+resource combination that distinguishes it from siblings like get_energy or get_system_info, though it doesn't explicitly name a sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: it is a read-only informational tool for battery status. However, it does not explicitly state when to use this tool versus alternatives like get_energy or get_system_info, nor does it provide exclusion criteria. The context is clear enough for an agent to infer basic usage, but explicit guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cpuCPUA
Read-only

CPU: chip, núcleos, uso actual (%), carga promedio 1/5/15 min y estado térmico.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, and the description adds useful snapshot semantics: current usage (%), 1/5/15 min load averages, and thermal status. No side effects are hidden, and for a read-only metric tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence where every listed item carries distinct information: chip, cores, usage, load, thermal state. It is front-loaded with the subject and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool, the description covers the main return categories well. However, 'estado térmico' is somewhat vague, and with no output schema, a bit more precision about that field's format would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty with 100% coverage, so there are no parameters for the description to clarify. A baseline score of 4 applies for zero-parameter tools, since no semantic gap exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description enumerates CPU-specific fields (chip, cores, current usage, load averages, thermal state), making the resource unmistakable against siblings like get_memory and get_disk. However, it is a noun-phrase fragment with no explicit verb; the action 'get' is only carried by the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided, and no alternatives are named. The content strongly implies use whenever current CPU metrics are needed, but this is left to inference rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_diskDiscoA
Read-only

Espacio en disco: total, usado y libre del disco interno y de los discos externos montados.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only safety profile is covered. The description adds useful scope information (internal plus mounted external disks) and the three data dimensions, but it does not disclose units, how missing/unmounted external disks are handled, or potential error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no filler. The core resource and metrics are front-loaded, and every word adds relevant meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only, low-complexity tool, the description is largely complete: it names the exact data returned and the disk scope. The only notable gap is the absence of units or return format, which would be helpful since there is no output schema, but it is not essential for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. There is no parameter semantics for the description to clarify, and the description instead helpfully enumerates what the tool reports (total, used, free), which is appropriate compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (disk), the scope (internal and mounted external disks), and the exact metrics returned (total, used, free). Although it is a noun phrase rather than an explicit verb, the tool name 'get_disk' makes the action unambiguous, and the resource clearly distinguishes it from siblings like get_memory and get_cpu.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: use this tool when disk space information is needed. However, the description gives no explicit when-to-use guidance, no exclusions, and no mention of alternatives, even though there are no direct disk-related siblings to confuse it with.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_energyConsumo de batería por programaA
Read-only

Qué programas consumen más batería ahora mismo. energy_impact es el puntaje POWER de top (CPU y despertares; relativo, no vatios) y NO incluye la GPU, por eso la lista se ordena por energy_impact + gpu_percent. Incluye % de CPU y de GPU de cada programa, el uso total de la GPU y los programas que más GPU usan. Mide durante ~2 s. Úsalo para '¿qué se come la batería?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoCuántos programas devolver

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=true, so the description carries the burden of explaining behavior. It discloses that energy_impact is a relative POWER score from top (not watts), that it excludes GPU and therefore the ranking uses energy_impact plus gpu_percent, and that measurement lasts about 2 seconds. These non-obvious traits help an agent interpret results and avoid misrepresenting the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four compact Spanish sentences, each delivering necessary information: purpose, technical interpretation, output contents, measurement duration, and use case. It is slightly dense with technical caveats, but there is no redundancy or fluff; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Though there is no output schema, the description tells the agent exactly what results will contain: per-program CPU and GPU percentages, total GPU usage, and the top GPU-using programs, along with the ordering rationale. It also explains the relative unit and measurement duration, covering everything an agent needs to invoke and interpret the tool for this one-parameter read-only operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the only parameter 'limit' with default, minimum, maximum, and a Spanish description, giving 100% schema coverage. The tool description adds no parameter-specific detail beyond what the schema already provides. A baseline score of 3 is correct because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by answering 'Qué programas consumen más batería ahora mismo', which clearly states the tool's purpose and resource. It further differentiates from siblings by specifying that it reports per-program battery impact and includes GPU usage caveats. Even though it is phrased as a question, an agent can immediately identify what the tool does and how it differs from get_battery, get_cpu, or get_top_processes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit trigger phrase: 'Úsalo para ¿qué se come la batería?', telling an agent exactly when to select the tool. However, it does not name alternative tools or explain when not to use it in favor of siblings like get_battery or get_top_processes. This is clear contextual guidance but lacks formal exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_memoryMemoria RAMA
Read-only

Memoria RAM: total, usada, memoria de apps, wired, comprimida, caché, swap y presión de memoria (normal/warning/critical).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=truehot and openWorldHint=false, so the read-only safety profile is established. The description adds value by listing exactly which memory statistics and pressure levels (normal/warning/critical) the agent can expect, giving concrete behavioral expectations beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single line that front-loads the resource name and then lists only relevant metric categories. There is no filler, repetition, or extraneous context; every item in the list conveys useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only tool, the description covers the key information an agent needs: what resource is queried and what kind of data is returned. Minor omissions like units or formatting are acceptable given the absence of an output schema and the simple, observational nature of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description supplements the empty schema by clarifying what the tool measures)Skip returns, which is the relevant semantic content for a no-argument tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the exact resource (RAM) and enumerates the specific metrics returned (total, used, app memory, wired, compressed, cache, swap) plus memory pressure states. This makes it clearly distinct from sibling tools like get_cpu, get_disk, and get_battery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: consult this tool when memory-related metrics are needed. However, it provides no explicit guidance about when to prefer it over alternatives or when not to use it. The resource name alone conveys most of the intent, but no exclusions or routing cues are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_power_actionVer apagado programadoA
Read-only

Indica si hay un apagado/reinicio/reposo programado y cuánto falta.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes the safe read-only nature. The description adds that the tool reports presence and remaining time for three kinds of power actions, which is useful context but does not disclose deeper behavior like exact response structure or units.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-formed sentence with no filler. The main function is front-loaded and every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only tool with no output schema, the description adequately conveys the core return semantics: presence of a scheduled power action and time remaining. It is slightly vague about the exact format or units of the remaining time, but sufficient for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema description coverage is 100%, so the baseline of 4 applies. The description contains no parameter-specific information, which is correct and complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('indica') and a clear resource: whether a scheduled shutdown/restart/sleep exists and how long remains. It is unambiguous, though it does not explicitly contrast with sibling action tools like shutdown or cancel_power_action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives such as shutdown, restart, sleep, or cancel_power_action. The intended use is implied by the read-only phrasing, but no explicit exclusions or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_snapshotEstado general de la MacA
Read-only

Resumen completo de la Mac en una sola llamada: sistema, batería, memoria, CPU, disco y los 5 procesos que más CPU usan. Úsalo para preguntas generales como '¿cómo está la compu?'.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, and the description adds that the tool aggregates six distinct data areas into a single response, which is valuable behavioral context beyond the annotation. It does not mention potential performance costs or failure modes, but for a read-only snapshot this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, with the action and content front-loaded and the use case provided immediately after. There is no unnecessary wording or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully explains what data the agent will receive (six areas of system information) and when to call it, with no parameters or output schema to complicate. It is complete for a simple, read-only aggregate tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema coverage is trivially 100%, so there are no parameter details to add. Per the baseline for zero-parameter tools, the description adequately clarifies what the call returns, compensating for the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a complete summary of the Mac in one call, explicitly listing system, battery, memory, CPU, disk, and top processes. This directly distinguishes it from sibling tools like get_battery or get_cpu, which each cover a single subsystem.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context: 'Úsalo para preguntas generales como "¿cómo está la compu?"' which effectively communicates when to use the tool. However, it does not explicitly name alternatives or state when not to use it, stopping short of full sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_system_infoInformación del sistemaA
Read-only

Nombre de la Mac, modelo, chip, versión de macOS, usuario, tiempo encendida, modo de bajo consumo, IP local y hora actual.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description reinforces a safe, read-only behavior by listing the exact data returned. Because there is no output schema, the description carries the burden of explaining what the agent will receive, and it does so concretely. It does not go into format, units, or potential delays, but for a simple system summary this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the full list of returned attributes. Every word contributes to the agent's understanding, with no filler or repetition of the title/name. It is concise without being under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only info retrieval tool, the description is nearly complete: it lists exactly what the agent will get back. Slight gaps remain around units or formats (e.g., how uptime is expressed, whether low-power mode is a boolean), but no output schema or richer context was provided. This is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter meaning, and it does not attempt to invent any. The schema fully covers the empty parameter list, so nothing is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly enumerates the system attributes returned (Mac name, model, chip, macOS version, user, uptime, low-power mode, local IP, current time), making the tool's purpose unmistakable. It lacks an explicit verb like 'returns' or 'gets', but the list itself unambiguously signals a read-only system information retrieval operation. It is distinct from the specialized sibling tools because it aggregates many system-level facts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the many sibling get_* tools or the power-action tools. There is no explicit 'use this for general system info, use get_cpu/get_battery for specific metrics' routing. The usage context is only implied by the tool's name and field list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_processesProcesos con más consumoA
Read-only

Procesos que más CPU o memoria consumen en este momento.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoCuántos procesos devolver
sort_byNoOrdenar por uso de CPU o de memoriacpu

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already supply readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds 'en este momento', clarifying that this returns a live, current-time snapshot rather than a historical or continuous report. This temporal scoping adds value beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence, front-loaded with the core purpose. Every word contributes; there is no redundant text or boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description would ideally mention what fields each returned process includes (name, PID, CPU/memory values). The lack of return format info and no mention of default limit/organization could leave an agent guessing about downstream use. It is adequate but with a clear gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: limit and sort_by already have clear descriptions including defaults, bounds, and the cpu/memory enum. The description simply echoes 'CPU o memoria' and does not add format, precedence, or edge-case semantics beyond the schema, so it remains at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Procesos que consumen CPU o memoria en este momento' makes it clear this returns a current list of top processes by CPU or memory. It is distinct from siblings like get_cpu/get_memory (system metrics) though it does not explicitly name them, so it misses the highest tier of own-sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives. The phrase 'en este momento' implies a current snapshot but never mentions when a user should prefer this over get_cpu, get_memory, or another sibling. No exclusions or alternative routing is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lock_screenApagar/bloquear pantallaA

Apaga la pantalla de inmediato. macOS la bloquea si está configurado para pedir contraseña al apagar la pantalla (por defecto sí). La Mac sigue encendida.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it explains the immediate screen-off behavior, the conditional macOS lock when password is required (defaulting to yes), and that the machine stays powered on. This gives a clear behavioral model without needing to infer from readOnlyHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, purposeful sentences that front-load the primary action and then add the two most important behavioral caveats. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description covers the action, the locking condition, the default behavior, and the machine state. It is complete enough for an agent to invoke the tool safely and predict the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description cannot add parameter detail; the baseline of 4 applies. There is no missing schema information to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete verb+resource: 'Apaga la pantalla de inmediato' (turns off the screen immediately), and clarifies that the Mac remains on, differentiating it from power-off tools. This is specific enough for an agent to know what action it performs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the effect but does not explicitly explain when to choose this tool over siblings like sleep, shutdown, or restart. The context implies it is for turning off the display while keeping the Mac running, but it never names alternatives or sets exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restartReiniciar la MacA
Destructive

Reinicia la Mac de forma normal, ahora o dentro de X minutos (mínimo 60 s). Cancelable con cancel_power_action.

ParametersJSON Schema
NameRequiredDescriptionDefault
delay_minutesNoMinutos de espera antes de ejecutar. 0 = en 60 segundos (margen para que llegue la respuesta).

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Las anotaciones ya señalan destructiveHint=true, y la descripción añade información valiosa: que la acción es cancelable y que existe un margen mínimo de 60 segundos antes de ejecutarse, lo cual modera el impacto destructivo. No contradice las anotaciones.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dos frases claras y sin relleno: primero la acción y la opción de retraso, después la cancelación. Todo es relevante, no se desperdician palabras.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Para una herramienta con un solo parámetro, anotación destructiva y sin output schema, la descripción es suficiente: acción, sistema de retraso, margen de 60 s y cancelación. No faltan datos críticos, aunque podría destacar que el reinicio interrumpe procesos (ya está cubierto por 'destructiveHint').

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

La cobertura del esquema es 100% y éste ya explica que 0 significa 'en 60 segundos'. La descripción repite la idea de X minutos sin añadir detalles sobre formato o límites que no estén ya disponibles en la schema. No compensa nada significativo.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

La descripción usa el verbo 'Reinicia' con el recurso 'la Mac', indicando exactamente la acción. Aunque no diferencia explícitamente de 'shutdown' o 'sleep', el significado es claro y no deja ambigüedad sobre qué hace.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No proporciona orientación explícita sobre cuándo usar esta herramienta en lugar de las alternativas (shutdown, sleep). Solo menciona la cancelación con cancel_power_action, pero eso no ayuda a seleccionar entre opciones de gestión de energía.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shutdownApagar la MacA
Destructive

Apaga la Mac de forma normal (como Menú Apple → Apagar), ahora o dentro de X minutos. Siempre espera al menos 60 s. Se puede cancelar con cancel_power_action mientras no se haya ejecutado. Si el apagado queda bloqueado (documento sin guardar, una app que no se cierra), la Mac entra en reposo después de 2 minutos para no gastar batería (fallback_to_sleep). Confirma con el usuario antes de usarlo si no lo pidió explícitamente.

ParametersJSON Schema
NameRequiredDescriptionDefault
delay_minutesNoMinutos de espera antes de ejecutar. 0 = en 60 segundos (margen para que llegue la respuesta).
fallback_to_sleepNoSi el apagado queda bloqueado, poner la Mac en reposo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, and the description adds valuable behavioral context beyond that: the 60-second wait, cancellation mechanism, blocking behavior leading to fallback_to_sleep after 2 minutes, and the requirement for user confirmation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately sized (four sentences), front-loaded with the core action, and each sentence adds necessary context (delay, cancellation, fallback, confirmation). Could be slightly tightened but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (delay, cancellation, fallback, blocking, confirmation), the description covers all operational aspects an agent needs to invoke it correctly. No output schema is present, but that's acceptable for a shutdown command.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly, including the meaning of delay_minutes=0 and fallback_to_sleep. The description reinforces these but adds no net new parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool shuts down the Mac normally, referencing the Apple Menu equivalent. It distinguishes itself from siblings like sleep, restart, and lock_screen by specifying the shutdown action and its behavior (wait, cancel, fallback).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to confirm with the user unless explicitly requested, provides a concrete timeout (60 seconds minimum), and mentions cancellation via cancel_power_action. This gives clear when-to-use and when-to-avoid guidance, though it doesn't contrast with sleep directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sleepPoner la Mac en reposoA
Destructive

Pone la Mac en reposo (sleep), ahora o dentro de X minutos (mínimo 60 s). Casi no gasta batería y no cierra las apps. Ojo: al dormir, Claude en esta Mac deja de responder hasta que alguien la despierte. Cancelable con cancel_power_action.

ParametersJSON Schema
NameRequiredDescriptionDefault
delay_minutesNoMinutos de espera antes de ejecutar. 0 = en 60 segundos (margen para que llegue la respuesta).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description reveals key behavioral effects: negligible battery drain, apps remain open, Claude becomes unresponsive until the Mac is woken, and the action is cancelable. This is exactly the kind of context an agent needs to anticipate consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler: the first states the action and timing, the second covers side effects, the third delivers the critical warning and the cancel path. Every sentence earns its place and the most important caveat is highlighted with 'Ojo'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter power action with no output schema, the description is complete. It covers what happens, when it happens, side effects, the impact on Claude's availability, and cancellation. The annotations already cover the destructive/read-only profile, so nothing crucial is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes delay_minutes, including the 0-means-60s behavior, so the baseline is 3. The description adds the clarifying 'mínimo 60 s' and explains the 'now or in X minutes' semantics, reinforcing the schema's meaning and resolving the potential ambiguity of delay_minutes=0.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the exact action: 'Pone la Mac en reposo (sleep)', with clear resource and verb. It also differentiates from siblings by noting it 'no cierra las apps' and 'Casi no gasta batería', contrasting with shutdown/restart, and references cancel_power_action for cancellation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: immediate or delayed execution, a minimum delay, and the ability to cancel via cancel_power_action. It also includes a when-not-to-use caveat (Claude stops responding while asleep), though it does not explicitly contrast with shutdown/restart or lock_screen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv1.0.0
    • First observedcancel_power_action
    • First observedget_battery
    • First observedget_cpu
    • First observedget_disk
    • First observedget_energy
    • First observedget_memory
    • First observedget_power_action
    • First observedget_snapshot
    • First observedget_system_info
    • First observedget_top_processes
    • First observedlock_screen
    • First observedrestart
    • First observedshutdown
    • First observedsleep

TDQS

A4.2/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target a distinct metric or action, but get_snapshot overlaps with the individual get_* monitoring calls, and get_top_processes/get_energy both report process-level usage. The descriptions clarify their intended use, so ambiguity remains limited.

Naming Consistency5/5

Read operations consistently follow the get_<noun> pattern, while power actions use simple imperative verbs like shutdown, restart, sleep, and lock_screen. Everything uses lowercase snake_case, making the set highly predictable.

Tool Count5/5

With 14 tools, the server is well-scoped: approximately nine monitoring read tools, four power/lock controls, and one pair for checking/canceling scheduled actions. Each tool earns its place without redundancy.

Completeness5/5

The tool surface fully covers the stated domain: battery, memory, CPU, disk, system info, processes, energy usage, and a complete power-control lifecycle including scheduling and cancellation. No obvious dead ends or missing core operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    MCP server that enables AI to fully control macOS — mouse, keyboard, terminal, screenshots, window management, UI element detection, and provides AI-optimized information reporting.
    36
    21 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Actvt's embedded MCP server for macOS. 25 tools for live CPU, GPU, memory and network metrics, listening ports with a guarded port_kill, and Claude Code and Codex session analytics (cost, tokens, transcript search, error patterns). It ships inside the Actvt macOS app and binds to loopback on the user's machine, so it starts with the app, not as a standalone or containerised process.
    MIT