MCP Server

Nexus does not ship an AI of its own. AI Integration is a small local MCP (Model Context Protocol) server inside the Nexus service: a door, off by default, through which an AI assistant you already use - Claude Desktop, Claude Code, Cursor, VS Code Copilot, or any other MCP client - can ask this PC about itself. Nothing runs in the cloud on Nexus's side and nothing is sent to Nexus; the assistant connects on this PC only (127.0.0.1), reads the same numbers the dashboard shows, and answers in its own words.

What it is for, first of all, is diagnostics and monitoring: "is anything wrong with my PC", "what is using my GPU", "why did my game crash last night", "has my SSD been getting hotter". The assistant gets the health verdict, SMART data, crash incidents, driver problems, sensor history, per-app usage, and game frame rates that Nexus already collects. With the extra permissions you grant it can also change cooling, lighting, and profiles, and every such change goes through the same path as a click in the app, so the dashboard and the assistant never disagree about what happened.

Turn it on

  • Open Settings > Privacy & Data > AI Integration and flip Enable AI Integration - "When enabled, an MCP endpoint opens on localhost that AI agents can connect to and control Nexus."
  • With the toggle on, the section shows:
    • Five permission toggles - Telemetry, Cooling, Lighting, Profiles, and History. All five start on; see Permissions.
    • MCP token - the bearer token clients authenticate with, masked until you press the eye button (Show token). Copy puts it on the clipboard. It is minted the first time you enable the integration.
    • Rotate MCP token - "Generate a new token and immediately invalidate the old one." The Rotate token button asks for confirmation first.
    • Status - Running or Not running, plus an Error row when the listener could not start.
    • Endpoint - the URL you give a client, http://127.0.0.1:9420/mcp by default.
  • Turning the toggle off closes the listener at once. Nothing listens while it is off.

Permissions

Each toggle gates one group of tools, and the toggles are read on every call - a change applies to the assistant's next call, with no restart on either side.

  • Telemetry - "Let AI agents read live sensor and system telemetry." Unlocks the read-only snapshot tools: system overview, per-device sensors, cooling and lighting state, health verdicts, specs, and the profile list.
  • Cooling - "Let AI agents view fan curves and cooling presets, and apply changes." Unlocks cooling presets, the global fan speed, fan curves, and fan calibration.
  • Lighting - "Let AI agents view lighting effects and colors, and change them." Unlocks effects, a static color, brightness, and stopping the lights.
  • Profiles - "Let AI agents view profiles and switch between them." Unlocks switching the active profile.
  • History - "Let AI agents query sensor history, per-app usage, and recorded events." Unlocks sensor and per-app history, incidents, long-window temperatures, game sessions, screen time, the audit log, and adding a marker event to the monitoring history.

A call to a tool whose toggle is off is refused with a message that names the toggle, for example "Allow cooling control is turned off in AI Integration settings. Enable it to use the apply_cooling_preset tool." The assistant relays that message; flip the toggle and ask again.

Every write call - accepted or refused - and every enable, disable, and token rotation is appended to an audit log on this PC. The assistant can read that log itself through query_events (History), so "what did you change?" has an exact answer. Rotate MCP token invalidates the old token on the next request, which disconnects every client at once; paste the new token into the clients you still want.

Connect a client

Every client needs the same two things: the endpoint from Settings, and the token sent as an Authorization: Bearer <token> header. The server speaks MCP Streamable HTTP. Press Copy next to MCP token first, then replace <token> in the snippet for your client.

Claude Code

claude mcp add --transport http nexus http://127.0.0.1:9420/mcp --header "Authorization: Bearer <token>"

That registers the server for the current project. Add --scope user to have it in every project, and check the connection with claude mcp list.

Claude Desktop

Claude Desktop's own configuration file launches local servers as a command, and its Add custom connector dialog takes an https:// URL with OAuth and has no field for a bearer header - so neither reaches Nexus on its own. Use mcp-remote, a small open-source bridge that Claude Desktop launches and that forwards to the Nexus endpoint. It needs Node.js 18 or newer.

  1. Open Claude Desktop's settings from the Claude menu, go to Developer, and press Edit Config. That opens claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows).

  2. Add the server:

    {
      "mcpServers": {
        "nexus": {
          "command": "npx",
          "args": [
            "-y", "mcp-remote", "http://127.0.0.1:9420/mcp",
            "--transport", "http-only",
            "--header", "Authorization:${AUTH_HEADER}"
          ],
          "env": { "AUTH_HEADER": "Bearer <token>" }
        }
      }
    }
    

    The header value goes through an environment variable because Claude Desktop on Windows does not escape spaces inside args.

  3. Quit Claude Desktop completely and start it again. Nexus appears under Connectors in the message box's add menu.

Cursor

Add the server to ~/.cursor/mcp.json (every project) or .cursor/mcp.json inside one project:

{
  "mcpServers": {
    "nexus": {
      "url": "http://127.0.0.1:9420/mcp",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

To keep the token out of the file, put it in an environment variable and use "Bearer ${env:NEXUS_MCP_TOKEN}" as the header value.

VS Code

Add the server to .vscode/mcp.json in a workspace, or to the user-level file the MCP: Open User Configuration command opens:

{
  "servers": {
    "nexus": {
      "type": "http",
      "url": "http://127.0.0.1:9420/mcp",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

VS Code asks you to trust the server the first time it starts. The MCP: Add Server command walks through the same fields.

Tool reference

Read-only tools answer questions; write tools change something and are recorded in the audit log.

Tool What it answers Permission
get_system_overview CPU, GPU, and memory load plus the active cooling preset, in one call Telemetry
get_sensors Every sensor (current, min, max, average, units) for one device: cpu, gpu, memory, motherboard, or storage Telemetry
get_cooling_state Every fan channel, temperature source, fan curve, the active preset, and the global speed modifier Telemetry
get_lighting_state The sync mode, active effect, brightness, and static color Telemetry
get_health The overall Diagnostics verdict and the per-component health cards Telemetry
get_storage_health Drive health, SMART and NVMe status, and the reasons behind a Caution or Warning Telemetry
get_gpu_health GPU driver, temperature, power, active throttling limit, and driver timeouts Telemetry
get_memory_info Installed memory modules, XMP state, and the last memory test result Telemetry
get_system_specs The PC's hardware and OS summary, plus when it booted and how long it has been up Telemetry
get_conflicts Other RGB or fan software that competes with Nexus for the same devices Telemetry
get_update_status Whether a Nexus update is available, and firmware update status for every connected device with a bundled image Telemetry
list_profiles Every saved profile, with the active one marked Telemetry
apply_cooling_preset Applies off, silent, balanced, or turbo to every unlocked fan; locked fans and custom curves are left alone Cooling (write)
set_global_fan_speed Scales every curve-driven fan by a percentage without changing the curves Cooling (write)
set_fan_curve Creates or updates a named temperature-to-speed curve and attaches it to fan channels Cooling (write)
calibrate_fans Runs fan calibration to learn each fan's real speed range Cooling (write)
apply_lighting_scenario Starts a shipped effect (rainbow, fire, aurora, plasma, and the rest) on every synced device Lighting (write)
set_static_color Fills every synced device with one color, snapped to the nearest built-in solid-color preset Lighting (write)
set_brightness Sets the master brightness cap, as a percentage Lighting (write)
stop_lighting Stops every effect and turns the LEDs off Lighting (write)
apply_profile Switches the active profile - fans, lighting, and every other per-profile setting together Profiles (write)
get_history_summary Min, max, average, and latest for every sensor with data over a window, and the sensor ids to drill into History
query_sensor_history A time series for one sensor, up to the retention window History
get_temperature_history Temperature history in 5-minute buckets (hourly beyond a day) for one or every component, up to 14 days, each bucket tagged with the app in the foreground at the time History
get_top_apps The apps ranked by CPU, memory, GPU, VRAM, disk, or network usage over a window History
query_app_history A time series for one app under one metric History
get_process_info File, version, and signature detail for one process: path, publisher, signed or not, hash, first seen History
get_screen_time How long each app was in the foreground, for a day, an hour, a date range, or one app over a range History
get_game_sessions Every tracked game's frame-rate rollup, or one game's recent sessions with resolution, refresh rate, and min/max/average fps History
get_incidents Crash, blue-screen, hardware-error, and GPU driver-reset incidents over a window of days, repeats collapsed with a count History
query_events The AI Integration audit log - every write call and lifecycle event, newest first History
add_monitoring_event Adds a marker to the monitoring history, so a change shows up on the charts History (write)

Questions an assistant can answer

  • "Is anything wrong with my PC?"
  • "What is using my GPU right now?"
  • "Why did my game crash last night?"
  • "How hot did the CPU get this week?"
  • "Make it quieter." (Cooling on)
  • "Set the lights to a calm blue at 40%." (Lighting on)
  • "Switch to my Gaming profile." (Profiles on)
  • "What have you changed today?"

Security and privacy

  • Loopback only. The MCP listener binds 127.0.0.1 on its own port, separate from the dashboard. It is not reachable from another machine, from a paired phone or panel, or over the remote link, and a web page from another site cannot call it: requests carrying a non-local origin are refused, and a page on this PC still needs the token.
  • A token on every request. Clients present the MCP token as a bearer header - never in the URL. It is separate from the phone pairing, and rotating it revokes every client at once.
  • Everything stays on the PC, on Nexus's side. There is no Nexus AI service: the server answers from the local service's own data and nothing is sent to Nexus. What a client does with the answer is up to that client - an assistant backed by a cloud model sends the tool results to that model's provider the same way it sends your prompt, and a local model keeps them on the machine.
  • What history holds. The History tools read the same monitoring store the Monitoring page shows: per-second metrics are kept for 7 days, and temperature history for 90 days. Nothing extra is collected for the assistant. The audit log is the one AI-specific record and is never pruned.
  • Turning it off. Flip Enable AI Integration off. The listener closes immediately and every client loses its connection.

Troubleshooting

  • Status shows Not running with an Error row. The listener could not bind port 9420 - another program holds it. Close that program, then turn Enable AI Integration off and back on.
  • The client reports 401. The token does not match. Press Show token or Copy and paste the current value; after a rotation every client needs the new one. The header must read Authorization: Bearer <token> - a token in the URL is ignored.
  • The client cannot connect at all. AI Integration is off, or the Nexus service is not running. Check Status in Settings.
  • A tool refuses with "Allow ... is turned off in AI Integration settings". Turn that permission toggle on and ask again; no restart is needed.

Tip

The assistant's health answers come from System Diagnostics and its usage answers from Monitoring. Open those pages to see the same data, with charts, when a one-line answer is not enough.