Konradodocs
PołączeniaIntegracjeIntegracje serweroweNarzędzia deweloperskie

Zdalny agent

Uruchom w swojej sieci mały przekaźnik, który przekazuje żądania MCP do dozwolonych hostów.

Remote Agent
Narzędzia deweloperskie
Przekaźnik do serwerów MCP w Twojej sieci

Zdalny agent to mały przekaźnik. Instalujesz go na serwerze w swojej sieci, nad którym masz kontrolę. Przekaźnik sprawdza klucz API w każdym żądaniu. Gdy żądanie wskazuje dozwolony wewnętrzny serwer MCP, przekaźnik przesyła je dalej. Zapisuje też, co zrobił. Jeden publiczny adres może wtedy obsłużyć kilka prywatnych serwerów MCP.

Konrado łączy się z prywatnym serwerem przez przekaźnik za pomocą połączenia Własny serwer MCP. To połączenie zawiera nazwę i token serwera docelowego. Samo połączenie Zdalny agent sięga dziś tylko do własnych narzędzi przekaźnika, a z nich Konrado nie ma żadnego pożytku.

Instalacja
Jedno polecenie jako root
Na maszynie w Twojej sieci.
Port
8001
Dla przekaźnika i jego pulpitu, chyba że go zmienisz.
Lista dozwolonych
HOSTS
Hosty, do których wolno mu przekazywać żądania, ustawiane na jego pulpicie.
Dane
Przekazywane bez zmian
Przekazuje odpowiedzi tak, jak wysyła je serwer docelowy.

Jak to działa

Przekaźnik odpowiada pod /mcp i /sse. Każde żądanie musi zawierać jego klucz API:

Authorization: Bearer <API_KEY>

Żądanie bez nagłówków celu zostaje w samym przekaźniku. Żądanie z oboma nagłówkami celu trafia dalej, do wskazanego serwera MCP:

Target-Host: <target-host>
Target-Token: <target-token>

Przekaźnik porównuje Target-Host z listą dozwolonych HOSTS. Potem łączy się z http://<host>/mcp albo z internalHost danego hosta i wysyła tam Target-Token jako token typu bearer. Odpowiedź serwera docelowego przekazuje bez zmian. Przekaźnik odrzuca żądanie, które ma tylko jeden z dwóch nagłówków.

Co potrafi przekaźnik

FunkcjaJak pomaga
Dostęp do prywatnych serwerów MCPJeden przekaźnik obsługuje wewnętrzne serwery MCP i nie musisz wystawiać każdego z nich na zewnątrz
Kierowanie według nazwyPrzypisuje publiczną nazwę celu do wewnętrznego host:port
Lista dozwolonych celówHOSTS ogranicza cele, do których przekaźnik przekazuje żądania
Zachowanie sesji MCPPrzekazuje logowanie celu, pliki cookie, nagłówki sesji i odpowiedzi przesyłane strumieniowo
Podgląd ruchuPulpit pokazuje ostatnie żądania, ich status, czas trwania, cel i powód zablokowania

Czego Konrado nie potrafi

Nie da sięDlaczego
Dotrzeć do celu przez połączenie Zdalny agentTo połączenie zawiera tylko adres przekaźnika i klucz API, bez nagłówków celu. Zamiast tego podłącz każdy cel jako własny serwer MCP
Ustawić serwer MCP tylko do odczytuKażdy cel sam decyduje, co robią jego narzędzia
Ominąć logowanie celuPrzekazane żądanie nadal wymaga ważnego tokenu celu
Samodzielnie znaleźć wewnętrzne serwery MCPCele trzeba wskazać w żądaniu i wpisać do HOSTS, gdy ta lista nie jest pusta
Przekazywać zwykłe aplikacje internetowe lub inne ścieżkiPrzekaźnik obsługuje ruch MCP tylko pod /mcp i /sse
Zastąpić zaporę sieciowąTo Ty decydujesz, z jakich sieci można połączyć się z przekaźnikiem i jego pulpitem
Model bezpieczeństwa

Używaj HOSTS jako listy dozwolonych. Pusta lista HOSTS=[] przekazuje żądania do dowolnego celu. To wystarczy do testu, ale nie do pracy na produkcji. Traktuj API_KEY i każdy token celu jak hasła. Pulpit nie ma własnego logowania, a przekaźnik działa na zwykłym HTTP. Otwórz port tylko dla zaufanych sieci albo umieść przekaźnik za własną kontrolą dostępu.

Zanim zaczniesz

  • Dostęp SSH jako root do maszyny, na której działa przekaźnik. Maszyna potrzebuje Pythona 3.10 lub nowszego, curl, unzip i systemd.
  • Dostęp wychodzący z tej maszyny do docelowych serwerów MCP.
  • Wolny port TCP. Przekaźnik i jego pulpit używają portu 8001, chyba że go zmienisz.
  • Port 8001 otwarty dla adresów IP Konrado (zobacz listę).

Podłączanie

Skopiuj polecenie instalacji

Otwórz Ustawienia obszaru roboczegoIntegracje, kliknij Dodaj integrację i wybierz Zdalny agent. Okno pokazuje trzy kroki i polecenie instalacji. Kliknij przycisk kopiowania obok polecenia. Okno ukrywa Twój klucz na ekranie, ale skopiowane polecenie go zawiera. Traktuj je więc jak hasło.

bash <(curl -s https://repo.konrado.ai/remote-agent/init.sh) --api-key=YOUR_KEY --callback-url=https://app.konrado.ai/api/integrations/servers/install

Uruchom je jako root

Zaloguj się na maszynę przez SSH jako root i wklej polecenie. Polecenie o nic nie pyta. Instalator tworzy katalog /opt/KonradoAiRemoteAgent i użytkownika konrado-mcp-remote-agent, instaluje przekaźnik i uruchamia konrado-mcp-remote-agent.service. Potem generuje API_KEY i zgłasza się do Konrado. Aby użyć innego portu niż 8001, dopisz na końcu polecenia --port=8002 (lub swój port).

Poczekaj na połączenie

Okno pokazuje Nasłuchiwanie serwera… i sprawdza połączenie co 5 sekund. Gdy przekaźnik się zgłosi, pojawia się Połączono pomyślnie. Kliknij Gotowe. Polecenie można bezpiecznie uruchomić ponownie.

Ustaw listę dozwolonych

Otwórz pulpit pod adresem http://<SERVER_IP>:8001/dashboard i uzupełnij HOSTS w zakładce Configuration. Zobacz ustawienia, aby sprawdzić, do czego służy każde pole.

Dostęp do prywatnego serwera MCP

Dla każdego prywatnego serwera MCP dodaj w Konrado połączenie Własny serwer MCP, które wskazuje na przekaźnik.

Otwórz formularz własnego serwera

Otwórz Ustawienia obszaru roboczegoIntegracje, kliknij Dodaj integrację i wybierz Własny serwer MCP.

Wskaż przekaźnik

PoleCo wpisać
NazwaNazwę celu, na przykład Billing tools
Adres serweraAdres przekaźnika, http://<SERVER_IP>:8001/mcp
UwierzytelnianieWłasne nagłówki
Nagłówki żądaniaAuthorization z wartością Bearer <API_KEY>, Target-Host z hostem celu w takiej postaci, jak w HOSTS, oraz Target-Token z własnym tokenem serwera docelowego

API_KEY przekaźnika znajduje się w pliku /opt/KonradoAiRemoteAgent/.env. Pokazuje go też wiersz integracji Zdalny agent w Konrado, w polu Klucz API.

Przetestuj i dodaj

Kliknij Testuj połączenie. Zaznacz Ufam temu serwerowi. Moi agenci będą mogli używać jego narzędzi. i kliknij Dodaj serwer.

Konrado wysyła te trzy nagłówki z każdym żądaniem, a przekaźnik przesyła każde żądanie do celu. Narzędzia celu działają wtedy jak narzędzia każdego własnego serwera MCP. Konrado korzysta tylko z tych oznaczonych readOnlyHint: true i nie są one przypisane do usługi konkretnego klienta. Przeczytaj stronę o własnym serwerze MCP, aby poznać szczegóły.

Przekaźnik działa na zwykłym HTTP, więc nagłówki są przesyłane bez szyfrowania. Aby je zaszyfrować, umieść przekaźnik za własnym serwerem proxy HTTPS i wpisz jego adres https:// w polu Adres serwera.

Pulpit

Zakładka Logs pokazuje ostatnie żądania, kody statusu, czas trwania, informację, czy żądanie przeszło, czy zostało zablokowane, host celu i powód zablokowania.

Zakładka Logs na pulpicie Zdalnego agenta

W zakładce Configuration edytujesz HOSTS. Zmiany trafiają do pliku .env przekaźnika.

Zakładka Configuration na pulpicie Zdalnego agenta z listą HOSTS i przyciskiem Save & Apply

Jeśli później zmienisz SERVER_PORT, uruchom usługę ponownie i otwórz nowy port w zaporze. Konrado nadal łączy się ze starym adresem. Otwórz więc wiersz integracji Zdalny agent w Konrado i zmień w polu Adres serwera port na nowy.

Ustawienia

Przekaźnik odczytuje te ustawienia z pliku .env:

UstawienieCo to jest
API_KEYToken typu bearer, którego Konrado i inni klienci używają, aby połączyć się z przekaźnikiem
SERVER_BIND_IP_ADDRESSAdres, na którym nasłuchuje, zwykle 0.0.0.0
SERVER_PORTPort, na którym nasłuchuje, zwykle 8001
HOSTSLista JSON, którą edytujesz na pulpicie. Gdy jest pusta, przekaźnik przekazuje żądania do dowolnego Target-Host. Gdy jest uzupełniona, dopuszcza tylko wymienione hosty i może przypisać im inne adresy

Każdy wpis w HOSTS może zawierać:

PoleCo to jest
hostWymagane. Wartość akceptowana z nagłówka Target-Host
internalHostOpcjonalne. Wewnętrzny host:port, z którym przekaźnik się łączy, gdy Target-Host pasuje do host
labelOpcjonalne. Nazwa dla Twojego zespołu, na przykład cPanel EU clients
HOSTS='[
  {"host":"203.0.113.20:8000","label":"Direct target"},
  {"host":"konrado-test:8000","internalHost":"203.0.113.20:8000","label":"Alias through internalHost"}
]'

Sprawdź, czy działa

Przekaźnik widnieje na stronie Integracje ze statusem Połączono, typem Zdalny agent i numerem wersji. Konrado ponownie sprawdza połączenie co godzinę. Możesz też sprawdzić sam przekaźnik:

curl http://<SERVER_IP>:8001/health

Przekaźnik odpowiada {"status": "healthy", "service": "Konrado AI Remote Agent"}. Aby sprawdzić trasę do celu, wyślij żądanie MCP z oboma nagłówkami celu:

curl -i -X POST http://<SERVER_IP>:8001/mcp \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Target-Host: <target-host>" \
  -H "Target-Token: <target-token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'

Jeśli coś nie działa

Co widziszCo zrobić
Pulpit się nie otwieraSprawdź, czy działa konrado-mcp-remote-agent.service i czy z Twojej sieci można połączyć się z tym portem
403 z komunikatem Missing Authorization header lub Invalid API keyWyślij Authorization: Bearer z kluczem API_KEY przekaźnika
Host '…' is not on the allowed HOSTS listDodaj host do HOSTS dokładnie w takiej postaci, w jakiej żądanie wysyła go w Target-Host
Żądanie z jednym nagłówkiem celu kończy się błędemWyślij oba nagłówki: Target-Host i Target-Token
Odpowiada sam przekaźnik zamiast celuŻądanie nie zawierało nagłówków celu. Sprawdź pole Nagłówki żądania we własnym serwerze MCP
Połączono, ale Konrado nie używa żadnego narzędzia celuKonrado korzysta tylko z narzędzi oznaczonych readOnlyHint: true. Wtyczka Konrado za przekaźnikiem oznacza je tylko w panelu Plesk
Nie da się dotrzeć do celuSprawdź internalHost we wpisie i to, czy maszyna przekaźnika łączy się z celem
502 lub błąd połączenia z celemSprawdź, czy docelowy serwer MCP działa i odpowiada pod /mcp
Błąd połączenia w kroku instalacjiUruchom poniższe polecenia na maszynie przekaźnika, a potem ponownie uruchom polecenie instalacji
systemctl status   konrado-mcp-remote-agent.service
journalctl         -u konrado-mcp-remote-agent.service --since "15 minutes ago" --no-pager
systemctl restart  konrado-mcp-remote-agent.service
ss -ltnp | grep ':8001'

Aktualizacja przekaźnika

Gdy pojawi się nowa wersja, wiersz na stronie Integracje pokazuje Aktualizuj do v…. Konrado nie zaktualizuje przekaźnika za Ciebie. Kliknij ten przycisk, a potem uruchom pokazane polecenie na maszynie przekaźnika:

bash /opt/KonradoAiRemoteAgent/scripts/update.sh

Usuń integrację

Otwórz Ustawienia obszaru roboczegoIntegracje, otwórz menu wiersza (trzy kropki) i wybierz Usuń. Jeśli nic innego nie korzysta z przekaźnika, usuń go z maszyny jako root:

systemctl disable --now konrado-mcp-remote-agent.service
rm /etc/systemd/system/konrado-mcp-remote-agent.service
systemctl daemon-reload
rm -rf /opt/KonradoAiRemoteAgent
userdel konrado-mcp-remote-agent
groupdel konrado-mcp-remote-agent

Ostatnia aktualizacja:

Na tej stronie