Sari la conținut

MCP pentru asistenți AI

Serverul HAM MCP (Model Context Protocol) conectează un asistent AI la dispozitivele dumneavoastră. Asistentul poate vedea lista de dispozitive, măsurătorile curente și istoricul. Fiecare apel rulează cu contul dumneavoastră și cu permisiunile dumneavoastră pe fiecare dispozitiv.

Element Valoare
Adresă https://api.hamsystems.eu/mcp/index.php
Transport HTTP, JSON-RPC 2.0
Versiunea protocolului 2024-11-05
Autentificare Antetul Authorization: Bearer-API YOUR_API_KEY

Creați cheia API în pagina Cont. Consultați API REST.

  1. Creați o cheie API.

  2. Adăugați serverul în configurația MCP a asistentului. Pentru Claude Code, fișierul este .mcp.json:

    {
    "mcpServers": {
    "ham": {
    "type": "http",
    "url": "https://api.hamsystems.eu/mcp/index.php",
    "headers": {
    "Authorization": "Bearer-API YOUR_API_KEY"
    }
    }
    }
    }
  3. Reporniți asistentul.

  4. Cereți, de exemplu, “Arată-mi dispozitivele mele”. Asistentul apelează instrumentul list_devices.

Instrument Parametri Rezultat
list_devices compact (implicit true) Dispozitivele dumneavoastră. Cu compact: true: serialno, name, icon, groups, floorplans și count. Cu compact: false: toate detaliile, cu setările.
get_device_state serialno (un număr sau o listă) Starea curentă. Același format ca get_device_state.php. Consultați API REST.
get_device_history serialno, level, bin Rândurile istoricului. Aceleași niveluri și bin-uri ca în descărcați datele istorice.
get_definitions family_id (opțional), include_readings (implicit true) Definițiile familiei: măsurători, ieșiri, setări
get_docs niciunul Instrucțiuni pentru instrumente
send_command serialno, command Trimite o comandă către un dispozitiv sau un grup. Asistentul primește comenzile din get_docs.

O ordine tipică a apelurilor: list_devices, apoi get_definitions pentru familie, apoi get_device_state sau 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":{}}}'

Rezultatul este în result.content[0].text, ca text JSON:

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

Metode acceptate: initialize, notifications/initialized, tools/list, tools/call.

Cod Semnificație
-32000 Eroare de autentificare (HTTP 401) sau eroare de instrument
-32700 Corpul nu este JSON valid
-32600 Cerere JSON-RPC invalidă
-32601 Metodă necunoscută
-32602 Lipsește numele instrumentului
-32603 Eroare internă
Chat cu suportul