# Интеграция с моделями (MCP/Agent)

В этой статье описывается, как интегрировать FIRERPA с большими языковыми моделями (на основе MCP или команд). FIRERPA на низком уровне реализует серверный протокол MCP и нативную функцию tool-call от OpenAI, позволяя вам самостоятельно писать плагины MCP и предоставлять их как сервис через стандартный порт 65000, или наследовать класс Agent для реализации полностью автоматического вызова инструментов (tools).

## Встроенная команда Agent

С помощью встроенной команды `agent` можно быстро выполнять задачи, сформулированные на естественном языке, с помощью больших языковых моделей. Поддерживаются любые провайдеры или собственные сервисы, совместимые с OpenAI API + toolcall. В сочетании со встроенным crontab вы можете настроить регулярный запуск задач, сформулированных на естественном языке.

```{hint}
Команду `agent` необходимо использовать во встроенном терминале, также требуется предоставить действительный API и ключ. Производительность разных больших моделей может отличаться, пожалуйста, выберите наиболее подходящую для вас. Мы рекомендуем gemini, openai, deepseek, glm и другие.
```

| Имя параметра | Тип | Обязательный | Значение по умолчанию | Описание |
| :--- | :--- | :--- | :--- | :--- |
| `--api` | строка (str) | Да | - | Конечная точка API (API endpoint) |
| `--model` | строка (str) | Да | - | Название модели |
| `--temperature` | число с плавающей точкой (float) | Нет | `0.2` | Температура сэмплирования модели |
| `--key` | строка (str) | Да | - | Ключ API для аутентификации |
| `--vision` | логический (bool) | Нет | `False` | Включить ли визуальный режим |
| `--imsize` | целое число (int) | Нет | `1000` | Размер изображения в визуальном режиме |
| `--prompt` | строка (str) | Да | - | Инструкция для выполнения агентом (Agent) |
| `--max-tokens` | целое число (int) | Нет | `16384` | Максимальное количество генерируемых токенов |
| `--step-delay` | число с плавающей точкой (float) | Нет | `0.0` | Время задержки между шагами |

```{attention}
Обратите внимание, что адрес для параметра API должен быть полным, а не базовым URL (base_url). Обычно к base_url необходимо добавить `/chat/completions`, чтобы получить полный адрес API.
```

Подготовив необходимую информацию, вы можете ввести следующую команду в терминале удаленного рабочего стола, чтобы позволить ИИ автоматически управлять вашим устройством.

```bash
agent --api https://generativelanguage.googleapis.com/v1beta/openai/chat/completions --key YOUR_API_KEY --model gemini-2.5-flash --prompt "Помоги мне открыть приложение Настройки, имя пакета com.android.settings, найти настройки сети и включить режим полета"
```

Если ваша инструкция (промпт) слишком длинная, вы можете предоставить ее в виде файла.

```bash
agent --api https://generativelanguage.googleapis.com/v1beta/openai/chat/completions --key YOUR_API_KEY --model gemini-2.5-flash --prompt /path/to/prompt.txt
```

## Интеграция с Claude и Cursor (MCP)

В этом разделе описывается, как подключить функцию MCP от FIRERPA к вашему клиенту большой языковой модели. Мы приводим примеры только для Claude и Cursor, но вы можете использовать его с любым другим клиентом, поддерживающим протокол MCP.

```{note}
Встроенный сервис MCP в FIRERPA поддерживает tool-call, resource-read, а также промпты, уведомления о прогрессе и логирование.
```

```{attention}
Обратите внимание, что протоколы связи для серверов версий 8.0 и 9.0 различаются: 9.x использует streamable-http, а 8.x — sse.
```

### Установка официального расширения

Мы предоставляем официальный сервис MCP. Вы можете скачать этот модуль расширения по ссылке <a href="https://github.com/firerpa/lamda/blob/HEAD/extensions/firerpa.py" target="_blank">extensions/firerpa.py</a>. Вы также можете использовать его как пример для написания собственных или расширения существующих плагинов. После загрузки скрипта расширения, загрузите его в каталог `/data/usr/modules/extension` на устройстве через удаленный рабочий стол или вручную с помощью push. Затем перезагрузите устройство или службу FIRERPA.

```{attention}
Скрипты расширений для версий 8.0 и 9.0 несовместимы. Пожалуйста, строго проверьте версию вашего сервера и загрузите соответствующий скрипт из нужной ветки на GitHub.
```

### Использование официального расширения

Для **Claude** сначала необходимо перейти на страницу настроек Claude и выполнить шаги, показанные на изображении ниже. Затем, следуя подсказкам, отредактируйте файл конфигурации Claude `claude_desktop_config.json` и добавьте в него следующую конфигурацию сервиса MCP в формате JSON.


```json
{"mcpServers": {"firerpa": {"command": "npx", "args": ["-y", "supergateway", "--streamableHttp", "http://192.168.0.2:65000/firerpa/mcp/"]}}}
```

<p align="center">
<img src="/assets/images/claude-settings.png" alt="Пример" width="auto">
</p>

Для **Cursor** необходимо открыть настройки Cursor (Cursor Settings), выполнить действия, как показано на изображении, и ввести следующую конфигурацию.

```json
{"mcpServers": {"firerpa": {"url": "http://192.168.0.2:65000/firerpa/mcp/"}}}
```

<p align="center">
<img src="/assets/images/cursor-settings.png" alt="Пример" width="auto">
</p>

```{attention}
Обратите внимание, что IP-адрес в конфигурации необходимо заменить на IP-адрес вашего устройства.
```

### Написание расширений MCP

```{hint}
Документация скоро появится. Следите за обновлениями.
```