Zum Hauptinhalt springen

Verwendung der MCP-Server (die SSE-URL)

Model Context Protocol (MCP) Server sind eine leistungsstarke Funktion in Cursor, die erweiterte KI-Fähigkeiten durch spezialisierte Server ermöglicht. Dieser Leitfaden führt Sie durch das Verständnis und die Nutzung von MCP-Servern mit Server-Sent Events (SSE) URLs zur Erweiterung der Cursor-Funktionalität.

Einführung in MCP-Server und SSE

MCP (Model Context Protocol) Server fungieren als spezialisierte Middleware zwischen Cursor und verschiedenen KI-Modellen oder Diensten. Sie bieten zusätzlichen Kontext, Werkzeuge und Fähigkeiten, die Cursors KI-Funktionen erweitern. Server-Sent Events (SSE) ist eine Technologie, die es Servern ermöglicht, Updates über HTTP-Verbindungen an Clients zu senden und so Echtzeitkommunikation zu ermöglichen.

Was sind MCP-Server?

MCP-Server sind spezialisierte Server, die das Model Context Protocol implementieren und Cursor ermöglichen:

  • Zugriff auf zusätzliche Werkzeuge und Ressourcen
  • Verbindung zu externen APIs und Diensten
  • Verarbeitung und Transformation von Daten vor dem Senden an KI-Modelle
  • Erweiterung der Cursor-Fähigkeiten mit benutzerdefinierten Funktionen

Warum SSE-URLs verwenden?

SSE (Server-Sent Events) URLs bieten eine standardisierte Möglichkeit, Verbindungen zwischen Cursor und MCP-Servern herzustellen und bieten:

  • Echtzeit-Updates und Streaming-Antworten
  • Effiziente Einweg-Kommunikation vom Server zum Client
  • Automatische Wiederverbindungsbehandlung
  • Kompatibilität mit Standard-HTTP-Infrastruktur

Verständnis der SSE-URL-Struktur

Eine SSE-URL für MCP-Server folgt typischerweise dieser Struktur:

http(s)://<hostname>:<port>/sse?token=<auth_token>

Komponenten erklärt:

  • Protokoll: Entweder http:// oder https:// (sicher, empfohlen)
  • Hostname: Server-Adresse (z.B. localhost, mcp.example.com)
  • Port: Die Portnummer, auf der der MCP-Server lauscht (z.B. 3000)
  • Pfad: Üblicherweise /sse für Server-Sent Events Endpunkt
  • Token: Authentifizierungstoken für sicheren Zugriff

Konfigurationsschritte

Die Einrichtung und Verwendung von MCP-Servern mit SSE-URLs umfasst mehrere Schritte:

1. Erforderliche Abhängigkeiten installieren

Stellen Sie zunächst sicher, dass Sie die notwendigen Abhängigkeiten installiert haben:

npm install @modelcontextprotocol/sdk

2. MCP-Server-Konfiguration erstellen

Erstellen Sie eine Konfigurationsdatei für Ihren MCP-Server. Diese kann im Konfigurationsverzeichnis von Cursor platziert werden:

{
"mcpServers": {
"example-server": {
"command": "node",
"args": ["/path/to/your/mcp-server.js"],
"env": {
"API_KEY": "your-api-key-here",
"OTHER_ENV_VAR": "value"
},
"disabled": false,
"autoApprove": ["tool1", "tool2"]
}
}
}

3. SSE-Verbindung einrichten

In Ihrer MCP-Server-Implementierung, richten Sie den SSE-Endpunkt ein:

import express from 'express';
import cors from 'cors';

const app = express();
app.use(cors());

app.get('/sse', (req, res) => {
// Token validieren
const token = req.query.token;
if (!validateToken(token)) {
return res.status(401).send('Unauthorized');
}

// Header für SSE setzen
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');

// Initiale Verbindungsnachricht senden
res.write('event: connected\ndata: {"status": "connected"}\n\n');

// Client-Trennung behandeln
req.on('close', () => {
console.log('Client disconnected');
});

// Periodische Nachrichten oder Reaktion auf Events einrichten
// ...
});

app.listen(3000, () => {
console.log('MCP Server listening on port 3000');
});

4. Cursor für die Verwendung Ihres MCP-Servers konfigurieren

Fügen Sie Ihre MCP-Server-Konfiguration zu den Cursor-Einstellungen hinzu:

  1. Öffnen Sie Cursor
  2. Gehen Sie zu Einstellungen (⚙️)
  3. Suchen Sie nach "MCP"
  4. Fügen Sie Ihre Server-Konfiguration hinzu
  5. Speichern Sie die Änderungen

Verwendungsbeispiele

Hier sind einige praktische Beispiele für die Verwendung von MCP-Servern mit SSE-URLs:

Beispiel 1: Grundlegende Werkzeugimplementierung

// In Ihrer MCP-Server-Implementierung
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [
{
name: 'weather_lookup',
description: 'Aktuelles Wetter für einen Standort abrufen',
inputSchema: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'Stadtname oder Postleitzahl'
}
},
required: ['location']
}
}
]
}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === 'weather_lookup') {
const location = request.params.arguments.location;
const weatherData = await fetchWeatherData(location);

return {
content: [
{
type: 'text',
text: JSON.stringify(weatherData, null, 2)
}
]
};
}
});

Beispiel 2: Ressourcenimplementierung

server.setRequestHandler(ListResourcesRequestSchema, async () => ({
resources: [
{
uri: 'docs://api/reference',
name: 'API-Referenzdokumentation',
mimeType: 'text/markdown',
description: 'Vollständige API-Referenz für das Projekt'
}
]
}));

server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
if (request.params.uri === 'docs://api/reference') {
return {
contents: [
{
uri: request.params.uri,
mimeType: 'text/markdown',
text: await fs.readFile('path/to/api-docs.md', 'utf-8')
}
]
};
}
});

Fehlerbehebung häufiger Probleme

Verbindung verweigert

Problem: Cursor kann keine Verbindung zum MCP-Server herstellen.

Lösungen:

  • Überprüfen Sie, ob der Server läuft
  • Überprüfen Sie die Firewall-Einstellungen
  • Stellen Sie sicher, dass der Port korrekt und zugänglich ist
  • Validieren Sie, dass der Hostname korrekt aufgelöst wird

Authentifizierungsfehler

Problem: "Unauthorized"-Fehler bei der Verbindung.

Lösungen:

  • Überprüfen Sie, ob das Token korrekt konfiguriert ist
  • Überprüfen Sie die Token-Validierungslogik
  • Stellen Sie sicher, dass Umgebungsvariablen korrekt gesetzt sind

Server-Abstürze

Problem: MCP-Server stürzt unerwartet ab.

Lösungen:

  • Implementieren Sie ordnungsgemäße Fehlerbehandlung
  • Fügen Sie Logging hinzu, um Probleme zu identifizieren
  • Prüfen Sie auf Speicherlecks
  • Validieren Sie Eingabedaten vor der Verarbeitung

Langsame Antworten

Problem: MCP-Server-Antworten sind langsam.

Lösungen:

  • Optimieren Sie den Server-Code
  • Implementieren Sie Caching wo angemessen
  • Erwägen Sie die Skalierung von Ressourcen
  • Prüfen Sie auf blockierende Operationen

Best Practices

Sicherheit

  • Verwenden Sie immer HTTPS für Produktions-MCP-Server
  • Implementieren Sie ordnungsgemäße Authentifizierung und Autorisierung
  • Validieren Sie alle Eingaben, um Injection-Angriffe zu verhindern
  • Beschränken Sie exponierte Funktionalität auf das Notwendige

Leistung

  • Implementieren Sie Caching für häufig aufgerufene Ressourcen
  • Verwenden Sie effiziente Datenstrukturen und Algorithmen
  • Erwägen Sie Streaming-Antworten für große Datenmengen
  • Überwachen Sie die Server-Leistung und optimieren Sie Engpässe

Zuverlässigkeit

  • Implementieren Sie ordnungsgemäße Fehlerbehandlung
  • Fügen Sie Logging für Debugging hinzu
  • Richten Sie Gesundheitsprüfungen ein
  • Implementieren Sie automatische Neustarts für abgestürzte Server

Entwicklungs-Workflow

  • Verwenden Sie eine lokale Entwicklungsumgebung zum Testen
  • Implementieren Sie Versionierung für Ihre MCP-Server
  • Dokumentieren Sie die Fähigkeiten und Anforderungen Ihres Servers
  • Erstellen Sie automatisierte Tests für Ihre Server-Funktionalität

Fazit

MCP-Server mit SSE-URLs bieten eine leistungsstarke Möglichkeit, Cursors Fähigkeiten mit benutzerdefinierten Funktionen und externen Diensten zu erweitern. Durch Befolgen der in diesem Leitfaden beschriebenen Konfigurationsschritte und Best Practices können Sie robuste, sichere und effiziente MCP-Server erstellen, die Ihren Entwicklungs-Workflow verbessern.

Ob Sie sich mit externen APIs verbinden, benutzerdefinierte Werkzeuge implementieren oder zusätzlichen Kontext für KI-Modelle bereitstellen, MCP-Server bieten einen flexiblen und standardisierten Ansatz zur Erweiterung der Cursor-Funktionalität.

Zusätzliche Ressourcen