Skip to main content
Glama
gregorbeul-oss

gregor-mcp-gateway

Dein eigenes MCP-Gateway

Ein Dienst, eine Adresse, ein Token — und dahinter beliebig viele Werkzeuge.

Du musst das hier nicht verstehen, um es zu benutzen. Sag Deinem Agenten: „Häng mir mein Werkzeug XY in mein Gateway ein", und er macht den Rest. Diese Datei ist zum Nachschlagen.


Brauche ich das überhaupt?

Wenn …

dann …

ein Werkzeug, das Du am Schreibtisch nutzt

kein Gateway. Ein lokaler Server ist einfacher und sicherer

zwei oder drei Werkzeuge

Gateway lohnt sich

etwas soll laufen, während Dein Rechner aus ist

Gateway, im Netz

Du willst es aus ChatGPT nutzen

Gateway, im Netz — anders geht es nicht


Related MCP server: mcpgate

Der Aufbau

mein-gateway/
  server.js          Der Gateway. Musst Du nicht anfassen.
  werkzeuge/
    feiertage.js     Ein Werkzeug ohne Schlüssel — läuft sofort.
    todoist.js       Ein Werkzeug mit Schlüssel — das Muster für Deine eigenen.
  .env               Deine Schlüssel. Kommt nie ins Internet.
  Procfile           Sagt dem Hoster, wie gestartet wird.

Ein neues Werkzeug hinzufügen heißt: eine Datei in werkzeuge/ legen. Sonst nichts. Der Gateway sieht beim Start selbst nach, was dort liegt.


Das erste Mal starten

npm install
cp .env.beispiel .env
openssl rand -hex 32

Den ausgegebenen langen Zufallswert in die .env als MCP_TOKEN eintragen. Dann:

node server.js

Es erscheint, welche Werkzeuge eingehängt wurden. Drei Prüfungen:

curl http://localhost:8787/

Zeigt Deine Werkzeuge. Ohne Token — das ist Absicht, hier stehen nur Namen.

curl -X POST http://localhost:8787/feiertage/mcp

Muss 401 ergeben. Wenn nicht, hält Dein Schloss nicht.

Und dann das Werkzeug im Agenten eintragen (siehe unten) und einmal aufrufen.


Im Agenten eintragen

Claude Code — in die .mcp.json im Projektordner:

{
  "mcpServers": {
    "feiertage": {
      "type": "http",
      "url": "http://localhost:8787/feiertage/mcp",
      "headers": { "Authorization": "Bearer ${MCP_TOKEN}" }
    }
  }
}

Goosegoose configure → Add Extension → Remote Extension (Streamable HTTP), Adresse eintragen, als Header Authorization: Bearer <dein-token>.

ChatGPT — Einstellungen → Apps & Connectors → Developer Mode → Create. Braucht eine öffentliche HTTPS-Adresse, also den Schritt „ins Netz" unten, und einen bezahlten Tarif.

Nach jeder Änderung an der Konfiguration den Agenten neu starten. Ohne das ändert sich nichts.


Ins Netz, in der EU

Empfehlung: Scaleway — französisches Unternehmen, Rechenzentren in Paris, Amsterdam, Warschau und Mailand. Der Grund: ein dauerhaft kostenloser Rahmen jeden Monat. Ein Gateway, das nur antwortet, wenn es gefragt wird, bleibt darin — kein Testzeitraum, der abläuft.

Docker brauchst Du dafür nicht auf Deinem Rechner. Gebaut wird bei GitHub, durch die Action in .github/workflows/.

  1. Diesen Ordner in ein privates GitHub-Repository legen. Vorher prüfen, dass .env in der .gitignore steht. Ein einmal veröffentlichter Schlüssel bleibt für immer in der Versionsgeschichte — auch nach dem Löschen.

  2. Bei Scaleway anlegen, in dieser Reihenfolge:

    • eine Container Registry (Namespace-Name merken)

    • einen Serverless Container (die UUID merken)

    • einen API-Schlüssel — der geheime Teil wird nur einmal angezeigt

  3. Die Umgebungsvariablen beim Container setzen, nicht im Repository: MCP_TOKEN bzw. die Google-Zugangsdaten, dazu die Schlüssel Deiner Werkzeuge.

  4. In GitHub zwei Secrets anlegen: SCW_SECRET_KEY und SCW_CONTAINER_ID. Und in .github/workflows/deploy.yml den Registry-Namespace eintragen.

  5. Pushen. Im Tab Actions läuft der Job, danach antwortet Deine Adresse.

Gewöhnliches Webhosting funktioniert nicht — auch nicht das günstige Paket, das Du vielleicht gerade gekauft hast. Dort wird ein dauerhaft laufendes Programm nach kurzer Zeit beendet.

Wenn Du lieber ohne Container arbeitest: Scalingo (Frankreich) liefert direkt aus dem Repository aus, ohne Docker und ohne Registry — dafür gibt es dort nur 30 Tage kostenlos statt eines dauerhaften Rahmens. Die Procfile im Ordner ist für diesen Weg da.

Andere Anbieter in Europa: Clever Cloud (FR), Upsun (FR), oder ein VPS bei Hetzner oder netcup (DE).

Wenn es nicht geht

Symptom

Wahrscheinlich

Werkzeug erscheint nicht in den Startmeldungen

In der Datei fehlt name oder registriere. Die Startmeldungen sagen es

401, obwohl der Token stimmt

Leerzeichen oder Zeilenumbruch beim Kopieren mitgekommen

404 mit gültigem Token

Der Name in der Adresse passt nicht zum name in der Datei

Tool sichtbar, Aufruf hängt („timed out")

Irgendwo wird auf stdout geschrieben. console.error benutzen, nie console.log

404 oder 410 von der fremden Schnittstelle

Der Endpunkt hat sich geändert. Aktuelle Doku lesen — das passiert öfter, als man denkt

Nichts geht mehr nach einer Änderung

Agent neu gestartet?


Die zwei Sätze, die Du behalten solltest

Der beste Schutz ist nicht das Türschloss, sondern der Schlüssel, den Du den Werkzeugen gibst. Wo die Schnittstelle es anbietet: einen Schlüssel mit Leserecht allein nehmen. Der kann auch dann nichts anrichten, wenn Dein Token in falsche Hände gerät.

Endpunkte nie aus dem Gedächtnis. Erst die Doku lesen, dann ein curl, dann Code — auch wenn der Agent sehr überzeugt klingt.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    A powerful gateway for the Model Context Protocol (MCP) that unifies AI toolchains by federating multiple MCP servers, wrapping REST APIs as MCP tools, and supporting multiple transport methods with an admin dashboard.
    1
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Self-hosted MCP gateway that connects Claude, ChatGPT, and other AI agents to 20+ enterprise tools (GitLab, Jira, Notion, Google Workspace, Slack, Grafana, …) with OAuth, audit logs, and zero data leaving your infrastructure
    -
  • A
    license
    A
    quality
    A
    maintenance
    A zero-dependency MCP gateway: host your own tools, forward and curate tools from other MCP servers, expose them leanly to cut agent token cost, and gate every call through your own policy hooks before it runs.
    4
    17
    37
    MIT