Dashboard MCP#
Panel zarządzania serwerem MCP dostępny jest w menu bocznym vCLU > MCP.
Status#
Karta statusu pokazuje bieżące metryki serwera:
- Total Requests - łączna liczba żądań od uruchomienia
- Errors - liczba błędów (nieautoryzowane, readonly, nieznane urządzenia)
- In-flight - aktywne sesje w danym momencie
- Status - badge Enabled / Disabled
Konfiguracja#
Włączanie / wyłączanie#
Checkbox Enable MCP Server włącza i wyłącza serwer w runtime - bez restartu vCLU. Gdy wyłączony, endpoint /mcp zwraca 503 Service Unavailable.
Boty MCP#
Każdy klient AI (Claude, Codex, Gemini) to osobny bot z własnym kluczem API i profilami dostępu.
Tworzenie bota#
- Add Bot - podaj nazwę (np. “Claude Code”)
- Przypisz profile dostępu - jakie obiekty bot widzi i steruje
- Klucz API wyświetla się jednorazowo - skopiuj go od razu
Zarządzanie#
- Edit - zmień nazwę lub przypisane profile
- Regenerate key - wygeneruj nowy klucz (stary przestaje działać natychmiast)
- Delete - usuń bota (klucz natychmiast traci ważność)
Klucz jest wyświetlany jednorazowo. Jeśli go nie skopiujesz, musisz zregenerować.
Connection Guide#
Trzy zakładki z gotową konfiguracją do skopiowania:
Claude Code#
{
"mcpServers": {
"vclu": {
"type": "http",
"url": "http://<vclu-adres>/mcp",
"headers": {
"Authorization": "Bearer <klucz-api>"
}
}
}
}Codex CLI#
[mcp_servers.vclu]
url = "http://<vclu-adres>/mcp"
bearer_token_env_var = "VCLU_MCP_KEY"Gemini CLI#
{
"mcpServers": {
"vclu": {
"httpUrl": "http://<vclu-adres>/mcp",
"headers": {
"Authorization": "Bearer <klucz-api>"
}
}
}
}URL w konfiguracji jest automatycznie uzupełniany adresem bieżącej instancji vCLU.
Activity Log#
Tabela z ostatnimi 50 wywołaniami narzędzi MCP:
| Kolumna | Opis |
|---|---|
| Time | Data i godzina wywołania |
| Tool | Nazwa narzędzia (vclu_devices, vclu_device_set, …) |
| Path | Ścieżka urządzenia (jeśli dotyczy) |
| Status | OK (zielony) / ERR (czerwony) |
| Latency | Czas wykonania w milisekundach |
| Remote IP | Adres IP klienta AI |
Lista odświeża się automatycznie co 10 sekund. Przycisk Refresh wymusza natychmiastowe odświeżenie.
Latency Distribution#
Histogram rozkładu czasów odpowiedzi:
| Bucket | Zakres |
|---|---|
| < 10ms | Bardzo szybkie (odczyty z cache) |
| < 50ms | Typowe odczyty |
| < 100ms | Typowe sterowanie |
| < 500ms | Wolniejsze operacje |
| < 1s | Timeout-graniczne |
| > 1s | Problematyczne - warto zbadać |
Większość operacji powinna mieścić się w przedziale < 100ms.
REST API dashboardu#
Dashboard korzysta z endpointów REST, które można też odpytywać bezpośrednio:
| Endpoint | Metoda | Opis |
|---|---|---|
/api/mcp/status | GET | Stan serwera, liczniki |
/api/mcp/save | POST | Włącz/wyłącz MCP {enabled: true/false} |
/api/mcp/stats | GET | Metryki: requesty, błędy, sesje, latency buckets |
/api/mcp/activity | GET | Ostatnie wywołania ?limit=50 |
/api/mcp/bots | GET | Lista botów |
/api/mcp/bots | POST | Utwórz bota |
/api/mcp/bots/:id | PUT | Edytuj bota (nazwa, profile) |
/api/mcp/bots/:id | DELETE | Usuń bota |
/api/mcp/bots/:id/regenerate | POST | Regeneruj klucz API bota |