{% extends "base.html" %} {% block title %}{{ _('Proxy instances & subscriptions') }} — mcprack{% endblock %} {% block content %}

🔷 {{ _('Server subscriptions') }}

{{ _('Which users have selected which MCP servers, and whether a live per-user proxy instance is currently running for that pair.') }}

{% for row in subscription_rows %} {% else %} {% endfor %}
{{ _('User') }} {{ _('Server') }} {{ _('Selected') }} {{ _('Proxy status') }}
{{ row.username }} {{ row.server_name }} {{ row.selected_at.strftime('%Y-%m-%d %H:%M') if row.selected_at else '—' }} {% if row.proxy_running %} ✓ {{ _('running') }} {% elif row.is_stdio_proxy_candidate %} {{ _('not started yet') }} {% else %} — {{ _('(network endpoint, no proxy needed)') }} {% endif %}

{{ _('No users have selected any servers yet.') }}

{{ _('Running per-user proxy instances') }}

{{ _('Only stdio servers without a fixed network URL are started here, on demand, one isolated instance per (user, server) pair.') }}

{% for row in rows %} {% else %} {% endfor %}
{{ _('User') }} {{ _('Server') }} {{ _('PID') }} {{ _('Port') }} {{ _('Status') }} {{ _('Idle') }} {{ _('Log') }} {{ _('Actions') }}
{{ row.username }} {{ row.server_name }} {{ row.pid or "-" }} {{ row.port }} {% if row.running %} ✓ {{ _('running') }} {% else %} {{ _('stale') }} {% endif %} {{ (row.idle_seconds|string + " s") if row.idle_seconds is not none else "-" }} {{ row.log_path }}

{{ _('No per-user proxy instances running right now.') }}

{% endblock %}