Skip to main content
Glama

Tunnel Manager

CLI oder API | MCP | Agent

PyPI - Version MCP Server PyPI - Downloads GitHub Repo stars GitHub forks GitHub contributors PyPI - License GitHub GitHub last commit (by committer) GitHub pull requests GitHub closed pull requests GitHub issues GitHub top language GitHub language count GitHub repo size GitHub repo file count (file type) PyPI - Wheel PyPI - Implementation

Version: 3.1.0

Dokumentation — Installation, Bereitstellung, Nutzung über die API, CLI und MCP sowie Agent-Schnittstellen werden in der offiziellen Dokumentation gepflegt.


Related MCP server: mcp-ssh

Überblick

Tunnel Manager ist ein produktionsreifer Agent- und Model Context Protocol (MCP)-Server, der direkt mit Create SSH Tunnels zu Ihren Remote-Hosts interagiert und als MCP-Server für Agentic AI fungiert!.


Hauptfunktionen

  • Konsolidierte aktionsgesteuerte MCP-Tools: Minimiert Token-Overhead und eliminiert Tool-Aufblähung in LLM-Kontexten, indem Methoden in optimierte, umschaltbare Tool-Module gruppiert werden.

  • Unternehmensgerechte Sicherheit: Umfassende Unterstützung für Eunomia-Richtlinien, OIDC-Token-Delegation und granulare Ausführungskontextverfolgung.

  • Integrierter Graph-Agent: Eingebauter Pydantic-AI-Agent, der das Agent Control Protocol (ACP) und standardmäßige Web-Schnittstellen (AG-UI) unterstützt.

  • Native Telemetrie & Tracing: Out-of-the-box OpenTelemetry-Exporte und natives Langfuse-Tracing.


CLI oder API

Dieser Agent kapselt die Create SSH Tunnels zu Ihren Remote-Hosts und hostet als MCP-Server für Agentic AI! API. Sie können programmatisch oder über die integrierten Ausführungs-Einstiegspunkte mit ihm interagieren.

Detaillierte Anweisungen zur Verwendung der zugrunde liegenden API-Wrapper, erweiterten Schema-Bindungen und Entwickler-SDK-Referenzen finden Sie in docs/index.md.


MCP

Dieser Server verwendet dynamische aktionsgesteuerte Tools, um den Token-Overhead zu optimieren und die IDE-Kompatibilität zu maximieren.

Verfügbare MCP-Tools

Automatisch vom Live-MCP-Server generiert — nicht von Hand bearbeiten.

Kondensierte aktionsgesteuerte Tools (MCP_TOOL_MODE=condensed)

MCP-Tool

Env-Var zum Umschalten

Beschreibung

tm_files

FILETOOL

Erweiterte Dateioperationen auf Remote-Hosts.

tm_hosts

HOSTTOOL

Verwaltung des lokalen Host-Alias-Inventars.

tm_inventory

INVENTORYTOOL

Massen-Inventaroperationen gegen YAML-Hostgruppen.

tm_operations

OPERATIONSTOOL

Betriebslebenszyklus- und Sitzungsverwaltung.

tm_remote

REMOTETOOL

SSH-Operationen für einzelne Hosts mit gemeinsamen Verbindungsparametern.

tm_security

SECURITYTOOL

Sicherheitsscans und Compliance.

tm_system

SYSTEMTOOL

Remote-Systeminformationen über SSH.

tunnel_ingest_hosts

INGESTTOOL

Listet das verwaltete SSH-Inventar auf und schiebt es in den epistemischen Graph-KG.

Ausführliche 1:1-API-zugeordnete Tools (MCP_TOOL_MODE=verbose oder both)

MCP-Tool

Env-Var zum Umschalten

Beschreibung

tunnel_manager_add_host

HOST_MANAGERTOOL

Ruft die add_host-Operation auf.

tunnel_manager_get_host

HOST_MANAGERTOOL

Ruft eine Host-Konfiguration per Alias ab und verweigert einen Alias, auf den der Aufrufer keinen Anspruch hat.

tunnel_manager_list_hosts

HOST_MANAGERTOOL

Listet die Host-Aliasse auf, auf die der AUFRUFER Anspruch hat, mit redigierten Geheimnissen.

tunnel_manager_load_inventory

HOST_MANAGERTOOL

Ruft die load_inventory-Operation auf.

tunnel_manager_remove_host

HOST_MANAGERTOOL

Ruft die remove_host-Operation auf.

tunnel_manager_save_inventory

HOST_MANAGERTOOL

Ruft die save_inventory-Operation auf.

8 aktionsgesteuerte(s) Tool(s) · 6 ausführliche 1:1-Tool(s). Jedes ist aktiviert, es sei denn, sein <DOMAIN>TOOL-Schalter ist auf false gesetzt; MCP_TOOL_MODE wählt die Oberfläche (**intent Standard* — die sechs Verb-Tools, granulare Menge bei Bedarf geladen · condensed aktionsgesteuert · verbose 1:1 · both). Automatisch generiert — nicht bearbeiten.*

Detaillierte Tool-Schemas, Parameterformen und Validierungsbeschränkungen sind in docs/usage.md erhalten.

Dynamische Tool-Auswahl und Sichtbarkeit

Dieser MCP-Server unterstützt die dynamische Auswahl des Toolsets und die Sichtbarkeitsfilterung zur Laufzeit. Dadurch können Sie die Menge der verfügbaren Tools einschränken, um eine Aufblähung des LLM-Kontextfensters zu verhindern.

Sie können die Tool-Filterung über mehrere Eingabekanäle konfigurieren:

  • CLI-Argumente: Übergeben Sie --tools oder --toolsets (oder deren deaktivierte Gegenstücke --disabled-tools und --disabled-toolsets) beim Start.

  • Umgebungsvariablen: Definieren Sie standardmäßige Umgebungsvariablen:

    • MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS

    • MCP_ENABLED_TAGS / MCP_DISABLED_TAGS

  • HTTP-SSE-Anfrageheader: Übergeben Sie benutzerdefinierte Header während der Transportinitialisierung:

    • x-mcp-enabled-tools / x-mcp-disabled-tools

    • x-mcp-enabled-tags / x-mcp-disabled-tags

  • HTTP-SSE-Anfrageabfrageparameter: Fügen Sie Abfrageparameter direkt an Ihre Transportverbindungs-URL an:

    • ?tools=tool1,tool2

    • ?tags=tag1

Wenn Abfragezeichenfolgen oder -parameter bereitgestellt werden, gleicht eine LLM-freie Knowledge-Graph-Auflösungsschicht (unter Verwendung von DynamicToolOrchestrator) Abfrageabsichten mit bekannten Tool-Tags, -Namen oder -Beschreibungen ab, mit sicherem Fallback und automatischer 24-Stunden-Hintergrund-Cache-Aktualisierung.


MCP-Konfigurationsbeispiele

Installieren Sie das verbindungsorientierte [mcp]-Extra. Beispiele verwenden tunnel-manager[mcp], um FastMCP / FastAPI über agent-utilities[mcp] hinzuzufügen; der erforderliche Agent-Utilities-Kern trägt weiterhin epistemic-graph[full]. Das [agent-runtime]-Extra aktiviert zusätzlich die Modellorchestrierung.

stdio-Transport (lokale IDEs — Cursor, Claude Desktop, VS Code)

{
  "mcpServers": {
    "tunnel-manager-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "tunnel-manager[mcp]",
        "tunnel-manager-mcp"
      ],
      "env": {
        "MCP_TOOL_MODE": "intent",
        "FILETOOL": "True",
        "HOSTTOOL": "True",
        "INGESTTOOL": "True",
        "INVENTORYTOOL": "True",
        "OPERATIONSTOOL": "True",
        "REMOTETOOL": "True",
        "SECURITYTOOL": "True",
        "SYSTEMTOOL": "True",
        "TUNNEL_IDENTITY_FILE": "~/.ssh/id_ed25519",
        "TUNNEL_INVENTORY_GROUP": "all",
        "TUNNEL_KG_INGEST": "true",
        "TUNNEL_KNOWN_HOSTS": "~/.ssh/known_hosts",
        "TUNNEL_MANAGER_HEALTH_AGGREGATE_S": "3600",
        "TUNNEL_MANAGER_HEALTH_INGEST": "true",
        "TUNNEL_MANAGER_HOSTS": "r510,r710,r820,rw710",
        "TUNNEL_MAX_THREADS": "6",
        "TUNNEL_PARALLEL": "False",
        "TUNNEL_REMOTE_PORT": "22"
      }
    }
  }
}

Laufzeitreferenzen erfordern einen alias-bewussten Launcher wie GraphOS. Andere Launcher müssen diese Einträge weglassen und die aufgelösten Werte über ihre eigene Laufzeit-Geheimnisgrenze injizieren.

Streamable-HTTP-Transport (vernetzt / Produktion)

{
  "mcpServers": {
    "tunnel-manager-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "tunnel-manager[mcp]",
        "tunnel-manager-mcp",
        "--transport",
        "streamable-http",
        "--port",
        "8000"
      ],
      "env": {
        "TRANSPORT": "streamable-http",
        "HOST": "127.0.0.1",
        "PORT": "8000",
        "MCP_TOOL_MODE": "intent",
        "FILETOOL": "True",
        "HOSTTOOL": "True",
        "INGESTTOOL": "True",
        "INVENTORYTOOL": "True",
        "OPERATIONSTOOL": "True",
        "REMOTETOOL": "True",
        "SECURITYTOOL": "True",
        "SYSTEMTOOL": "True",
        "TUNNEL_IDENTITY_FILE": "~/.ssh/id_ed25519",
        "TUNNEL_INVENTORY_GROUP": "all",
        "TUNNEL_KG_INGEST": "true",
        "TUNNEL_KNOWN_HOSTS": "~/.ssh/known_hosts",
        "TUNNEL_MANAGER_HEALTH_AGGREGATE_S": "3600",
        "TUNNEL_MANAGER_HEALTH_INGEST": "true",
        "TUNNEL_MANAGER_HOSTS": "r510,r710,r820,rw710",
        "TUNNEL_MAX_THREADS": "6",
        "TUNNEL_PARALLEL": "False",
        "TUNNEL_REMOTE_PORT": "22"
      }
    }
  }
}

Alternativ können Sie eine Verbindung zu einer bereits bereitgestellten Streamable-HTTP-Instanz per url herstellen:

{
  "mcpServers": {
    "tunnel-manager-mcp": {
      "url": "http://localhost:8000/tunnel-manager-mcp/mcp"
    }
  }
}

Führen Sie ein überprüftes Container-Image als stdio-Kind mit geringsten Rechten aus (kein Listener oder veröffentlichter Port):

docker run -i --rm \
  --read-only \
  --cap-drop=ALL \
  --security-opt=no-new-privileges \
  --pids-limit=256 \
  --tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m \
  -e TRANSPORT=stdio \
  -e MCP_TOOL_MODE=intent \
  -e FILETOOL=True \
  -e HOSTTOOL=True \
  -e INGESTTOOL=True \
  -e INVENTORYTOOL=True \
  -e OPERATIONSTOOL=True \
  -e REMOTETOOL=True \
  -e SECURITYTOOL=True \
  -e SYSTEMTOOL=True \
  -e TUNNEL_IDENTITY_FILE=~/.ssh/id_ed25519 \
  -e TUNNEL_INVENTORY_GROUP=all \
  -e TUNNEL_KG_INGEST=true \
  -e TUNNEL_KNOWN_HOSTS=~/.ssh/known_hosts \
  -e TUNNEL_MANAGER_HEALTH_AGGREGATE_S=3600 \
  -e TUNNEL_MANAGER_HEALTH_INGEST=true \
  -e TUNNEL_MANAGER_HOSTS=r510,r710,r820,rw710 \
  -e TUNNEL_MAX_THREADS=6 \
  -e TUNNEL_PARALLEL=False \
  -e TUNNEL_REMOTE_PORT=22 \
  registry.example.invalid/tunnel-manager@sha256:<digest> tunnel-manager-mcp

Für containerisiertes Netzwerk-HTTP stellen Sie einen authentifizierten TLS-Ingress (oder direkten Server-TLS), exakte MCP_ALLOWED_HOSTS und eine exakte Trusted-Proxy-CIDR-Richtlinie über das vom Betreiber verwaltete Bereitstellungsprofil bereit. Der Generator gibt keinen nicht authentifizierten Nicht-Loopback-Listener aus.

Automatisch aus der codegelesenen Env-Oberfläche (MCP_TOOL_MODE + Paketvariablen) generiert — nicht bearbeiten.

Zusätzliche Bereitstellungsoptionen

tunnel-manager kann als lokaler stdio-Prozess oder Container oder hinter einer entfernten Netzwerkgrenze ausgeführt werden. Der Bereitstellungsleitfaden enthält den detaillierten Transportvertrag.

  • Lokaler Container — starten Sie ein überprüftes unveränderliches Image als stdio-Kind mit geringsten Rechten, ohne Listener oder veröffentlichten Port.

  • Remote-URL — verbinden Sie sich über einen vom Betreiber bereitgestellten authentifizierten HTTPS-Ingress. Bewahren Sie dessen URL, ausgehende Identitätsreferenzen, Vertrauensprofil und exakte MCP_ALLOWED_HOSTS in AgentConfig auf.


Inventar

tunnel-manager arbeitet mit einem einzigen gemeinsamen YAML-Inventar, das kurze Host- Aliasse (z. B. edge-node) ihren SSH-Verbindungsdetails zuordnet. Jede Ökosystemoberfläche liest dieselbe Datei — die HostManager-API, die tunnel-manager-CLI, den MCP-Server, container-manager-mcp (seine cm_*-Host-Aliasse) und die ssh-bootstrap-Fähigkeit — so definieren Sie Ihre Flotte einmal.

  • Speicherort~/.config/agent-utilities/inventory.yml (.yml bevorzugt). Eine ältere inventory.yaml am selben Pfad wird weiterhin gelesen, wenn keine .yml vorhanden ist, sodass bestehende Installationen weiter funktionieren. Überschreiben mit TUNNEL_INVENTORY.

  • Verwalten Sie es mit dem Unterbefehl inventory:

    tunnel-manager inventory init     # write a commented inventory.yml template (--force to overwrite)
    tunnel-manager inventory doctor   # validate hosts/groups; --fix migrates legacy .yaml -> .yml
    tunnel-manager inventory show     # print the resolved path + host/group summary

Das vollständige Schema, jedes Host-Feld, die Kopier-Einfüge-Vorlage und Überschreibungsoptionen finden Sie im Inventar-Leitfaden.


Umgebungsvariablen

Paket-Umgebungsvariablen

Variable

Beispiel

Beschreibung

HOST

127.0.0.1

PORT

8000

TRANSPORT

stdio

Optionen: stdio, streamable-http, sse

ENABLE_OTEL

True

OTEL_EXPORTER_OTLP_ENDPOINT

http://localhost:8080/api/public/otel

OTEL_EXPORTER_OTLP_PUBLIC_KEY

secret-injected

OTEL_EXPORTER_OTLP_SECRET_KEY

secret-injected

OTEL_EXPORTER_OTLP_PROTOCOL

http/protobuf

EUNOMIA_TYPE

none

Optionen: none, embedded, remote

EUNOMIA_POLICY_FILE

mcp_policies.json

EUNOMIA_REMOTE_URL

http://eunomia-server:8000

TUNNEL_IDENTITY_FILE

~/.ssh/id_ed25519

DEBUG

False

PYTHONUNBUFFERED

1

TUNNEL_REMOTE_HOST

Standard-Remote-Host (z. B. 198.51.100.10)

TUNNEL_REMOTE_PORT

22

Standard-SSH-Port

TUNNEL_USERNAME

Standard-SSH-Benutzername

TUNNEL_PASSWORD_REF

env://-, vault://-, secret://- oder sqlite://-Referenz

TUNNEL_KNOWN_HOSTS

~/.ssh/known_hosts

Unabhängig verifizierte Server-Host-Keys

TUNNEL_CERTIFICATE

Pfad zu einer SSH-Zertifikatsdatei

TUNNEL_PROXY_COMMAND

SSH-ProxyCommand für Jump-Host/Bastion-Verbindungen

TUNNEL_INVENTORY

Pfad zur Inventardatei (Standard: XDG-Konfigurationspfad)

TUNNEL_INVENTORY_GROUP

all

Ziel-Hostgruppe des Inventars

TUNNEL_PARALLEL

False

Host-Operationen parallel ausführen

TUNNEL_MAX_THREADS

6

Maximale Worker-Threads, wenn TUNNEL_PARALLEL=True

TUNNEL_MAX_COMMAND_CHARS

65536

TUNNEL_MAX_OUTPUT_BYTES

1048576

TUNNEL_MAX_TRANSFER_BYTES

268435456

TUNNEL_MAX_FLEET_HOSTS

1000

TUNNEL_MAX_CONCURRENCY

64

XDG_CONFIG_HOME

Basis-Konfigurationsverzeichnis (Standard: ~/.config) für die Inventarauflösung

HOSTTOOL

True

Gruppierte kondensierte Oberflächen-Umschalter, einer pro register__tools-Registrar.

REMOTETOOL

True

INVENTORYTOOL

True

OPERATIONSTOOL

True

SYSTEMTOOL

True

FILETOOL

True

SECURITYTOOL

True

INGESTTOOL

True

KG-Ingest-Tools (SSH-Inventar in den epistemischen Graphen auflisten)

TUNNEL_KG_INGEST

true

Standardmäßig aktivierter Best-Effort-Inventar-Ingest bei list

TUNNEL_MANAGER_HEALTH_INGEST

true

Standardmäßig aktivierte Best-Effort-Netzwerksignal-Trend-Erfassung

TUNNEL_MANAGER_HEALTH_AGGREGATE_S

3600

Fenster (s), über das Stichproben zu EINEM :HealthTrend-Knoten/Host/Signal destilliert werden

TUNNEL_MANAGER_HOSTS

r510,r710,r820,rw710

Durch Kommas getrennte Inventar-Aliasse, die überprüft/abgeleitet werden sollen (Standard: vollständiges Inventar)

TUNNEL_MANAGER_HEALTH_NOTIFY_URL

Best-Effort-Webhook für Netzwerkanomalie-Benachrichtigungen

Geerbte Agent-Utilities-Variablen (gelten für jeden Connector)

Variable

Beispiel

Beschreibung

MCP_TOOL_MODE

intent

Tool-Oberfläche: intent | condensed | verbose | both

MCP_ENABLED_TOOLS

Durch Kommas getrennte Tool-Allow-Liste

MCP_DISABLED_TOOLS

Durch Kommas getrennte Tool-Deny-Liste

MCP_ENABLED_TAGS

Durch Kommas getrennte Tag-Allow-Liste

MCP_DISABLED_TAGS

Durch Kommas getrennte Tag-Deny-Liste

MCP_CLIENT_AUTH

Ausgehende MCP-Kind-Authentifizierung: oidc-client-credentials | basic | none

OIDC_CLIENT_ID

OIDC-Client-ID (Servicekonto-Authentifizierung)

OIDC_CLIENT_SECRET_REF

secret://identity/oidc-client-secret

Laufzeit-Geheimnisreferenz für das OIDC-Servicekonto

MCP_BASIC_AUTH_USERNAME

HTTP-Basic-Benutzername (MCP_CLIENT_AUTH=basic)

MCP_BASIC_AUTH_PASSWORD_REF

secret://identity/mcp-basic-password

Laufzeit-Geheimnisreferenz für HTTP-Basic-Authentifizierung (MCP_CLIENT_AUTH=basic)

MCP_URL

http://localhost:8000/mcp

URL des MCP-Servers, mit dem der Agent verbindet

PROVIDER

openai

LLM-Anbieter für den Agenten

MODEL_ID

gpt-4o

Modell-ID für den Agenten

ENABLE_WEB_UI

True

AG-UI-Weboberfläche bereitstellen

44 Paket- + 14 geerbte Variable(n). Automatisch generiert aus .env.example + dem gemeinsamen Agent-Utilities-Satz — nicht bearbeiten.

Jede Variable, die der Server liest, nach Zweck gruppiert. Siehe .env.example für einen Copy-Paste-Ausgangspunkt.

SSH-Verbindung & Anmeldedaten

Variable

Beschreibung

Standard

TUNNEL_IDENTITY_FILE

Pfad zum SSH-privaten Schlüssel

~/.ssh/id_ed25519

TUNNEL_USERNAME

SSH-Benutzername

TUNNEL_PASSWORD_REF

env://-, vault://-, secret://- oder sqlite://-SSH-Passwortreferenz

TUNNEL_KNOWN_HOSTS

Unabhängig verifizierter SSH-Server-Key-Trust-Store

~/.ssh/known_hosts

TUNNEL_CERTIFICATE

Pfad zu einem SSH-Zertifikat

TUNNEL_REMOTE_HOST

Standard-Remote-Host

TUNNEL_REMOTE_PORT

Standard-Remote-SSH-Port

22

TUNNEL_PROXY_COMMAND

SSH-ProxyCommand für Jump-Hosts

Inventar & Parallelität

Variable

Beschreibung

Standard

TUNNEL_INVENTORY

Pfad zum gemeinsamen Inventar (.yml bevorzugt, .yaml als Fallback)

~/.config/agent-utilities/inventory.yml

TUNNEL_INVENTORY_GROUP

Standard-Inventar-Hostgruppe

TUNNEL_PARALLEL

Parallele Ausführung von Massenvorgängen

TUNNEL_MAX_THREADS

Maximale Anzahl gleichzeitiger SSH-Arbeiterthreads

XDG_CONFIG_HOME

Basisverzeichnis für die Auflösung des Inventars

~/.config

MCP-Server / Transport

Variable

Beschreibung

Standard

TRANSPORT

stdio, streamable-http oder sse

stdio

HOST

Bind-Adresse (HTTP-Transporte)

127.0.0.1

PORT

Bind-Port (HTTP-Transporte)

8000

MCP_TOOL_MODE

Werkzeugoberfläche: condensed, verbose oder both

condensed

MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS

Kommagetrennte Werkzeug-Zulassungs-/Sperrliste

MCP_ENABLED_TAGS / MCP_DISABLED_TAGS

Kommagetrennte Tag-Zulassungs-/Sperrliste

DEBUG

Ausführliche Protokollierung

False

PYTHONUNBUFFERED

Ungepufferte Standardausgabe (für Container empfohlen)

1

Werkzeugumschalter

Jedes aktionsgesteuerte Werkzeug kann einzeln über seine Umschalt-Umgebungsvariable deaktiviert werden (auf false setzen). Die vollständige Liste finden Sie in der Tabelle Verfügbare MCP-Werkzeuge oben (HOSTTOOL, REMOTETOOL, INVENTORYTOOL, OPERATIONSTOOL, SYSTEMTOOL, FILETOOL, SECURITYTOOL).

Telemetrie & Governance

Variable

Beschreibung

Standard

ENABLE_OTEL

OpenTelemetry-Export aktivieren

True

OTEL_EXPORTER_OTLP_ENDPOINT

OTLP-Collector-Endpunkt

OTEL_EXPORTER_OTLP_PUBLIC_KEY / OTEL_EXPORTER_OTLP_SECRET_KEY

OTLP-Authentifizierungsschlüssel

OTEL_EXPORTER_OTLP_PROTOCOL

OTLP-Protokoll (z. B. http/protobuf)

EUNOMIA_TYPE

Autorisierungsmodus: none, embedded, remote

none

EUNOMIA_POLICY_FILE

Eingebettete Richtliniendatei

mcp_policies.json

EUNOMIA_REMOTE_URL

Remote-Eunomia-Server-URL

Agent-Laufzeit (nur vollständige [agent]-Laufzeit)

Variable

Beschreibung

Standard

MCP_URL

URL des MCP-Servers, mit dem der Agent verbindet

http://localhost:8000/mcp

PROVIDER

LLM-Anbieter (z. B. openai)

openai

MODEL_ID

Modell-ID (z. B. gpt-4o)

gpt-4o

ENABLE_WEB_UI

AG-UI-Weboberfläche bereitstellen

True

Agent

Dieses Repository enthält einen vollständig integrierten Pydantic-AI-Graph-Agenten. Er kommuniziert über das Agent Control Protocol (ACP) und interagiert nahtlos mit der Agent Web UI (AG-UI) sowie der Terminal-Schnittstelle.

Agent-CLI ausführen

So starten Sie den interaktiven Agenten über die Befehlszeile:

# Set credentials
export TUNNEL_IDENTITY_FILE="your_value"
export DEBUG="your_value"
export PYTHONUNBUFFERED="your_value"

# Run the agent server
tunnel-manager-agent --provider openai --model-id gpt-4o

Docker-Compose-Orchestrierung

Die folgende docker/agent.compose.yml konfiguriert den Agenten, die Weboberfläche und die Terminal-Schnittstelle gemeinsam:

version: '3.8'

services:
  tunnel-manager-mcp:
    image: example/tunnel-manager:mcp
    container_name: tunnel-manager-mcp
    hostname: tunnel-manager-mcp
    restart: always
    env_file:
      - ../.env
    environment:
      - PYTHONUNBUFFERED=1
      - HOST=0.0.0.0
      - PORT=8000
      - TRANSPORT=streamable-http
    ports:
      - "8000:8000"
    healthcheck:
      test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  tunnel-manager-agent:
    image: example/tunnel-manager@sha256:<digest>
    container_name: tunnel-manager-agent
    hostname: tunnel-manager-agent
    restart: always
    depends_on:
      - tunnel-manager-mcp
    env_file:
      - ../.env
    command: [ "tunnel-manager-agent" ]
    environment:
      - PYTHONUNBUFFERED=1
      - HOST=0.0.0.0
      - PORT=9002
      - MCP_URL=http://tunnel-manager-mcp:8000/mcp
      - PROVIDER=${PROVIDER:-openai}
      - MODEL_ID=${MODEL_ID:-gpt-4o}
      - ENABLE_WEB_UI=True
      - ENABLE_OTEL=True
    ports:
      - "9002:9002"
    healthcheck:
      test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:9002/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

Detaillierte Erläuterungen zur Grapharchitektur, benutzerdefinierte Fähigkeitskonfigurationen und Anleitungen zu agentischen Abläufen finden Sie in docs/deployment.md.


Sicherheit & Governance

Direkt aufgebaut auf dem unternehmensreifen agent-utilities-Kern werden die folgenden Standard-Sicherheitsparameter vollständig unterstützt:

Zugriffskontrolle & Richtliniendurchsetzung

  • Eunomia-Richtlinien: Fein granulierte, richtliniengesteuerte Werkzeugautorisierung. Unterstützt none, lokale embedded-Richtlinien (mcp_policies.json) oder zentralisierte remote-Modi.

  • OIDC-Token-Delegierung: Konform mit RFC 8693-Tokenaustausch zur Übertragung von Benutzeranmeldeinformationen von Web-UI / ACP → Agent → MCP.

  • Bereichsbegrenzte Anmeldeinformationen: Der Ausführungskontext ist auf die Identität des jeweiligen Aufrufers beschränkt.

Laufzeitsicherheitsraster

Funktion

Funktionalität

Aktivierung

Werkzeugschutz

Empfindlichkeitsprüfung mit Human-in-the-Loop-Validierung

Standardmäßig aktiviert

Prompt-Injection-Abwehr

Eingabescans, Wiederholungserkennung und rekursive Schleifenblockaden

Standardmäßig aktiviert

Kontextsicherheitswächter

Erkennung von Endlosschleifen und präventive Warnungen bei Kontextüberlauf

Standardmäßig aktiviert


Installation

Wählen Sie das Extra, das zu Ihrem Einsatzszenario passt:

Extra

Installiert

Verwendung

tunnel-manager[mcp]

Verbindungsorientierter MCP-Server (agent-utilities[mcp] — FastMCP/FastAPI + epistemic-graph[full])

Sie betreiben nur den MCP-Server (kleinste Installation / kleinstes Image)

tunnel-manager[agent]

Agent-Laufzeit (agent-utilities[agent-runtime,logfire] — Modellorchestrierung + epistemic-graph[full])

Sie betreiben den integrierten Agenten

tunnel-manager[all]

Alles (mcp + agent + logfire)

Entwicklung / beide Oberflächen

# Connector-focused MCP server (includes the shared graph engine)
uv pip install "tunnel-manager[mcp]"

# Agent runtime (adds model orchestration to the shared graph engine)
uv pip install "tunnel-manager[agent]"

# Everything (development)
uv pip install "tunnel-manager[all]"      # or: python -m pip install "tunnel-manager[all]"

Container-Images (:mcp vs. :agent)

Ein mehrstufiges docker/Dockerfile erstellt zwei passend dimensionierte Images, ausgewählt über --target:

Image-Tag

Build-Ziel

Inhalt

Einstiegspunkt

example/tunnel-manager:mcp

--target mcp

tunnel-manager[mcp]verbindungsorientiert, enthält epistemic-graph[full]; keine Modellorchestrierung

tunnel-manager-mcp

example/tunnel-manager@sha256:<digest>

--target agent (Standard)

tunnel-manager[agent]Agent-Laufzeit, Modellorchestrierung + epistemic-graph[full]

tunnel-manager-agent

docker build --target mcp   -t example/tunnel-manager:mcp    docker/   # connector-focused MCP server
docker build --target agent -t example/tunnel-manager:agent-local docker/   # agent runtime

docker/mcp.compose.yml betreibt den verbindungsorientierten :mcp-Server; docker/agent.compose.yml betreibt den Agenten (unveränderlicher Agent-Digest) mit einem gemeinsam platzierten :mcp-Sidecar.

Wissensgraph-Datenbank (epistemic-graph)

Sowohl [mcp] als auch [agent] enthalten die epistemic-graph-Engine über die erforderliche Agent-Utilities-Kernabhängigkeit (epistemic-graph[full]). Das [mcp]-Extra hält den Server verbindungsorientiert; [agent] aktiviert zusätzlich die Modellorchestrierung. Lokale Bereitstellungen können die gebündelte Engine verwenden. Für Produktionsumgebungen oder gemeinsamen Zustand betreiben Sie epistemic-graph als dedizierten Datenbankdienst und konfigurieren die Laufzeit entsprechend. Bereitstellungsrezepte (Einzelknoten + Raft-HA), Verbindungskonfiguration und Architekturdiagramme sind im epistemic-graph-Bereitstellungshandbuch dokumentiert.


Dokumentation

Die vollständige Dokumentation ist als offizielle Dokumentationsseite veröffentlicht und dient als empfohlene Referenz für Installation, Bereitstellung und den täglichen Betrieb.

Seite

Inhalt

Installation

pip, Quellcode, Extras, vorgefertigtes Docker-Image

Inventar

das gemeinsame inventory.yaml — Standardort, Erstellung, Formate, Überschreibungen

Bereitstellung

MCP- und Agent-Server ausführen, Compose, Caddy + Technitium, Umgebungskonfiguration

Verwendung

die MCP-Werkzeuge, die HostManager- / Tunnel-API, die CLI

Überblick

Ökosystemrolle, verteilte SSH-Schwarm-Skalierung, MCP-Konfiguration

Teleport-Architektur

Zertifikat-, Proxy- und plattformübergreifendes Verbindungsmodell

Konzepte

Konzeptregister (CONCEPT:TUN-*)

AGENTS.md ist die maßgebliche Anleitung für Mitwirkende und Agenten.

Betreuer

Gepflegt vom Projekt-Mitwirkendenteam. Die Paketmetadaten verwenden bewusst eine Rollenadresse anstelle einer persönlichen Identität.


Mitwirken

Beiträge sind willkommen! Bitte stellen Sie die Codequalität sicher, indem Sie vor dem Einreichen von Pull Requests lokale Prüfungen ausführen:

  • Formatieren Sie den Code mit ruff format .

  • Linten Sie den Code mit ruff check .

  • Validieren Sie die Typsicherheit mit mypy .

  • Führen Sie die Testsuite mit pytest aus

Bereitstellung mit agent-utilities-deployment

Stellen Sie dieses Paket mit dem konsolidierten agent-utilities-deployment-Workflow bereit. Er wählt einen Pfad für installierte Pakete, bearbeitbare Quellen oder unveränderliche Container; zeichnet nur Laufzeit-Geheimnis- und TLS-Profil-Referenzen in AgentConfig auf; und führt Arzt-, Registrierungs-, Richtlinien-, Beobachtbarkeits- und Rollback-Gates aus. Bitten Sie Ihren Agenten, "deploy tunnel-manager with agent-utilities-deployment" auszuführen.

Installationsmodus

Befehl

Installiertes Paket

uv tool install "tunnel-manager[mcp]", dann tunnel-manager-mcp ausführen

Bearbeitbare Quelle

uv pip install -e ".[agent]", dann tunnel-manager-mcp ausführen

Unveränderlicher Container

Bereitstellen von registry.example.invalid/tunnel-manager@sha256:<digest> über den vom Operator ausgewählten Orchestrator

Das Repository enthält kein Bereitstellungsprofil, keinen Anmeldedatenwert, keinen Zertifikatspfad und keinen umgebungsspezifischen Endpunkt. Stellen Sie diese zur Laufzeit über AgentConfig und den konfigurierten Geheimnisanbieter bereit.

Vertrag über die verwaltete Fähigkeit

Dieses Paket bietet eine kompakte kanonische Skill-Oberfläche mit spezialisierten Verfahren, die als referenzierte Workflows geführt werden. Die aktuellen MCP-Tools, Skill-Metadaten, connector_manifest.yml, Ontologie, Zuordnungen, Formen, Fixtures, Migrationen, Tool-Schema-Fingerabdrücke und Zertifizierungsmetadaten bilden einen versionierten Fähigkeitsvertrag. Validieren Sie sie gemeinsam; verlassen Sie sich nicht auf veraltete Tool-Namen oder historische aufgabenspezifische Skill-Wrapper.

Laufzeit-Endpunkte, Anmeldedaten, Zertifikatsvertrauen, Mandantenidentität, Aufbewahrung und Beobachtbarkeitsrichtlinie sind Bereitstellungseingaben und niemals verpackte Werte. Siehe Konfiguration, Vertrauen und Datenschutz, bevor Sie einen Netzwerktransport, Connector-Ingestion, GraphOS-Delegation oder Trace-Export aktivieren.

A
license - permissive license
B
quality
A
maintenance

Maintenance

Maintainers
Response time
3dRelease cycle
84Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Knuckles-Team/tunnel-manager'

If you have feedback or need assistance with the MCP directory API, please join our Discord server