Чтобы подключить Claude к серверу RE:NODE, нужно добавить один URL - https://panel.renode.space/api/client/mcp - как удалённый MCP-сервер, а затем один раз подтвердить подключение в браузере. В Claude Code это одна команда claude mcp add; в Claude.ai - пользовательский коннектор (custom connector) с тем же адресом. Ничего не устанавливается ни на ваш компьютер, ни на сервер. На странице согласия вы выбираете, до каких серверов ассистент может дотянуться и на каком уровне: Files (читать и править файлы, читать консоль) или Manage (то же самое, плюс запуск, остановка, перезапуск и команды в консоль). Базы данных, бэкапы, расписания, пользователи, параметры запуска и пароли остаются недоступными при любом выборе.
Если вам нужна помощь только с одним сервером в рамках одного разговора, есть путь короче: кнопка Connect AI над консолью создаёт ссылку, которую вы вставляете в чат. Ниже разобраны оба способа, а также то, что ассистент на самом деле видит, что от него скрыто и что делать, если соединение не поднимается. Ничего из этого не привязано к играм: сервер Valheim, Discord-бот и приложение на Next.js выглядят для ассистента одинаково.
Что такое MCP, в одном абзаце#
Model Context Protocol - это стандартный способ, которым ИИ-ассистент вызывает инструменты, живущие где-то в другом месте. MCP-сервер публикует список инструментов с именами и аргументами - read_file, tail_console, power - а ассистент сам решает, когда их вызвать, читает результат и продолжает работу. Удалённый MCP-сервер - это сервер, к которому обращаются по HTTPS, а не запускают как локальную программу. Наш использует Streamable HTTP, которого современные клиенты Claude ждут от удалённого сервера, поэтому не нужно ставить пакеты, держать на компьютере Node.js или Python и следить за обновлениями.
Практическая разница с вставкой логов в чат в том, что ассистент перестаёт гадать. Вместо того чтобы вы копировали последние 40 строк консоли и описывали структуру папок, он сам смотрит содержимое каталога, читает server.properties или package.json, просматривает консоль и сообщает, что нашёл. На уровне Manage он затем может перезапустить сервер и дождаться, пока тот поднимется.
Два пути: MCP-endpoint или ссылка#
Есть две двери, и подходят они для разных задач.
| Способ | Подходит для | Срок действия |
|---|---|---|
| MCP-endpoint + OAuth | Постоянная работа с вашими серверами | Остаётся подключённым, пока используется |
| Ссылка (Connect AI) | Один сервер, один разговор | 7 дней простоя (чтение), 24 часа простоя (управление) |
MCP-endpoint с OAuth стоит настроить, если вы регулярно пользуетесь Claude. Вы подключаетесь один раз, выбираете серверы и уровень, а ассистент сам поддерживает свой доступ: токены доступа живут час и обновляются в фоне, а refresh-токен продлевается ещё на 30 дней при каждом использовании. Ассистент, который вы открываете раз в месяц, ни разу не попросит войти снова. Кроме того, ему доступен инструмент list_servers, поэтому можно сказать «тот, что с Minecraft», а не вставлять ID.
Ссылка привязана к одному серверу, и её вы передаёте, а не входите по ней. Она работает в любом ассистенте, который умеет открывать URL - Claude, ChatGPT или любом другом, - потому что в простейшем случае это страница с markdown-описанием сервера. Ссылка с целью Manage this server может и действовать, и у неё есть собственный MCP-адрес, который можно добавить в Claude как коннектор.
Если сомневаетесь, начните с OAuth в том клиенте Claude, которым пользуетесь чаще всего. Ссылки берите для быстрой разовой задачи или для ассистента, который вообще не поддерживает удалённый MCP.
Подключаем Claude Code#
Claude Code - это агент для командной строки, и настроить его быстрее всего. В любом терминале:
$ claude mcp add --transport http renode https://panel.renode.space/api/client/mcprenode - это просто имя, под которым сервер будет виден внутри Claude Code, назовите его как хотите. Команда регистрирует сервер, но вход пока не выполняет. Запустите Claude Code и выполните /mcp. У записи renode будет отметка, что нужна аутентификация; выберите её, и Claude Code откроет в браузере страницу согласия панели.
- Если вы не вошли в панель, сначала вас отправят на вход (с кодом двухфакторной аутентификации, если она включена), а затем вернут прямо на страницу согласия.
- Проверьте адрес, на который возвращается подтверждение. Для Claude Code это адрес
localhost, и страница предупредит об этом - для CLI так и должно быть: браузер передаёт код программе на вашем же компьютере. - Выберите All my servers или отметьте нужные серверы.
- Выберите уровень: Files или Manage.
- Подтвердите. Вкладку браузера можно закрыть; у Claude Code теперь есть инструменты.
Вернувшись в Claude Code, попросите о чём-нибудь, что потребует вызова инструмента: «Покажи мои серверы RE:NODE и скажи, какие из них запущены». Если он отвечает настоящими именами ваших серверов, подключение работает.
Несколько деталей про Claude Code, которые стоит знать:
- По умолчанию
claude mcp addрегистрирует сервер только для текущего проекта. Добавьте--scope user, чтобы он был доступен во всех проектах на вашем компьютере, или--scope project, чтобы записать его в файл.mcp.jsonв репозитории и коллеги получили ту же запись (каждый всё равно входит под собой). claude mcp listпоказывает, что зарегистрировано и подключается ли каждый сервер.claude mcp remove renodeудаляет запись на вашей стороне.- Удаление записи не отзывает доступ в панели. Чтобы завершить доступ по-настоящему, отключите его ещё и в панели - см. раздел об отзыве ниже.
Если использовать API-ключ
Если вы уже используете клиентский API-ключ для скриптов, он по-прежнему работает и обходится без браузера:
$ claude mcp add --transport http renode https://panel.renode.space/api/client/mcp \ --header "Authorization: Bearer ptlc_your_key_here"Это менее аккуратный вариант. У ключа полный доступ к клиентскому API вашего аккаунта, он сам не истекает и лежит открытым текстом в конфигурации Claude Code. Список разрешённых IP на ключе и обязательная двухфакторная аутентификация продолжают действовать, как и для любого вызова клиентского API. Выбирайте OAuth, если нет причин поступить иначе - например, headless-машина, где негде подтвердить вход в браузере.
Подключаем Claude.ai и Claude Desktop#
В Claude.ai тот же endpoint добавляется как пользовательский коннектор. Точные названия пунктов меню меняются, когда Anthropic обновляет приложение, но путь такой: Settings, затем Connectors, затем пункт добавления пользовательского коннектора.
- Дайте ему имя, например
RE:NODE. - Вставьте
https://panel.renode.space/api/client/mcpв поле URL. Поля OAuth client ID и secret оставьте пустыми - панель поддерживает динамическую регистрацию, так что Claude зарегистрируется сам. - Сохраните и нажмите Connect. В браузере откроется страница согласия панели.
- Выберите серверы и уровень и подтвердите.
На странице согласия показаны название приложения, запрашивающего доступ, и адрес, на который вернётся подтверждение. Для Claude.ai это должен быть адрес Anthropic, а не что-то незнакомое. Если на странице написано, что имя клиента «checked by nothing» (ничем не проверено), это правда: любой может зарегистрировать клиента и назвать его как угодно, поэтому страница и показывает ещё и адрес возврата. Прочитайте его, прежде чем подтверждать.
После подключения включите коннектор в разговоре (в меню инструментов под полем ввода) и попросите Claude показать ваши серверы.
Claude Desktop использует коннекторы вашего аккаунта Claude, поэтому коннектор, добавленный в Claude.ai, должен появиться и там. Доступны ли вам пользовательские коннекторы вообще, зависит от вашего тарифа Claude - проверять это нужно на справочных страницах Anthropic, а не у нас. Мы собирали и тестировали endpoint с Claude Code и пользовательскими коннекторами Claude.ai. Он следует спецификации MCP, поэтому другие клиенты с поддержкой удалённого MCP и OAuth должны работать, но с ChatGPT и Cursor мы его не проверяли и ничего не обещаем.
Панель Connect AI на консоли#
На вкладке Console каждого сервера, над терминалом, есть панель с заголовком Work on this server with AI. Она также показывается на вкладке Startup. Её видит каждый, кто может читать параметры запуска сервера, то есть владелец и большинство субпользователей.
В ней один выпадающий список, What the assistant is for, и одна кнопка, Connect AI. Доступные цели:
| Цель | Что вы получаете |
|---|---|
| General | Ссылка для чтения, чтобы разобраться в сервере |
| Set up a new project | Ссылка для чтения с инструкциями по настройке |
| Fix my repository | Ссылка для чтения, ориентированная на репозиторий |
| Server won't start | Готовый запрос с хвостом консоли, без ссылки |
| Connect a database | Ссылка для чтения с шагами по базе данных |
| Add a domain | Ссылка для чтения с шагами по домену |
| Manage this server | Ссылка для управления, с которой можно действовать |
Нажмите Connect AI, и панель создаст ссылку вида https://panel.renode.space/ai/rnai_... и скопирует её в буфер обмена. Показывается она только один раз - панель хранит хеш, а не саму ссылку, - поэтому вставьте её куда-нибудь, прежде чем закрывать окно. Вставьте её в чат вместе с фразой о том, чего вы хотите, и ассистент откроет её и получит markdown-описание сервера: среду выполнения, команду запуска, порядок загрузки, адрес и порт сервера, результаты предварительной проверки репозитория, если он подключён, и инструкции для выбранной цели.
Server won't start - исключение. Вместо ссылки он копирует готовый к вставке запрос с последним выводом консоли: при падении полезнее всего последний экран лога, и ему не стоит ждать, пока ассистент что-то загрузит. Используйте его на вкладке Console, чтобы строки консоли попали в запрос. Если падение происходит циклично, а не однократно, наше руководство по циклам падений объясняет, что обычно означает такой вывод.
Ссылка Manage this server показывает второй адрес - URL MCP-сервера, оканчивающийся на /mcp. Вставьте его в Claude.ai как пользовательский коннектор или добавьте в Claude Code:
$ claude mcp add --transport http renode-link https://panel.renode.space/ai/rnai_xxx/mcpВход здесь не требуется - сама ссылка и есть учётные данные. В этом её смысл, и поэтому она устроена так, чтобы быстро умирать.
Что ассистент видит и может делать#
Через MCP-endpoint ассистенту доступны такие инструменты. Какие из них работают, зависит от подтверждённого вами уровня и от ваших собственных прав на этом сервере; то и другое проверяется при каждом вызове.
| Инструмент | Что делает | Уровень |
|---|---|---|
list_servers | Ваши серверы, охваченные доступом | Files |
get_server_context | Среда выполнения, запуск, адрес, заметки | Files |
get_resources | Текущее использование памяти, CPU и диска | Files |
get_setup_prompt | Инструкции по задаче для этого сервера | Files |
tail_console | Свежий вывод консоли | Files |
list_files | Содержимое каталогов | Files |
read_file | Содержимое файла, секреты скрыты | Files |
write_file | Создать или перезаписать текстовый файл | Files |
set_env | Задать ключи в .env, не читая его | Files |
send_command | Ввести команду в консоль | Manage |
power | Запустить, остановить, перезапустить или убить процесс | Manage |
Несколько особенностей, которые стоит знать, прежде чем на них полагаться:
tail_consoleвозвращает не более последних 100 строк, потому что именно столько хранит в буфере демон сервера. Для более старой ошибки пусть ассистент прочитает файл лога - например,logs/latest.logв Minecraft.write_fileзаписывает текст в UTF-8 размером до 1 МБ. Писать куда-либо внутри.git/он не будет, потому что.git/hooks- это код, который выполняется при следующем fetch.- Инструменты всегда перечислены, даже те, что ваш уровень не разрешает. Отказ приходит в виде понятной ошибки, которую ассистент может разобрать, поэтому подключение уровня Files, которого попросили о перезапуске, скажет, что не может, а не сломается молча.
- Действия питания, команды консоли и записи файлов фиксируются в журнале активности сервера на вашу учётную запись, с пометкой, что они пришли через OAuth с именем клиента или через ссылку. Перезапуск, сделанный ассистентом, считается намеренным перезапуском, а не падением.
У ссылки набор уже. Ссылка для чтения даёт контекст, запросы с задачами, использование ресурсов, хвост консоли и содержимое каталогов - но не содержимое файлов, потому что ссылка для чтения остаётся действительной неделю простоя и её часто оставляют в истории чата, а в .env как раз лежат секреты. Ссылка для управления добавляет чтение и запись файлов, команды консоли и действия питания. list_servers через ссылку недоступен никогда: ссылка знает ровно один сервер.
Что остаётся недоступным#
Есть вещи, до которых не дотянется ни один уровень и ни одна ссылка. Через MCP-endpoint никогда: базы данных и их пароли, бэкапы, расписания, субпользователи, команда и переменные запуска, настройки сервера. Через ссылку никогда: удаление и переименование файлов, переустановка, изменение запуска и переменных, базы данных, бэкапы, расписания, пользователи, данные SFTP и API-ключи.
Секреты обрабатываются отдельно. Каждый байт, который уходит через эти инструменты - контекст, консоль, содержимое файлов, - проходит через редактор секретов, работающий в три слоя:
- По имени. Любая переменная с именем вроде
TOKEN,PASSWORD,KEY,SECRET,AUTHилиSALTскрывает своё значение. - По виду. Строки, похожие на ключи GitHub, Slack, OpenAI или AWS, JWT, пароли внутри URL или длинные случайные на вид строки скрываются независимо от того, как они названы.
- По значению. Реальные секретные значения сервера и пароли его баз данных собираются и вычищаются из готового вывода, что ловит и пароль, вставленный в переменную с именем
NOTES.
Именно из-за такого скрытия существует set_env. Если бы ассистент прочитал файл .env и записал его обратно, каждый пароль вернулся бы заглушкой, и приложение сломалось бы. set_env же заменяет или добавляет указанные ключи на стороне панели, сохраняет все остальные байты файла и возвращает только имена ключей. Можно сказать Claude «задай DATABASE_URL в .env вот таким значением», и ничто в ответе его не повторит. Работает он только с файлами, которые называются .env или начинаются с .env. Подробнее о том, где хранить секреты, - в статье переменные окружения и секреты.
Сроки, лимиты и отзыв доступа#
Подключения OAuth и ссылки стареют по-разному.
- OAuth: токены доступа живут 1 час и обновляются автоматически. Refresh-токены живут 30 дней и продлеваются при каждом обновлении. Если использованный токен предъявляют повторно - признак того, что его скопировали, - весь доступ отзывается, и подтверждать нужно будет заново.
- Ссылки для чтения: каждое использование продлевает ссылку до 7 дней простоя, но не более 90 дней с момента создания.
- Ссылки для управления: каждое использование продлевает ссылку до 24 часов простоя, но не более 30 дней с момента создания.
- У сервера может быть не более пяти активных ссылок, из них две - ссылки для управления. Новая ссылка с той же целью заменяет вашу предыдущую.
- Каждая ссылка допускает 60 запросов в минуту, 20 действий в минуту и 6 действий питания в минуту.
- Ссылка перестаёт работать в тот момент, когда её создатель теряет доступ к серверу. Истёкшая, отозванная или отклонённая ссылка отвечает обычным 404, так что по ответу не понять, существовала ли она вообще.
Чтобы завершить доступ раньше, откройте в панели Account, затем Connected AI. Там перечислены все подключения OAuth с кнопкой Disconnect и все активные ссылки, которые вы создали, на любом сервере, с кнопкой Revoke. Здесь стоит наводить порядок, если пропал ноутбук или ушёл коллега, - хотя коллег лучше в любом случае вести как субпользователей с узкими правами, как объясняет статья субпользователи и минимальные привилегии. Учтите, что «All my servers» на странице согласия означает серверы, которыми вы владеете, плюс серверы, где вы сейчас субпользователь, а ваши права субпользователя ограничивают то, что ассистент может делать там.
Пример из практики: сервер, который падает при запуске#
Вот как выглядит типичная сессия с Claude Code, подключённым на уровне Manage, на приложении Node.js, которое падает после обновления. Запрос:
My RE:NODE server "shop-api" stopped starting after this morning's deploy.Find out why, fix it, restart it and confirm it stays up.Ассистент вызывает list_servers, чтобы сопоставить «shop-api» с ID, затем get_server_context, чтобы узнать среду выполнения, команду запуска и порт. Он вызывает tail_console и видит, что приложение занимает порт 3000, хотя порт сервера другой. Через read_file он читает package.json и входной файл, находит порт, прописанный в коде, и с помощью write_file заставляет приложение брать process.env.PORT, привязываясь к 0.0.0.0, а не к localhost. Затем он перезапускает сервер через power, снова смотрит консоль и сообщает, что изменил.
Каждый шаг виден в разговоре, а каждая запись и перезапуск попадают в журнал активности сервера. Прочитайте diff, прежде чем принимать его, - привычки из статьи ИИ-агенты для работы с серверами применимы здесь точно так же, как на любой машине. Тот же сценарий работает и для игры: «сервер Valheim виден в списке, но никто не может зайти» - ассистент пройдёт по консоли, доступным ему параметрам запуска и файлам мира, хотя сам менять переменные запуска не может и подскажет, какое значение поменять на вкладке Startup.
Если подключение не поднимается#
В Claude Code не открывается браузер. Выполните /mcp, выберите сервер и начните аутентификацию. На удалённой машине без браузера скопируйте URL, который выводит Claude Code, в браузер на своём компьютере; переадресация обратно на localhost завершится только на машине, где запущен Claude Code, поэтому для headless-сервера проще API-ключ.
Вместо формы подтверждения страница согласия показывает ошибку. Панель показывает ошибки на самой странице, а не делает редирект, пока не проверит клиента и его адрес возврата. Удалите коннектор и добавьте его заново, чтобы клиент зарегистрировался заново.
Claude говорит, что инструменты есть, но каждый вызов завершается ошибкой. Проверьте уровень. Доступ Files отклоняет power и send_command. Затем проверьте собственные права: на сервере, где вы субпользователь без доступа к консоли, у ассистента его тоже нет.
Ссылка возвращает 404. Она истекла, её заменила более новая ссылка с той же целью, её отозвали или вы потеряли доступ к серверу. Создайте новую на панели консоли.
Вместо ожидаемого значения ассистент видит заглушку. Это работает скрытие секретов. Если ему нужно изменить секрет, попросите использовать set_env; если ему нужно само значение - оно ему не нужно.
Запросы двухфакторной аутентификации при входе. Так и должно быть. Страница согласия стоит за той же двухфакторной проверкой, что и вся остальная панель - см. двухфакторная аутентификация для аккаунта панели.
FAQ#
Запускает ли RE:NODE ИИ-модель и видит ли мои разговоры?
Нет. Мы не запускаем никакую модель. MCP-endpoint и ссылки - это двери для вашего собственного ассистента; Claude работает на стороне Anthropic под вашим аккаунтом Claude, а панель видит только вызовы инструментов, которые он делает, и они записываются в журнал ваших серверов.
Может ли Claude удалить мой мир или мои файлы?
Через эти инструменты - нет. На MCP-endpoint нет инструмента удаления, а ссылки категорически отклоняют удаление и переименование. Перезаписать файл через write_file он может на любом уровне, поэтому перед сессией, где правятся конфигурации, сделайте свежий бэкап.
Можно ли подключить Claude только к одному серверу?
Да. Выберите этот сервер на странице согласия вместо All my servers или используйте ссылку со вкладки Console этого сервера: она всегда дотягивается только до одного сервера.
Работает ли это с ChatGPT или Cursor?
Ссылка работает в ChatGPT, потому что это просто URL. MCP-endpoint и OAuth собраны и протестированы с Claude; другие клиенты с поддержкой удалённого MCP должны работать, но с ChatGPT и Cursor мы это не проверяли.
Что будет, если я какое-то время не буду пользоваться?
Подключение OAuth живёт до 30 дней без использования; после этого Claude попросит подтвердить заново. Ссылка для чтения истекает после 7 дней простоя, а ссылка для управления - после 24 часов, и вам ничего не нужно убирать.


