MCP Boilerplate

MIT License
1
2

Integrations

  • Allows loading environment variables from a .env file for server configuration, including port, API key, and host settings.

  • Provides development mode with automatic server restarting for a smoother development experience.

  • Enables production deployment with process management capabilities for improved stability and monitoring.

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
  • Sanftes Herunterfahren der Signale SIGINT und SIGTERM

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

Ein Server, der das Model Context Protocol implementiert und eine standardisierte Möglichkeit bietet, KI-Modelle mit verschiedenen Datenquellen und Tools zu verbinden.

  1. Merkmale
    1. Werkzeuge
      1. Konfiguration
        1. Fehlerbehebung bei SSE-Timeouts
      2. Aufstellen
        1. Entwicklung
          1. API-Endpunkte
            1. MCP-Konfiguration
              1. Erweiterung des Boilerplates
                1. Hinzufügen benutzerdefinierter Tools
              2. Fehlerbehandlung
                1. Sicherheitsüberlegungen
                  1. MCP-Protokollfunktionen
                    1. Sitzungsverwaltung
                      1. Weitere Ressourcen
                        1. Lizenz

                          Related MCP Servers

                          • A
                            security
                            F
                            license
                            A
                            quality
                            A Model Context Protocol server that enables AI models to interact with SourceSync.ai's knowledge management platform for managing documents, ingesting content from various sources, and performing semantic searches.
                            Last updated -
                            25
                            14
                            • Apple
                            • Linux
                          • -
                            security
                            F
                            license
                            -
                            quality
                            A server that enables AI systems to browse, retrieve content from, and interact with web pages through the Model Context Protocol.
                            Last updated -
                          • A
                            security
                            F
                            license
                            A
                            quality
                            A Model Context Protocol server implementation that provides structured, AI-friendly access to eRegulations data, making it easier for AI models to answer user questions about administrative procedures.
                            Last updated -
                            4
                            28
                            TypeScript
                            • Linux
                            • Apple
                          • -
                            security
                            A
                            license
                            -
                            quality
                            A Model Context Protocol server that provides a standardized interface for AI models to access, query, and modify content in Notion workspaces.
                            Last updated -
                            275
                            2
                            TypeScript
                            MIT License
                            • Apple

                          View all related MCP servers

                          ID: hvby5vclw6