Wenn Claude, Cursor oder interne Agenten auf Dateien, Datenbanken oder Firmen-APIs zugreifen sollen, reicht stdio auf dem Laptop selten aus. Teams brauchen eine gemeinsame HTTPS-URL auf einem VPS mit statischer IP. Dieser Leitfaden zeigt, wie EuroVDC-Kunden eigene MCP-Server (beliebige Sprache oder Repo) auf einem Sofia Cloud Server betreiben.
Für den Open-Source-Server von EuroVDC mit Commerce-APIs gibt es die eigene Anleitung: MCP auf EuroVDC Sofia-VPS (eurovdc-mcp). Hier geht es um das sichere Veröffentlichen eines eigenen oder Drittanbieter-MCP.
stdio oder Remote-HTTPS?
stdio startet den Server als Kindprozess. Das passt für einen Entwickler an einer Maschine. Für Teams und Remote-Connectors brauchen Sie Streamable HTTP unter einer URL wie https://mcp.ihre-domain.com/mcp. TLS und Auth liegen bei Ihnen.
Warum Sofia (EU)?
- Prozesse und Daten bleiben in der EU.
- Niedrige Latenz in Mittel- und Osteuropa, akzeptable RTT nach Westeuropa.
- Latenz nach dem Ordern mit Sofia Looking Glass messen.
- Kein Tunnel-Anbieter: eigene Domain, eigenes Zertifikat, eigene Firewall.
Drei typische Produktionsfehler
- Offener Port ohne Auth. MCP greift oft auf Dateien oder Shell zu. Nicht ohne Token oder OAuth auf
0.0.0.0binden. - Nginx-Buffering aktiv. Streams hängen.
proxy_buffering offund hohesproxy_read_timeoutsetzen. - App direkt auf 443. TLS besser an Nginx/Caddy beenden.
1. VPS vorbereiten
Ein kleiner Sofia-Tarif (1 vCPU / 2 GB RAM) reicht für einen MCP-Prozess. Nur 22, 80 und 443 öffnen; App-Port bleibt intern.
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx certbot python3-certbot-nginx ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable2. MCP nur auf localhost binden
cd /opt/my-mcp
npm install && npm run build
# .env: HOST=127.0.0.1 PORT=3100 MCP_TOKEN=...sudo tee /etc/systemd/system/my-mcp.service > /dev/null <<'EOF'
[Unit]
Description=Customer MCP server
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/my-mcp
EnvironmentFile=/opt/my-mcp/.env
ExecStart=/usr/bin/node dist/index.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now my-mcp3. HTTPS-Reverse-Proxy für Streaming
server {
listen 80;
server_name mcp.ihre-domain.com;
location /mcp {
proxy_pass http://127.0.0.1:3100;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Authorization $http_authorization;
proxy_set_header Connection "";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
}
}sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d mcp.ihre-domain.com4. Claude oder Cursor verbinden
claude mcp add --transport http my-mcp https://mcp.ihre-domain.com/mcp \
--header "Authorization: Bearer IHR_TOKEN"5. In Produktion prüfen
curl -sI https://mcp.ihre-domain.com/mcp- Tool-Liste im Client prüfen
- Optional AI-Readiness-Checker bei
/.well-known/mcp.json - RTT mit Looking Glass
EuroVDC-MCP und Ihr MCP
EuroVDC-APIs für Domain und Hosting: eurovdc-mcp-Leitfaden. Eigene CRM- oder Intern-APIs: dieses Sofia-Modell. Beide können auf einem VPS mit getrennten Ports laufen.
Häufige Fragen
Kann ich jedes MCP hosten?
Ja, solange der Dienst auf localhost lauscht und hinter einem HTTPS-Proxy liegt.
Brauche ich einen Tunnel?
Nein. Eigene Domain und Let’s Encrypt reichen. Lokal genügen stdio oder SSH-Tunnel.
Welche Ressourcen?
Kleiner Sofia-Cloud-Tarif für ein leichtes MCP. Bei Last vCPU und RAM erhöhen.
Reicht IP-Allowlist ohne Token?
Nein. Ohne Bearer-Token oder OAuth nicht öffentlich freigeben.
Verbunden, aber keine Tools?
Oft Buffering oder Timeout. proxy_buffering off und proxy_read_timeout prüfen.
Ersetzt das den eurovdc-mcp-Leitfaden?
Nein. Das ist das allgemeine Hosting-Modell. Für EuroVDC-API-Tools eurovdc-mcp nutzen.