Skip to main content
Glama
kalmma

myUplink MCP Server

by kalmma

myUplink MCP Server

A Model Context Protocol (MCP) server that connects Claude (or any MCP client) to your NIBE myUplink heat-pump account.

Features

Tool

What it does

get_authorization_url

Generate the OAuth2 login URL

exchange_auth_code

Trade a one-time code for access + refresh tokens

authenticate_client_credentials

Server-to-server auth (no browser required)

get_systems

List all heat-pump systems in the account

get_system

Detail view of a single system

get_device

Firmware version, connection state, serial number

get_device_points

Read any/all sensor & setting values

set_device_points

Write new values (requires Premium + WRITESYSTEM scope)

get_common_parameters

Quick view of the most useful readings

get_alarms

Active alarms / notifications

get_smart_home_zones

Smart-home climate zones

Related MCP server: Strava MCP Server

Prerequisites

Setup

git clone <this-repo>
cd myuplink-mcp
npm install
cp .env.example .env
# Edit .env – add your CLIENT_ID and CLIENT_SECRET
npm run build

Running the server

npm start
# or during development:
npm run dev

Claude Desktop integration

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "myuplink": {
      "command": "node",
      "args": ["/absolute/path/to/myuplink-mcp/dist/index.js"],
      "env": {
        "MYUPLINK_CLIENT_ID": "your_client_id",
        "MYUPLINK_CLIENT_SECRET": "your_client_secret",
        "MYUPLINK_REFRESH_TOKEN": "optional_saved_refresh_token"
      }
    }
  }
}

First-time authentication (Authorization Code flow)

  1. Call get_authorization_url → open the URL in a browser

  2. Log in and approve the scopes

  3. Copy the code=… value from the redirect URL

  4. Call exchange_auth_code with that code

  5. From now on the server auto-refreshes tokens using the refresh token

No-browser alternative (Client Credentials)

If your myUplink application supports it, call authenticate_client_credentials – no browser needed, but only your own account data is accessible.

Parameter

Description

40004

Outdoor temperature (BT1)

40033

Room temperature (BT50)

40013

Hot water top (BT7)

43005

Degree minutes

43009

Calculated flow temperature

44270

Compressor hours (heating)

49994

Priority (off / heating / hot water)

Find more by calling get_device_points without a filter.

Scopes

Scope

Access

READSYSTEM

Read sensor data and settings

WRITESYSTEM

Change settings (requires Premium subscription)

offline_access

Receive a refresh token for long-lived sessions

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects to Garmin Connect and exposes fitness and health data (activities, steps, heart rate, sleep, body composition) to MCP-compatible clients like Claude.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude.ai to connect to a Hermes MCP server via OAuth 2.1 authorization code flow with PKCE, acting as a reverse proxy and single-user authorization gateway.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Acts as a secure OAuth 2.0/2.1 proxy gateway for MCP servers, enabling integration with Claude and ChatGPT platforms.
    19 npm
    MIT