Skip to main content

nexalware-mcp

Nexalware as an MCP server, over stdio, for Python. Point any MCP-aware host (Claude Desktop, Claude Code, Cursor, etc.) at it, and your device control tools show up automatically, the host's own model decides when to call them. It's a thin wrapper over the Python SDK's make_tools(), same operations, same permissions, just discoverable instead of hand-coded.

Already on Node? See @nexalware/mcp, same tool set. Building your own agent instead of using a pre-built host? Use the SDK directly, in Python or TypeScript. It's one function call away in code you already control, no subprocess or protocol discovery needed.

Get an API key

Create one on the dashboard (API Keys), scoped with a DeviceGrant to only the device(s) this agent should touch. This key ends up sitting in a local config file, least privilege matters more here than for a typical server-side integration.

Claude Code

claude mcp add nexalware -e NEXALWARE_API_KEY=nxw_live_sk_your_key_here -- uvx nexalware-mcp

Claude Desktop, or any host using a mcpServers config file

Add this block to the host's MCP config (Claude Desktop: Settings -> Developer -> Edit Config):

{
  "mcpServers": {
    "nexalware": {
      "command": "uvx",
      "args": ["nexalware-mcp"],
      "env": {
        "NEXALWARE_API_KEY": "nxw_live_sk_your_key_here"
      }
    }
  }
}

Restart the host afterward, tools only load at startup. This uses uvx to run the package without a separate install step, every launch runs the latest published release. No uv? Install it once (curl -LsSf https://astral.sh/uv/install.sh | sh), or fall back to a regular install:

pip install nexalware-mcp
{
  "mcpServers": {
    "nexalware": {
      "command": "nexalware-mcp",
      "env": { "NEXALWARE_API_KEY": "nxw_live_sk_your_key_here" }
    }
  }
}

Environment variables

Variable Required Meaning
NEXALWARE_API_KEY yes The key from the step above. The server exits immediately with an error if this is missing.
NEXALWARE_API_URL no Override for a self-hosted or staging deployment. Defaults to the production API.

Tools

Every tool takes and returns the same shape as its equivalent Python SDK method, a failed call comes back as a normal MCP tool error with the same message the API itself returns, not a crash.

Tool What it does Required params
list_devices List the devices this key can act on (only what its DeviceGrant(s) cover). Call this first. none
get_device_commands List the commands a device accepts. device_id
send_command Send a command to a device. device_id, cmd
turn_device_on Shorthand for the ON command. device_id
turn_device_off Shorthand for the OFF command. device_id
get_device_telemetry Read a device's telemetry history. device_id
get_latest_telemetry Current state plus latest reading per metric. device_id
list_sub_devices List sub-devices behind a master. device_id
get_sub_device Read one sub-device's state and capabilities. device_id, sub_device_id
get_sub_device_telemetry Read one sub-device's telemetry history. device_id, sub_device_id
send_sub_device_command Send a command to one sub-device behind a master. device_id, sub_device_id, cmd
list_schedules List a device's active schedules. device_id
get_schedule_context List the commands available to schedule. device_id
create_schedule Create or replace a schedule slot (0-4). device_id, slot, on_ts, off_ts
update_schedule Update an existing schedule slot. device_id, slot
delete_schedule Cancel a schedule slot. device_id, slot
get_schedule_history List a device's completed/cancelled schedules. device_id

What it can't do

Nothing outside the calling key's own DeviceGrant. There's no tool to create a grant, register a device, or manage API keys, those stay dashboard-only, an MCP tool call is only ever as capable as the key you gave it, never able to expand its own access.

create_schedule/update_schedule fire existing commands from a device's catalog, they can't invent new ones. Defining, editing, or deleting a command definition itself stays a dashboard-only action.

License

MIT

Release files for nexalware-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nexalware-mcp 0.1.0
File Size Uploaded
nexalware_mcp-0.1.0.tar.gz 6.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nexalware-mcp 0.1.0
File Interpreter ABI Platform
nexalware_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.5 kB

Release files / nexalware_mcp-0.1.0.tar.gz

Download URL nexalware_mcp-0.1.0.tar.gz
Size 6.1 kB
Tags Source
SHA-256 checksum
How to use checksums
22695142fa8d62a8aff594d03da71ae47e10ce95414b68192e3e90c485e5b67c
BLAKE2b-256 checksum
How to use checksums
4ff9b67f84523dd898f10dbe1e7f98e160ca48070338142d316f43bf3a77e924
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / nexalware_mcp-0.1.0-py3-none-any.whl

Download URL nexalware_mcp-0.1.0-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4dbbd30eae791f9b99aabcae043c1bc8b4407574f77e7dd58058469b19dba261
BLAKE2b-256 checksum
How to use checksums
ac278e44a2659d4c3551ccb378730a5ce5299d8cb8963e3ae4b2df984f74166b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page