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

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.

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