Das Model Context Protocol (MCP) ermöglicht es KI-Assistenten, Tools aufzurufen und Daten von Servern zu lesen, die Sie betreiben. Viele MCP-Server laufen lokal, doch ein entfernter auf einem VPS ist nützlich, wenn mehrere Personen, Tools oder Agenten dieselben Fähigkeiten teilen müssen. Diese Anleitung behandelt die Einrichtungsoptionen und eine sichere Grundlage.
Lokales oder entferntes MCP?
- Lokal (stdio). Der Client startet den Server als Kindprozess auf Ihrem eigenen Rechner. Einfach und privat, funktioniert aber nur auf diesem Rechner.
- Entfernt (HTTP). Der Server läuft auf einem VPS, und Clients verbinden sich über HTTPS. Das ist die Variante, die Sie hosten. Sie eignet sich für gemeinsam genutzte Tools, lang laufende Aufgaben und Tools, die eine feste IP brauchen.
Prüfen Sie in der aktuellen MCP-Spezifikation, welchen Transport Ihr Client unterstützt. Streamable HTTP ist die übliche Wahl für entfernte Server. Dimensionierungen für typische Workloads finden Sie auf unserer Seite MCP-Server-Hosting.
Schritt 1: Den Server vorbereiten
Verwenden Sie einen frischen Ubuntu-LTS-Server und die Schritte aus So sichern Sie einen neuen VPS. Legen Sie einen Benutzer für den Dienst an.
sudo adduser --disabled-password --gecos "" mcp
Schritt 2: Den Server ausführen
Verwenden Sie das offizielle SDK oder einen vorhandenen Server. Dieses Python-Beispiel nutzt den FastMCP-Helfer des MCP-SDK:
sudo -iu mcp
python3 -m venv ~/venv && . ~/venv/bin/activate
pip install "mcp[cli]"
# server.py
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo", host="127.0.0.1", port=8000)
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
if __name__ == "__main__":
mcp.run(transport="streamable-http")
Schritt 3: Als Dienst ausführen
[Unit]
Description=MCP server
After=network-online.target
[Service]
User=mcp
WorkingDirectory=/home/mcp
ExecStart=/home/mcp/venv/bin/python server.py
Restart=always
[Install]
WantedBy=multi-user.target
Speichern Sie es als /etc/systemd/system/mcp.service und führen Sie sudo systemctl enable --now mcp aus.
Schritt 4: HTTPS und Authentifizierung
Ein MCP-Server kann Code ausführen und Daten lesen, lassen Sie ihn daher niemals offen. Stellen Sie ihn hinter einen Reverse-Proxy mit TLS und verlangen Sie ein Token:
mcp.example.com {
@noauth not header Authorization "Bearer YOUR_LONG_RANDOM_TOKEN"
respond @noauth 401
reverse_proxy 127.0.0.1:8000
}
Verwenden Sie für ein Produktivsystem OAuth gemäß der MCP-Autorisierungsspezifikation statt eines gemeinsamen Tokens.
Sicherheits-Checkliste
- Geben Sie Tools nur den minimal nötigen Zugriff. Geben Sie einem Tool keinen Shell-Zugriff, außer genau das ist der Zweck.
- Bewahren Sie Geheimnisse in Umgebungsdateien mit
chmod 600auf. - Protokollieren Sie Tool-Aufrufe, damit Sie sehen können, was passiert ist.
- Lassen Sie den Port an 127.0.0.1 gebunden und machen Sie nur den Proxy zugänglich.