Към съдържанието

MCP за AI асистенти

MCP (Model Context Protocol) сървърът на HAM свързва AI асистент към Вашите устройства. Асистентът може да вижда списъка с устройства, текущите измервания и историята. Всяко извикване работи с Вашия акаунт и Вашите права за всяко устройство.

Елемент Стойност
Адрес https://api.hamsystems.eu/mcp/index.php
Транспорт HTTP, JSON-RPC 2.0
Версия на протокола 2024-11-05
Удостоверяване Заглавка Authorization: Bearer-API YOUR_API_KEY

Създавате API ключа на страницата Акаунт. Вижте REST API.

Настройка на асистента

Раздел „Настройка на асистента“
  1. Създайте API ключ.

  2. Добавете сървъра в MCP конфигурацията на Вашия асистент. За Claude Code файлът е .mcp.json:

    {
    "mcpServers": {
    "ham": {
    "type": "http",
    "url": "https://api.hamsystems.eu/mcp/index.php",
    "headers": {
    "Authorization": "Bearer-API YOUR_API_KEY"
    }
    }
    }
    }
  3. Рестартирайте асистента.

  4. Попитайте например „Покажи ми устройствата ми“. Асистентът извиква инструмента list_devices.

Инструмент Параметри Резултат
list_devices compact (по подразбиране true) Вашите устройства. С compact: true: serialno, name, icon, groups, floorplans и count. С compact: false: всички детайли, с настройките.
get_device_state serialno (един номер или списък) Текущото състояние. Същият формат като get_device_state.php. Вижте REST API.
get_device_history serialno, level, bin Редовете на историята. Същите нива и bins като в Изтегляне на исторически данни.
get_definitions family_id (по избор), include_readings (по подразбиране true) Дефинициите на фамилиите: измервания, изходи, настройки
get_docs няма Инструкции за инструментите
send_command serialno, command Изпраща команда към устройство или група. Асистентът получава командите от get_docs.

Типичен ред на извикванията: list_devices, след това get_definitions за фамилията, след това get_device_state или 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":{}}}'

Резултатът е в result.content[0].text, като JSON текст:

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

Поддържани методи: initialize, notifications/initialized, tools/list, tools/call.

Код Значение
-32000 Грешка при удостоверяване (HTTP 401) или грешка на инструмента
-32700 Тялото не е валиден JSON
-32600 Невалидна JSON-RPC заявка
-32601 Неизвестен метод
-32602 Липсва името на инструмента
-32603 Вътрешна грешка
Чат с поддръжката