Einen tatsächlich sicheren MCP-Server mit Fastly Compute aufbauen

Senior Enterprise Serverless Architekt, Fastly

Wir alle wissen inzwischen, dass LLMs Erstaunliches leisten können, aber ihre Deployen in der realen Welt kann mit echten Problemen verbunden sein. Zum Beispiel erhält MCP (Model Context Protocol) derzeit zu Recht viel Aufmerksamkeit, da es unglaublich kreative Szenarien ermöglichen kann. Aber die Sicherheitsprobleme, die MCP aufdecken kann, sollten für jedes Unternehmen ein echter Albtraum sein, ganz zu schweigen von anderen wichtigen Problemen wie der Skalierung oder der Verwaltung eines MCP-Endpunkts im Laufe der Zeit. Aber hey, gute Nachrichten: Sicherheit, Skalierbarkeit, Ausfallsicherheit und Verwaltbarkeit sind unser Metier! Wir werden Ihnen zeigen, wie Sie Fastly Compute verwenden, um einen MCP-Server zu erstellen, der für die reale Welt bereit ist – sicher, skalierbar und zuverlässig.
Was ist MCP?
Das Model Context Protocol (MCP) ist ein offenes Protokoll, das darauf abzielt, die Art und Weise zu standardisieren, wie Anwendungen wesentlichen Kontext für Large Language Models (LLMs) bereitstellen. MCP fungiert als universelle Schnittstelle, die es KI-Anwendungen ermöglicht, sich nahtlos mit verschiedenen Datenquellen zu verbinden.

MCP bietet auch die Flexibilität, zwischen LLM-Anbietern zu wechseln und priorisiert die Datensicherheit innerhalb der Infrastruktur eines Nutzers durch den Einsatz einer Client-Server-Architektur, bei der Anwendungen (MCP-Hosts) über leichte MCP-Server und -Clients eine Verbindung zu Datenquellen (lokale Datenquellen und Remote-Services) herstellen. Dieser einheitliche Ansatz bietet vorgefertigte Integrationen, die es Entwicklern ermöglichen, schnell auf verschiedene Datenquellen zuzugreifen.
Wir werden erklären, wie man einen MCP-Server mit Fastly Compute erstellt, aber wenn Sie daran interessiert sind, über MCP auf die Fastly Plattform-API zuzugreifen, kann das Fastly-mcp-server-Paket helfen, und wir werden in Zukunft mehr darüber sprechen.
Warum die Plattform von Fastly MCP besser funktionieren lässt
Als Enterprise Serverless Architekt berate ich häufig Kunden hinsichtlich des besten Ansatzes für ihre Workloads, insbesondere ob sie von Edge Computing profitieren könnten. Es gibt mehrere Faktoren, die ich berücksichtige, wie den erwarteten Grad der Parallelität und mögliche Spitzen im Workload, und die Notwendigkeit einer geringen Latenz in nutzerorientierten Anwendungen. Und wie Sie vielleicht vermutet haben, ist MCP, auf das wir in diesem Artikel näher eingehen werden, ein wirklich gutes Beispiel für eine Workload, die erheblich von dem einzigartigen Design der Fastly Plattform und Fastly Compute profitiert. Im Folgenden sehen Sie eine Demonstration des MCP-Clients in Aktion.

Sie werden feststellen, dass der LLM-Agent mehrere gleichzeitige Aufrufe an MCP-Tools durchführt, wie „GetHistoricalStats“ und „GetServiceDetail“. Wenn Sie für den Betrieb dieses MCP-Servers verantwortlich wären, wie viel Last würden Sie schätzen und wie würden Sie die Server-Infrastruktur bereitstellen? Für eine relativ neue Umgebung wie MCP ist eine massive und komplexe Infrastruktur nicht ideal. Obwohl Serverless praktisch ist, um klein anzufangen, müssen Sie natürlich häufige Probleme wie Kaltstarts vermeiden (selbstverständlich ohne viel Aufwand). Angesichts der Möglichkeit von Spitzenzeiten, in denen mehrere Nutzer gleichzeitig die MCP-Tools aufrufen könnten, ist es entscheidend, eine skalierbare Umgebung zu wählen. Zusätzlich, da die Kommunikation häufig über Chat erfolgt, ist es entscheidend, die Antwortlatenz so gering wie möglich zu halten.
Ein bemerkenswerter Vorteil der Verwendung von Fastly Compute für solche Fälle ist, dass seine WebAssembly-basierte Laufzeit Isolations-Sandbox-Technologie nutzt, was eine sicherere Ausführung von Code sowohl lokal als auch remote ermöglicht. Das bedeutet, dass Ihr MCP-Server sicherer auf Fastly läuft. Wie wir gesehen haben, adressiert das Design von Fastly Compute viele der inhärenten architektonischen Schwächen von MCP. In den folgenden Abschnitten werde ich Sie durch den spezifischen Prozess des Deployens eines Remote-MCP-Servers mithilfe dieser Plattform führen.
Wie man einen Remote-MCP-Server mit Fastly Compute baut.
Wir werden mit dem deployen eines Streamable-HTTP-Endpunkts beginnen, der keine herkömmlichen SSE-Endpunkte umfasst. Dies kann ganz einfach mit den folgenden Schritten erreicht werden. Bitte beachten Sie, dass Sie das API-Token an zwei Stellen in der Datei main.go ersetzen müssen, bevor Sie veröffentlichen. (Für Informationen zum Erhalt Ihres API-Tokens verweisen wir auf dieses Leitfadendokument.)
$ git clone https://gist.github.com/d829a6a58ce359b1aa99ecae12ba79f1.git fastly-compute-mcp-server
$ cd fastly-compute-mcp-server
$ vi main.go # Replace __PUT_YOUR_FASTLY_API_TOKEN__ with your own TOKEN
$ fastly compute publish
...
✓ Activating service (version 1)
Manage this service at:
https://manage.fastly.com/configure/services/mMnYw4qeGq81xga89Mq8O0
View this service at:
https://highly-proper-orange.edgecompute.app
Während des Veröffentlichungsprozesses werden Ihnen mehrere Fragen gestellt. Antworten Sie „ja“ auf alle y/n-Abfragen, und für alle anderen Punkte können Sie einfach die „Enter“-Taste drücken, um die Standardwerte (leer) zu akzeptieren. Nach kurzer Zeit wird Ihnen eine Meldung angezeigt, dass Ihr Service jetzt verfügbar ist, wie oben gezeigt.
Lassen Sie uns als Nächstes den Befehl npx
verwenden, um das MCP-Inspektor-Verifizierungstool zu starten und zu überprüfen, ob unser deployter Server ordnungsgemäß funktioniert. Sobald der Befehl npx @modelcontextprotocol/inspector
erfolgreich abgeschlossen ist, greifen Sie auf http://127.0.0.1:6274
zu, um die offizielle Testerschnittstelle zu öffnen. Wählen Sie in der linken Seitenleiste „streamable http“ als Verbindungstyp aus und geben Sie die Service-Adresse (https://*.edgecompute.app
) ein. wird als Ergebnis des Befehls 'Veröffentlichen' angezeigt.

Wenn Sie in der linken Seitenleiste unter der Schaltfläche „Verbinden“ „Verbunden“ sehen, bedeutet dies, dass die Verbindung erfolgreich war. Klicken Sie im Steuerungsbereich rechts auf die Registerkarte „Tools“ und probieren Sie Aktionen wie „Tools auflisten“ aus, um die Funktionalität zu testen. Das bedeutet, dass Sie erfolgreich einen entfernten MCP-Server betrieben haben, der mit nicht-SSE Streamable-HTTP kommuniziert.
Unterstützung für herkömmliche Clients mit SSE hinzufügen
Zum Zeitpunkt dieses Schreibens im Mai 2025 unterstützen viele MCP-Clients immer noch kein Streamable HTTP, und einige Remote-Server bieten nur SSE-Transport an. Um die Abwärtskompatibilität mit diesen Clients sicherzustellen, werden wir den von uns erstellten MCP-Server weiterentwickeln, indem wir SSE-Unterstützung hinzufügen. (Beachten Sie, dass wir in diesem Beispiel Fanout für die Herstellung von SSE-Verbindungen verwenden werden. Dies ist ein Fastly Push Messaging Service, der eine eigene Anmeldung erfordert. )
Erstellen Sie zunächst einen neuen Service, indem Sie die gleichen Schritte wie zuvor befolgen. Erstellen Sie jedoch dieses Mal beim Veröffentlichen zwei Backends in der folgenden Phase des Bildschirms. Geben Sie für das erste Backend die Adresse *.edgecompute.app
im Feld „Domain“ an und benennen Sie es „self
“. Registrieren Sie für das zweite Backend api.fastly.com
mit dem Namen „fastly
“, wie unten gezeigt.
✓ Creating service
Domain: [put-your-favorite-name-here.edgecompute.app]
Backend (hostname or IP address, or leave blank to stop adding backends): put-your-favorite-name-here.edgecompute.app
Backend port number: [443]
Backend name: [backend_1] self
Backend (hostname or IP address, or leave blank to stop adding backends): api.fastly.com
Backend port number: [443]
Backend name: [backend_2] fastly
Sobald Sie erfolgreich veröffentlicht haben, führen Sie den unten gezeigten Befehl als zusätzlichen Schritt aus, um Fanout zu aktivieren. Wenn Sie die Benachrichtigung „ERFOLG“ sehen, ist Ihr Setup einsatzbereit.
$ fastly products --enable=fanout
SUCCESS: Successfully enabled product 'fanout'
Konfigurieren Sie abschließend Ihren MCP-Client (wie Claude Desktop oder Cursor), um die Funktion zu überprüfen. Für Clients, die SSE nativ unterstützen, gibt es kaum Schwierigkeiten – folgen Sie einfach den Konfigurationsanweisungen der App. In diesem Fall werden wir LibreChat einrichten, einen MCP-Client, der nur STDIO unterstützt, als Beispiel. (Das Folgende ist ein Beispiel für eine YAML-Konfiguration für LibreChat, aber die Methode zur Ausführung des npx-Befehls ist für jeden Client einheitlich. Vergessen Sie nicht, die Service-URL von edgecompute.app zu verwenden, wenn Sie den Befehl „mcp-remote“ konfigurieren.
mcpServers:
fastly-mcp-server:
command: npx
args:
- -y
- "mcp-remote"
- https://highly-adequate-adder.edgecompute.app/sse
- --transport
- sse-only
Ab Mai 2025 verwendet das Paket mcp-remote standardmäßig Streamable-HTTP-Verbindungen, es sei denn, Sie verwenden die Option --transport sse-only
. Um eine Verbindung über SSE sicherzustellen, müssen Sie diese Option einbeziehen.
Wenn Sie LibreChat mit dieser Konfiguration starten, wird Ihnen ein Bildschirm wie der folgende angezeigt. Damit ist die Einrichtung abgeschlossen.

Dieses Beispiel zeigt ein MCP-Tool, das die Varnish von einem Fastly Service herunterlädt, aber Sie können es leicht mit zusätzlichen Funktionen erweitern. Es ist wichtig zu beachten, dass die Spezifikation von Fanout die Nachrichtengröße auf etwa 64 KB begrenzt. Achten Sie daher bei der Unterstützung von herkömmlichem SSE darauf, dass die Ergebnismeldungen von MCP-Tool-Aufrufen nicht zu groß werden.
Fazit: Wie geht es weiter?
In diesem Artikel haben wir erläutert, wie die flexible und effiziente Entwicklungsumgebung von Fastly Compute den Prozess der schnellen Einrichtung eines Hochleistungs-MCP-Servers vereinfacht. Als nächsten Schritt plane ich, den Aufbau eines fortgeschritteneren Servers basierend auf der OAuth-Spezifikation zu erkunden. Sie dürfen also gespannt sein!
Wir würden auch gerne erfahren, wie Ihr Unternehmen LLMs und KI einsetzt und wie Sie die damit verbundenen Herausforderungen angeht. Bitte teilen Sie Ihre Gedanken und beteiligen Sie sich an den Community -Diskussionen. Wir freuen uns über jegliche Art von Feedback.