Skip to main content
Glama

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:

  1. Verringern Sie keepaliveInterval , um häufigere Keepalive-Nachrichten zu senden (z. B. 15.000 ms).

  2. Stellen Sie sicher, dass usePingEvents für zusätzliche Verbindungsstabilität aktiviert ist

  3. Überprüfen Sie, ob es Proxy-Timeouts gibt, wenn Sie einen Proxy-Server verwenden.

Aufstellen

  1. Installieren Sie Abhängigkeiten:

npm install
  1. Erstellen Sie eine .env Datei mit den folgenden Variablen:

PORT=4005 API_KEY=your_api_key
  1. Erstellen Sie das Projekt:

npm run build
  1. Starten Sie den Server:

npm run start:sse

Entwicklung

# 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 dev

API-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:

  1. Erstellen Sie Ihren Werkzeughandler :

    • Fügen Sie Ihren neuen Tool-Handler in die Datei src/tools.ts ein oder erstellen Sie eine neue Datei im Verzeichnis src/tools

    • Das Tool sollte der ToolHandler Schnittstelle folgen

  2. Konfigurieren Sie Ihr Werkzeug :

    • Fügen Sie Ihre Tool-Konfiguration zum Array toolConfigs in src/tools.ts hinzu

    • Definieren Sie den Namen, die Beschreibung, das Eingabeschema und den Handler für Ihr Tool

  3. Exportieren und registrieren Sie Ihr Tool :

    • Wenn Sie eine separate Datei erstellt haben, exportieren Sie Ihren Handler und importieren Sie ihn in src/tools.ts

    • Stellen Sie sicher, dass Ihr Tool ordnungsgemäß im Array toolConfigs registriert 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 .

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/iamsrikanthnani/mcp-boilerplate'

If you have feedback or need assistance with the MCP directory API, please join our Discord server