Gå til innholdet

MCP for AI-assistenter

MCP-serveren (Model Context Protocol) fra HAM kobler en AI-assistent til enhetene dine. Assistenten kan se listen over enheter, de aktuelle avlesningene og historikken. Hvert kall bruker kontoen din og tillatelsene dine for hver enhet.

Punkt Verdi
Adresse https://api.hamsystems.eu/mcp/index.php
Transport HTTP, JSON-RPC 2.0
Protokollversjon 2024-11-05
Autentisering Headeren Authorization: Bearer-API YOUR_API_KEY

Du lager API-nøkkelen på siden Konto. Se REST API.

  1. Lag en API-nøkkel.

  2. Legg til serveren i MCP-konfigurasjonen til assistenten. For Claude Code er filen .mcp.json:

    {
    "mcpServers": {
    "ham": {
    "type": "http",
    "url": "https://api.hamsystems.eu/mcp/index.php",
    "headers": {
    "Authorization": "Bearer-API YOUR_API_KEY"
    }
    }
    }
    }
  3. Start assistenten på nytt.

  4. Spør for eksempel “Vis meg enhetene mine”. Assistenten kaller verktøyet list_devices.

Verktøy Parametere Resultat
list_devices compact (standard true) Enhetene dine. Med compact: true: serialno, name, icon, groups, floorplans og count. Med compact: false: alle detaljene, med innstillingene.
get_device_state serialno (ett nummer eller en liste) Den aktuelle tilstanden. Det samme formatet som get_device_state.php. Se REST API.
get_device_history serialno, level, bin Radene i historikken. De samme nivåene og bin-verdiene som i last ned historiske data.
get_definitions family_id (valgfritt), include_readings (standard true) Definisjonene for familien: avlesninger, utganger, innstillinger
get_docs ingen Instruksjoner for verktøyene
send_command serialno, command Sender en kommando til en enhet eller en gruppe. Assistenten får kommandoene fra get_docs.

En vanlig rekkefølge for kallene: list_devices, så get_definitions for familien, så get_device_state eller get_device_history.

Terminal window
curl -X POST https://api.hamsystems.eu/mcp/index.php \
-H "Authorization: Bearer-API YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_devices","arguments":{}}}'

Resultatet er i result.content[0].text, som JSON-tekst:

{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{ "type": "text", "text": "{\"devices\":[{\"serialno\":\"e11:123\",\"name\":\"Fridge 1\",\"icon\":\"\",\"groups\":[],\"floorplans\":[]}],\"count\":1}" }
]
}
}

Metoder som virker: initialize, notifications/initialized, tools/list, tools/call.

Kode Betydning
-32000 Feil ved autentisering (HTTP 401) eller feil i verktøyet
-32700 Innholdet er ikke gyldig JSON
-32600 Ugyldig JSON-RPC-forespørsel
-32601 Ukjent metode
-32602 Navnet på verktøyet mangler
-32603 Intern feil
Chat med support