Use OpenWebUI-compatible GitHub MCP transport

This commit is contained in:
Mikei386 committed 2026-08-23 18:11:12 +02:00
1 parent 933d2a6e7d
commit 2347073f3f
5 files changed
+37 -27

No files matched your search

+3 -2
View File
@@ -169,8 +169,9 @@ Aktuell existieren funktionale Adapter für:
Der GitHub-Container läuft produktiv. Token-Datei, interner
Streamable-HTTP-Handshake, fehlende Host-Portfreigabe und exakt vier
read-only Werkzeuge wurden am 23. August 2026 verifiziert.
Die Transportbrücke läuft stateless mit MCP `2025-11-25`, damit Open WebUI
keine bereits abgelaufenen serverseitigen Sitzungen wiederverwendet.
Die Transportbrücke verwendet den OpenWebUI-kompatiblen `mcp-proxy` 0.12.0 im
stateless Betrieb. Supergateway wurde nach reproduzierbaren HTTP-400-Fehlern
bei `notifications/initialized` aus diesem Pfad entfernt.
Der Platform Context MCP läuft ohne Docker-Socket, Shell, Egress oder Secrets.
Ein root-eigener Minutentimer erzeugt nur einen begrenzten Laufzeitsnapshot.
+3 -3
View File
@@ -47,9 +47,9 @@ Im Repository gesichert sind inzwischen:
- getrennte MCP-Container und internes Netz
- Web-MCP-Fassade sowie gepinnte TinySearch-/SearXNG-Images
- ARR-MCP 1.0.1 und der aktuell eingesetzte kompakte Sonarr-Patch
- offizieller GitHub-MCP 1.10.1 mit Supergateway 3.4.3, beide per Digest gepinnt
- GitHub-Supergateway stateless mit MCP-Protokoll `2025-11-25`; keine
serverseitig ablaufenden Sitzungen für Open WebUI
- offizieller GitHub-MCP 1.10.1 hinter `mcp-proxy` 0.12.0; GitHub- und
Python-Basisimage per Digest gepinnt
- GitHub-Transport stateless und mit OpenWebUIs Python-MCP-Client geprüft
- Home-Assistant-Relay ohne eingebettetes Token
- Startlogik und Health-Checks
+14 -8
View File
@@ -1,15 +1,21 @@
FROM ghcr.io/github/github-mcp-server@sha256:1817b57d43916532dc002bdc5f344d639bd9fb54a9148d42168458f7c3280567 AS github
FROM ghcr.io/supercorp-ai/supergateway@sha256:095acf4471e142553c1a5514aa5e480abbc5885d00549d4a3481cc70eac53889
FROM python:3.13-slim@sha256:ffb752e139c0a19692a43af8d8523b274222dd68eebad5d583b45c2201c6e30a
ARG MCP_PROXY_VERSION=0.12.0
RUN pip install --no-cache-dir "mcp-proxy==${MCP_PROXY_VERSION}" "mcp==1.29.0"
# GitHub publishes a minimal image containing only the official Go binary.
# Supergateway contributes transport conversion only; GitHub API behavior and
# mcp-proxy contributes transport conversion only; GitHub API behavior and
# every exposed tool remain implemented by GitHub's official MCP server.
COPY --from=github /server/github-mcp-server /usr/local/bin/github-mcp-server
USER 65532:65532
ENTRYPOINT ["supergateway"]
# Open WebUI can retain an MCP session longer than a stateful gateway keeps it
# alive. A later call then fails although both the token and server are healthy.
# Stateless mode provides a fresh auto-initialized stdio server per request.
CMD ["--stdio", "/usr/local/bin/github-mcp-server stdio", "--outputTransport", "streamableHttp", "--protocolVersion", "2025-11-25", "--streamableHttpPath", "/mcp", "--port", "8000", "--logLevel", "info"]
RUN useradd --system --uid 10001 --create-home --home-dir /app mcp
USER 10001:10001
WORKDIR /app
EXPOSE 8000
# This is the same OpenWebUI-compatible stateless transport used by Athena's
# other Python/stdio MCP adapters. The official GitHub binary remains the only
# component implementing GitHub operations.
ENTRYPOINT ["mcp-proxy", "--host", "0.0.0.0", "--port", "8000", "--stateless", "--"]
CMD ["/usr/local/bin/github-mcp-server", "stdio", "--read-only", "--tools", "search_repositories,get_repository_tree,get_file_contents,search_code"]
+16 -13
View File
@@ -156,22 +156,25 @@ Last.fm-Profil noch auf dessen Hörverlauf zu.
Der GitHub-Container verwendet unverändert den offiziellen
`github/github-mcp-server` 1.10.1. Da dessen lokaler Container stdio spricht,
wandelt Supergateway 3.4.3 ausschließlich den Transport in Streamable HTTP für
Open WebUI und weitere interne Clients um. Beide Images sind per OCI-Digest
festgeschrieben; die Brücke implementiert keine GitHub-Operationen.
wandelt `mcp-proxy` 0.12.0 ausschließlich den Transport in Streamable HTTP für
Open WebUI und weitere interne Clients um. Basisimage und GitHub-Image sind per
OCI-Digest festgeschrieben; die Brücke implementiert keine GitHub-Operationen.
Supergateway läuft hier bewusst **stateless** mit MCP-Protokoll
`2025-11-25`. Eine frühere stateful Konfiguration konnte nach dem Ablauf einer
serverseitigen Sitzung noch von Open WebUI referenziert werden; der nächste
Aufruf endete dann trotz gesundem Container mit
`Failed to connect to MCP server 'github-local'`. Stateless erzeugt je Anfrage
eine frische, automatisch initialisierte stdio-Sitzung und vermeidet diesen
Lebenszyklusfehler.
`mcp-proxy` läuft bewusst **stateless**. Die zuerst getestete Supergateway-
Brücke war mit Open WebUIs Python-MCP-Client nicht zuverlässig kompatibel: Im
stateful Betrieb konnten Sitzungen ablaufen; im stateless Betrieb beantwortete
sie die reguläre `notifications/initialized`-Nachricht mit HTTP 400. Beides
führte trotz gesundem GitHub-Server und gültigem Token zu
`Failed to connect to MCP server 'github-local'`. Der jetzt verwendete Proxy
ist derselbe Transport, der sich bereits beim Athena Platform Context MCP
bewährt hat.
Dem Modell werden ausschließlich `search_repositories`, `get_repository_tree`,
`get_file_contents` und `search_code` angeboten. `GITHUB_READ_ONLY=1` erzwingt
zusätzlich serverseitig den Nur-Lesen-Modus. Der Container veröffentlicht keinen
Host-Port und speichert den Token nicht in Open WebUI.
`get_file_contents` und `search_code` angeboten. Der offizielle Server wird
zusätzlich explizit mit `--read-only` gestartet; die Umgebungsvariablen im
Compose-Stack bleiben als zweite, deklarative Sicherung erhalten. Damit sind
Schreiboperationen auch serverseitig ausgeschlossen. Der Container
veröffentlicht keinen Host-Port und speichert den Token nicht in Open WebUI.
Einrichtung:
+1 -1
View File
@@ -171,7 +171,7 @@ services:
build:
context: .
dockerfile: Dockerfile.github
image: mike-ai/mcp-github:github-v1.10.1-supergateway-v3.4.3
image: mike-ai/mcp-github:github-v1.10.1-mcp-proxy-v0.12.0
container_name: mike-ai-mcp-github
profiles: [github]
env_file: