Logga in eller skapa ett konto för att få din API-nyckel och koppla upp din AI-assistent.

Vad är MCP?

MCP (Model Context Protocol) är en öppen standard som låter AI-assistenter använda externa tjänster. qtrl.me har en MCP-server, så en assistent som Claude kan lista dina hubbar och enheter, läsa givare, styra brytare, dimmers och persienner, hämta elpriser, skapa och ändra automationer och bygga instrumentpaneler, allt genom vanlig konversation. Assistenten ser bara det som ditt konto äger, och samma gränser som i webben gäller.

Tillgängliga verktyg

Tabellen visar exakt de verktyg MCP-servern erbjuder just nu. Samma verktyg finns som funktioner för ChatGPT och Gemini.

Hubbar
Verktyg Beskrivning
list_hubs Listar dina hubbar med anslutningsstatus.
get_hub_status Detaljerad status för en hubb: anslutning, signalstyrka, firmware, upptid.
reboot_hub Startar om en ansluten hubb.
hub_control Samlat hubbverktyg: lista, status eller omstart i ett anrop.
Enheter
Verktyg Beskrivning
list_devices Listar enheterna på en hubb med kanaler och aktuella värden.
get_device_state Läser en enhets aktuella värden (temperatur, läge, nivå …).
set_device_state Styr en kanal: på/av, dimmernivå, persienn upp/ner.
device_control Samlat enhetsverktyg: lista, läs eller styr i ett anrop.
Elpriser
Verktyg Beskrivning
get_electricity_price Aktuellt elpris för SE1–SE4 i kr/kWh, nästa timmes pris och dygnets rangordning (1 = billigaste timmen).
Automationer
Verktyg Beskrivning
list_automations Listar dina automationer (scheman, enkla automationer, termostater och flöden) med status, senaste körning och nivåns gränser.
get_automation Hämtar en automation som ett fullständigt flöde (noder och kopplingar) plus de senaste körningarna.
save_automation Skapar eller ersätter en automation. Valideras som i webbredigeraren: gränser, ägarskap, obligatoriska parametrar.
simulate_automation Torrkör ett flöde mot aktuella värden utan att spara eller skicka något: fel, varje villkors sant/falskt och vad åtgärderna skulle göra.
manage_automation Aktiverar, inaktiverar eller tar bort en automation.
get_automation_catalog Allt som behövs för att bygga en automation: nodtyper med parametrar, dina enheter och kanaler, elområden, platser, befintliga flöden och nivåns gränser.
Instrumentpaneler
Verktyg Beskrivning
list_dashboards Listar dina instrumentpaneler (flikar) med antal widgets, vilken som är standard och nivåns gränser.
get_dashboard Hämtar en instrumentpanels layout och de kanaler som kan läggas på den.
save_dashboard_layout Ersätter hela layouten på en instrumentpanel, validerad som i webbredigeraren.
manage_dashboard Skapar, döper om, tar bort eller gör en instrumentpanel till standard.

Så kopplar du upp

Välj din AI-plattform nedan.

Exemplen nedan använder platshållaren YOUR_API_TOKEN_HERE. Logga in för att se dina riktiga nycklar.
Claude Code (rekommenderas, enklast)

Claude Code ansluter direkt till MCP-servern; ingen brygga behövs.

API-adresser:

  • https://qtrl.me/mcp/sse - MCP via SSE (Claude Code)
  • https://qtrl.me/mcp - MCP via Streamable HTTP (bryggan och egna klienter)

Snabbtest:

Testa med curl
curl -X POST https://qtrl.me/mcp \
  -H "Authorization: Bearer YOUR_API_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Svaret listar verktygen i tabellen ovan. 401 betyder att nyckeln inte stämmer.

Steg 1: Installera Claude Code
npm install -g @anthropic-ai/claude-code
# or
curl -fsSL https://claude.ai/install.sh | sh
Steg 2: Lägg till qtrl.me som MCP-server
Kommando
claude mcp add --transport sse qtrlme https://qtrl.me/mcp/sse \
  --header "Authorization: Bearer YOUR_API_TOKEN_HERE"
Steg 3: Börja prata

Klart. Starta Claude och fråga om dina enheter:

claude
Skriv sedan t.ex.: "Lista mina hubbar"
Claude Desktop (kräver brygga)

Claude Desktop pratar bara med lokala program (stdio), så en liten brygga förmedlar anropen till qtrl.me.

API-adresser:

  • https://qtrl.me/mcp - MCP via Streamable HTTP (bryggan och egna klienter)

Snabbtest:

Testa med curl
curl -X POST https://qtrl.me/mcp \
  -H "Authorization: Bearer YOUR_API_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Svaret listar verktygen i tabellen ovan. 401 betyder att nyckeln inte stämmer.

Steg 1: Ladda ner bryggan

Spara bryggan på en plats där den får ligga kvar:

Ladda ner qtrlme-bridge.js

Spara t.ex. som C:\qtrlme\qtrlme-bridge.js (eller där du vill).

Steg 2: Konfigurera Claude Desktop

Redigera Claude Desktops konfigurationsfil:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "qtrlme": {
      "command": "node",
      "args": [
        "C:\\qtrlme\\qtrlme-bridge.js",
        "https://qtrl.me/mcp",
        "YOUR_API_TOKEN_HERE"
      ]
    }
  }
}
Obs: Ändra sökvägen till bryggan så att den stämmer med var du sparade den. På macOS/Linux används vanliga snedstreck: /Users/yourname/qtrlme-bridge.js
Steg 3: Starta om Claude Desktop

Avsluta Claude Desktop helt och starta det igen så att konfigurationen läses in.

ChatGPT / OpenAI

API-adresser:

  • GET https://qtrl.me/api/openai/functions - listar tillgängliga funktioner
  • POST https://qtrl.me/api/openai/functions/execute - kör en funktion

Snabbtest:

Testa med curl
curl https://qtrl.me/api/openai/functions \
  -H "Authorization: Bearer YOUR_API_TOKEN_HERE"

Exempel i Python:

import openai
import requests

# Fetch QtrlMe functions
response = requests.get("https://qtrl.me/api/openai/functions",
    headers={"Authorization": "Bearer YOUR_TOKEN"})
functions = response.json()["functions"]

# Use with ChatGPT
client = openai.OpenAI(api_key="your_openai_key")
response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "List my RF-HUBs"}],
    functions=functions
)

Exempel i Node.js:

const OpenAI = require('openai');
const axios = require('axios');

const client = new OpenAI({ apiKey: 'your_openai_key' });

// Fetch QtrlMe functions
const { data } = await axios.get('https://qtrl.me/api/openai/functions', {
  headers: { Authorization: 'Bearer YOUR_TOKEN' }
});

// Use with ChatGPT
const response = await client.chat.completions.create({
  model: 'gpt-4',
  messages: [{ role: 'user', content: 'List my RF-HUBs' }],
  functions: data.functions
});

// Handle function call
if (response.choices[0].message.function_call) {
  const { name, arguments: args } = response.choices[0].message.function_call;

  const result = await axios.post('https://qtrl.me/api/openai/functions/execute',
    { name, arguments: args },
    { headers: { Authorization: 'Bearer YOUR_TOKEN' }}
  );

  console.log(result.data.content);
}
Autentisering: Alla anrop kräver din API-nyckel som Bearer-token i Authorization-huvudet.
Google Gemini

API-adresser:

  • GET https://qtrl.me/api/gemini/functions - listar tillgängliga funktioner
  • POST https://qtrl.me/api/gemini/functions/execute - kör en funktion

Snabbtest:

Testa med curl
curl https://qtrl.me/api/gemini/functions \
  -H "Authorization: Bearer YOUR_API_TOKEN_HERE"

Exempel i Python:

import google.generativeai as genai
import requests

# Fetch QtrlMe functions
response = requests.get("https://qtrl.me/api/gemini/functions",
    headers={"Authorization": "Bearer YOUR_TOKEN"})
functions = response.json()["functionDeclarations"]

# Use with Gemini
genai.configure(api_key="your_gemini_key")
model = genai.GenerativeModel(
    model_name="gemini-pro",
    tools=[{"function_declarations": functions}]
)

chat = model.start_chat()
response = chat.send_message("List my RF-HUBs")

Exempel i Node.js:

const { GoogleGenerativeAI } = require('@google/generative-ai');
const axios = require('axios');

const genAI = new GoogleGenerativeAI('your_gemini_key');

// Fetch QtrlMe functions
const { data } = await axios.get('https://qtrl.me/api/gemini/functions', {
  headers: { Authorization: 'Bearer YOUR_TOKEN' }
});

// Use with Gemini
const model = genAI.getGenerativeModel({
  model: 'gemini-pro',
  tools: [{ functionDeclarations: data.functionDeclarations }]
});

const chat = model.startChat();
const result = await chat.sendMessage('List my RF-HUBs');

// Handle function call
const call = result.response.functionCalls()?.[0];
if (call) {
  const executeResult = await axios.post(
    'https://qtrl.me/api/gemini/functions/execute',
    { name: call.name, args: call.args },
    { headers: { Authorization: 'Bearer YOUR_TOKEN' }}
  );

  console.log(executeResult.data.response);
}
Autentisering: Alla anrop kräver din API-nyckel som Bearer-token i Authorization-huvudet.

Exempel på vad du kan säga

När assistenten är kopplad kan du be om saker som:

  • "Visa temperaturen från alla mina givare"
  • "Tänd lampan i vardagsrummet"
  • "Vad är elpriset i SE3 just nu, och när är det billigast i natt?"
  • "Lista mina hubbar och deras status"
  • "Sänk persiennerna i sovrummet"
  • "Skapa en automation som startar varmvattenberedaren de tre billigaste timmarna på natten"
  • "Lägg till utetemperaturen och elpriset överst på min instrumentpanel"

Din API-nyckel


Logga in för att se och använda dina API-nycklar.

Logga in

MCP-adresser