MCP-Standardtext: Model Context Protocol Server
Dieser Server implementiert das Model Context Protocol (MCP) für den globalen Einsatz als Standard. Er bietet eine standardisierte Möglichkeit, KI-Modelle mithilfe des Model Context Protocol mit verschiedenen Datenquellen und Tools zu verbinden.
Merkmale
Implementiert den MCP Server-Sent Events (SSE)-Transport
Bietet eine robuste Struktur zum Erstellen benutzerdefinierter MCP-Server
Enthält Beispieltools mit entsprechenden Typdefinitionen
Sichere Authentifizierung mit API-Schlüssel
Protokollierungsfunktionen mit unterschiedlichen Schweregraden
Sitzungsverwaltung für mehrere Clientverbindungen
Ordentliches Herunterfahren der Signale SIGINT und SIGTERM
Related MCP server: SourceSync.ai MCP Server
Werkzeuge
Der Server enthält derzeit das folgende Beispieltool:
calculator: Führt grundlegende Rechenoperationen aus (Addieren, Subtrahieren, Multiplizieren, Dividieren)
Informationen zum Hinzufügen Ihrer eigenen benutzerdefinierten Tools finden Sie im Abschnitt „Erweitern des Boilerplates“ .
Konfiguration
Die Serverkonfiguration ist zentral in src/config.ts gespeichert. Dadurch können Einstellungen einfach angepasst werden, ohne mehrere Dateien ändern zu müssen.
// Essential configuration options
export const config = {
server: {
name: "mcp-boilerplate",
version: "1.0.0",
port: parseInt(process.env.PORT || "4005"),
host: process.env.HOST || "localhost",
apiKey: process.env.API_KEY || "dev_key",
},
sse: {
// How often to send keepalive messages (in milliseconds)
keepaliveInterval: 30000,
// Whether to send ping events in addition to comments
usePingEvents: true,
// Initial connection message
sendConnectedEvent: true,
},
tools: {
// Number of retries for failed tool executions
maxRetries: 3,
// Delay between retries (in milliseconds)
retryDelay: 1000,
// Whether to send notifications about tool execution status
sendNotifications: true,
},
logging: {
// Default log level
defaultLevel: "debug",
// How often to send log messages (in milliseconds)
logMessageInterval: 10000,
},
};Fehlerbehebung bei SSE-Timeouts
Wenn bei Ihrer MCP-Verbindung ein „Body-Timeout-Fehler“ auftritt:
Verringern Sie
keepaliveInterval, um häufigere Keepalive-Nachrichten zu senden (z. B. 15.000 ms).Stellen Sie sicher, dass
usePingEventsfür zusätzliche Verbindungsstabilität aktiviert istÜberprüfen Sie, ob es Proxy-Timeouts gibt, wenn Sie einen Proxy-Server verwenden.
Aufstellen
Installieren Sie Abhängigkeiten:
npm installErstellen Sie eine
.envDatei mit den folgenden Variablen:
PORT=4005
API_KEY=your_api_keyErstellen Sie das Projekt:
npm run buildStarten Sie den Server:
npm run start:sseEntwicklung
# Start in development mode with hot reloading
npm run start
# Start with PM2 for production
npm run start:pm2
# Development mode with nodemon
npm run devAPI-Endpunkte
/health: Integritätsprüfungsendpunkt, der Serverstatus und -version zurückgibt/sse: SSE-Endpunkt zum Herstellen von MCP-Verbindungen (erfordert API-Schlüssel)/messages: Endpunkt zur Nachrichtenverarbeitung für die Client-Server-Kommunikation
MCP-Konfiguration
Um einen MCP mit diesem Server zu verbinden, fügen Sie die folgende Konfiguration hinzu:
{
"mcpServers": {
"mcp-server": {
"url": "http://localhost:4005/sse?API_KEY={{your_api_key_here}}"
}
}
}Erweiterung des Boilerplates
Hinzufügen benutzerdefinierter Tools
Befolgen Sie diese Schritte, um dem MCP-Server ein neues Tool hinzuzufügen:
Erstellen Sie Ihren Werkzeughandler :
Fügen Sie Ihren neuen Tool-Handler in die Datei
src/tools.tsein oder erstellen Sie eine neue Datei im Verzeichnissrc/toolsDas Tool sollte der
ToolHandlerSchnittstelle folgen
Konfigurieren Sie Ihr Werkzeug :
Fügen Sie Ihre Tool-Konfiguration zum Array
toolConfigsinsrc/tools.tshinzuDefinieren Sie den Namen, die Beschreibung, das Eingabeschema und den Handler für Ihr Tool
Exportieren und registrieren Sie Ihr Tool :
Wenn Sie eine separate Datei erstellt haben, exportieren Sie Ihren Handler und importieren Sie ihn in
src/tools.tsStellen Sie sicher, dass Ihr Tool ordnungsgemäß im Array
toolConfigsregistriert ist
Beispiel:
// In src/tools.ts (adding directly to the toolConfigs array)
{
name: "myTool",
description: "My tool description",
inputSchema: {
type: "object" as const,
properties: {},
required: [],
},
handler: async () => {
return createSuccessResult({ result: "Tool result" });
},
}Fehlerbehandlung
Der Server implementiert eine umfassende Fehlerbehandlung:
Alle Operationen sind in Try/Catch-Blöcke gekapselt
Korrekte Validierung für Parameter und Eingaben
Passende Fehlermeldungen für besseres Debugging
Hilfsfunktionen zum Erstellen standardisierter Fehler- und Erfolgsantworten
Sicherheitsüberlegungen
API-Schlüsselauthentifizierung für alle Verbindungen
Typvalidierung für alle Parameter
Keine fest codierten vertraulichen Informationen
Richtige Fehlerbehandlung zur Vermeidung von Informationsverlusten
Sitzungsbasiertes Transportmanagement
MCP-Protokollfunktionen
Dieser Boilerplate unterstützt die wichtigsten MCP-Funktionen:
Tools: Tools mit ordnungsgemäßer Parametervalidierung auflisten und aufrufen
Protokollierung: Verschiedene Schweregrade (Debug, Info, Hinweis, Warnung, Fehler, Kritisch, Alarm, Notfall)
Serverkonfiguration: Name, Version und Funktionen
Sitzungsverwaltung
Der Server verwaltet Clientsitzungen über:
Eindeutige Sitzungs-IDs für jede Clientverbindung
Verfolgung aktiver Transporte anhand der Sitzungs-ID
Automatische Bereinigung getrennter Sitzungen
Verfolgung des Verbindungsstatus
Weitere Ressourcen
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.