MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

MCP server by tristan-gfr

Created 2/10/2026
Updated about 21 hours ago
Repository documentation and setup instructions

Neat Pulse MCP Server

An MCP server for the Neat Pulse API, enabling Claude Code (or any MCP client) to manage your Neat devices, rooms, locations, regions, and users.

Quick Start

1. Get your credentials

You need two things from Neat Pulse:

  • API Key — your Bearer token
  • Org ID — your organisation identifier

2. Add to Claude Code

claude mcp add neat-pulse \
  -e NEAT_PULSE_API_KEY=your-api-key \
  -e NEAT_PULSE_ORG_ID=your-org-id \
  -- npx neat-pulse-mcp

That's it. Restart Claude Code and start asking questions about your Neat devices.

Alternative: manual config

Add to your Claude Code settings file:

{
  "mcpServers": {
    "neat-pulse": {
      "type": "stdio",
      "command": "npx",
      "args": ["neat-pulse-mcp"],
      "env": {
        "NEAT_PULSE_API_KEY": "your-api-key",
        "NEAT_PULSE_ORG_ID": "your-org-id"
      }
    }
  }
}

What You Can Do

Once installed, just ask Claude in natural language:

  • "List all my Neat devices"
  • "Which devices are currently online?"
  • "What's the temperature in the conference room?"
  • "Reboot the Bar in the lobby"
  • "Create a new room called Demo Room"
  • "Set the brightness to 80% on device X"
  • "Show me sensor data for all rooms in Oslo"
  • "Who are the admins in my organisation?"

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | NEAT_PULSE_API_KEY | Yes | Bearer token for the Neat Pulse API | | NEAT_PULSE_ORG_ID | Yes | Organisation ID (auto-injected into all API calls) |

Tools (29 total)

Endpoints (Devices)

| Tool | Description | |------|-------------| | endpoints_list | List all devices, optionally filtered by regionId or locationId | | endpoints_get | Get detailed status and info for a device | | endpoints_delete | Unenroll a device | | endpoints_reboot | Reboot a device and any paired devices | | endpoints_get_config | Get a device's current settings | | endpoints_apply_config | Apply configuration changes to a device | | endpoints_sensor_data | Get latest sensor reading (temp, humidity, CO2, VOC, people count) | | endpoints_bulk_sensor_data | Get sensor data for all devices |

Locations

| Tool | Description | |------|-------------| | locations_list | List all locations and their region assignments | | locations_create | Create a new location, optionally assign to a region | | locations_update | Update a location's name or region | | locations_delete | Delete a location |

Regions

| Tool | Description | |------|-------------| | regions_list | List all regions and their locations | | regions_create | Create a new region | | regions_update | Rename a region | | regions_delete | Delete a region |

Rooms

| Tool | Description | |------|-------------| | rooms_list | List all rooms | | rooms_get | Get room details including enrolled devices | | rooms_create | Create a room, optionally assign to a location | | rooms_update | Update a room's name or location | | rooms_delete | Delete a room | | rooms_sensor_data | Get aggregated sensor data for a room | | rooms_bulk_sensor_data | Get sensor data for all rooms | | rooms_regenerate_dec | Regenerate the device enrolment code (DEC) for a room |

Users

| Tool | Description | |------|-------------| | users_list | List all users with roles and auth methods | | users_get | Get a user's details | | users_create | Create a user and send an email invitation | | users_update | Update a user's role | | users_delete | Delete a user |

Device Configuration

The endpoints_apply_config tool accepts any combination of these settings:

| Setting | Type | Description | |---------|------|-------------| | brightness | number | Screen brightness (0.0 - 1.0) | | language | string | Device language | | timezone | string | e.g. Europe/Oslo | | time24h | boolean | 24-hour time format | | temperatureUnit | enum | TEMPERATURE_UNIT_CELSIUS / TEMPERATURE_UNIT_FAHRENHEIT | | defaultFramingMode | enum | DISABLED / GROUP / INDIVIDUAL / SPEAKER | | screenStandby | number | Screen standby timeout (seconds) | | screenStayOn | boolean | Keep screen always on | | bluetooth | boolean | Enable Bluetooth | | autoWakeup | boolean | Enable auto wakeup | | automaticUpdates | boolean | Enable automatic updates | | deepNoiseSuppression | boolean | Enable deep noise suppression | | nightMode | boolean | Enable night mode | | usbMode | enum | PERIPHERAL / AUTO / MANUAL | | hdmiCecControl | boolean | Enable HDMI CEC control | | hdmiScreenMirroring | boolean | Enable HDMI screen mirroring | | allowNeatShare | boolean | Enable Neat Share | | byodMode | boolean | Enable BYOD mode | | shareAnalytics | boolean | Share analytics with Neat |

See the Neat Pulse API docs for the full list.

Development

git clone https://github.com/tristan-gfr/neat-pulse-mcp.git
cd neat-pulse-mcp
npm install
npm run build

License

MIT

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-neat-pulse-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "tristan-gfr-neat-pulse-mcp": { "command": "npx", "args": [ "tristan-gfr-neat-pulse-mcp" ] } } }