Model Context Protocol (MCP) Server

by infinyte

Integrations

  • Enables environment-based configuration of API keys and server settings through .env file management

  • Supports development mode with automatic server reloading when code changes are detected

  • Provides access to OpenAI models (GPT) and DALL-E image generation through a unified API, supporting chat completions, legacy completions, and tool calling

Model Context Protocol (MCP)-Server

Eine einfache Serverimplementierung für das Model Context Protocol, die eine einheitliche API für mehrere KI-Modellanbieter bereitstellt.

Merkmale

  • Einheitliche API für mehrere KI-Anbieter (Anthropic, OpenAI)
  • Unterstützung für Chat-Vervollständigungen und Legacy-Vervollständigungen
  • Unterstützung für Tool-Aufrufe
  • Kontext-/Systemnachrichtenverarbeitung
  • Umgebungsbasierte Konfiguration
  • MongoDB-Datenbank für Persistenz und Statusverwaltung
  • Tool-Ausführungsverlauf und -Analyse

Installation

# Clone the repository git clone <repository-url> cd testmcp # Install dependencies npm install # Run the interactive setup npm run setup

Das Setup-Skript führt Sie durch die Konfiguration der erforderlichen API-Schlüssel:

  • ANTHROPIC_API_KEY – Für Claude-Modelle
  • OPENAI_API_KEY – Für GPT-Modelle und DALL-E-Bildgenerierung
  • STABILITY_API_KEY - Für die Erzeugung stabiler Diffusionsbilder
  • GOOGLE_CSE_API_KEY und GOOGLE_CSE_ID – Für die Websuchfunktion
  • BING_SEARCH_API_KEY – Für die Fallback-Websuche

Sie können die .env Datei auch manuell bearbeiten, wenn Sie möchten.

MongoDB-Setup

Der MCP-Server verwendet MongoDB zur Datenpersistenz. Sie haben mehrere Möglichkeiten, MongoDB einzurichten:

Option 1: Automatisierte Einrichtung (empfohlen)

Führen Sie das MongoDB-Setup-Skript aus, das Sie durch den Vorgang führt:

# Run the MongoDB setup script npm run setup-mongodb

Dieses Skript wird:

  1. Überprüfen Sie, ob Docker verfügbar ist
  2. Starten Sie MongoDB mit Docker Compose (falls verfügbar).
  3. Konfigurieren Sie die Verbindung in Ihrer .env-Datei
  4. Überprüfen der MongoDB-Verbindung

Option 2: Manuelles Docker-Setup

Der einfachste Weg, mit MongoDB zu beginnen, ist die Verwendung der enthaltenen Docker Compose-Konfiguration:

# Start MongoDB and Mongo Express in Docker docker compose up -d # Update your .env file with the connection string echo "MONGODB_URI=mongodb://mcpuser:mcppassword@localhost:27017/mcp-server" >> .env

MongoDB wird unter mongodb://mcpuser:mcppassword@localhost:27017/mcp-server verfügbar sein.
Mongo Express (Webadministrator) ist unter http://localhost:8081 verfügbar.

Option 3: Lokale MongoDB-Installation

Wenn Sie MongoDB lieber lokal installieren möchten:

  1. Installieren Sie MongoDB von https://www.mongodb.com/try/download/community
  2. Starten Sie den MongoDB-Dienst
  3. Aktualisieren Sie Ihre .env Datei mit:
    MONGODB_URI=mongodb://localhost:27017/mcp-server

Option 4: MongoDB Atlas (Cloud)

Für den Produktionseinsatz wird MongoDB Atlas empfohlen:

  1. Erstellen Sie ein Konto unter https://www.mongodb.com/cloud/atlas
  2. Erstellen eines neuen Clusters
  3. Richten Sie einen Datenbankbenutzer ein und setzen Sie Ihre IP-Adresse auf die Whitelist
  4. Rufen Sie Ihre Verbindungszeichenfolge ab und aktualisieren Sie Ihre .env Datei:
    MONGODB_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/mcp-server?retryWrites=true&w=majority

Datenbankmigration

So migrieren Sie vorhandene Daten zu MongoDB:

# Run the migration script npm run migrate-mongodb

Dieses Skript wird:

  1. Migrieren von Tooldefinitionen zu MongoDB
  2. Migrieren Sie Konfigurationen (wie API-Schlüssel) zu MongoDB
  3. Importieren Sie alle Sicherungsdaten, falls verfügbar

Verwendung

Starten Sie den Server

# Interactive startup (checks for API keys) npm start # Development mode with auto-reload npm run dev # Quick start (skips environment checks) npm run quick-start # Start server with PM2 process manager npm run pm2:start # Start server with PM2 in production mode npm run pm2:start:prod

Der Server wird unter http://localhost:3000 (oder dem Port, den Sie in .env angegeben haben) ausgeführt.

Startoptionen
  1. Standardstart ( npm start ):
    • Überprüft, ob API-Schlüssel konfiguriert sind
    • Fordert zur Einrichtung auf, wenn keine Schlüssel gefunden werden
    • Empfohlen für Erstbenutzer
  2. Entwicklungsmodus ( npm run dev ):
    • Verwendet Nodemon zum automatischen Neuladen bei Codeänderungen
    • Führt weiterhin Umgebungsprüfungen durch
    • Am besten für die Entwicklung
  3. Schnellstart ( npm run quick-start ):
    • Umgeht alle Umgebungsprüfungen
    • Startet den Server sofort
    • Nützlich, wenn Sie wissen, dass Ihre Konfiguration korrekt ist
  4. PM2-Produktionsmodus ( npm run pm2:start:prod ):
    • Führt den Server mit dem PM2-Prozessmanager aus
    • Automatischer Neustart bei Serverabsturz
    • Optimiert für Produktionsumgebungen
    • Umgeht Umgebungsprüfungen

Verwenden des PM2 Process Managers

Der Server kann mit PM2, einem Produktionsprozessmanager für Node.js-Anwendungen, betrieben werden. PM2 bietet Funktionen wie:

  • Prozessmanagement (Neustart bei Absturz)
  • Protokollverwaltung
  • Leistungsüberwachung
  • Lastenausgleich (für mehrere Instanzen)
PM2-Befehle
# Start the server with PM2 npm run pm2:start # Start in production mode npm run pm2:start:prod # View logs npm run pm2:logs # Monitor performance npm run pm2:monit # Restart the server npm run pm2:restart # Stop the server npm run pm2:stop # Remove the server from PM2 npm run pm2:delete

Die PM2-Konfiguration ist in ecosystem.config.js gespeichert. Sie können diese Datei bearbeiten, um Folgendes zu ändern:

  • Prozessname
  • Umgebungsvariablen
  • Speichergrenzen
  • Bereitstellungskonfiguration
  • Anzahl der Instanzen (für Lastenausgleich)

API-Endpunkte

POST /mcp/:provider

Stellen Sie Anfragen an KI-Modelle über eine einheitliche API.

URL-Parameter:

  • provider : Der zu verwendende KI-Anbieter ( anthropic oder openai )

Anforderungstext:

{ "messages": [ { "role": "user", "content": "Your prompt here" } ], "model": "claude-3-opus-20240229", // Optional, provider-specific model name "tools": [...], // Optional, tools for function calling "context": "System message or context" // Optional }

ODER (Legacy-Format):

{ "prompt": "Your prompt here", "model": "claude-3-opus-20240229", // Optional "context": "System message or context" // Optional }

Antwort: Gibt die Rohantwort von der API des Anbieters zurück.

GET /tools/available

Erhalten Sie eine umfassende Liste aller verfügbaren Tools mit detaillierten Informationen.

Abfrageparameter:

  • format – Antwortformat: json (Standard), yaml , table oder html
  • category – Werkzeuge nach Kategorie filtern (optional)
  • enabled – Filtern nach aktiviertem Status: true (Standard) oder false
  • search – Suche nach Werkzeugen nach Name, Beschreibung oder Tags
  • provider – Tools nach Anbieter filtern (z. B. openai , google )
  • limit – Maximale Anzahl der zurückzugebenden Tools (für die Seitennummerierung)
  • offset – Offset für die Seitennummerierung (Standard: 0)

Antwort (JSON-Format):

{ "success": true, "count": 10, "metadata": { "categories": ["web", "image", "utility"], "providers": ["openai", "anthropic", "internal"], "totalCount": 24, "offset": 0, "limit": 10 }, "tools": [ { "name": "web_search", "description": "Search the web for information", "category": "web", "version": "1.0.0", "provider": "google", "enabled": true, "parameters": { "query": { "type": "string", "description": "The search query", "required": true }, "limit": { "type": "number", "description": "Maximum number of results", "required": false, "default": 5 } }, "usage": { "endpoint": "/tools/web/search", "method": "POST", "parameters": { /* same as above */ } }, "metadata": { "createdAt": "2023-10-15T12:00:00Z", "updatedAt": "2024-04-20T09:30:00Z", "usageCount": 1245 } } // ... more tools ] }
GET /health

Integritätsprüfungsendpunkt, der den Status 200 zurückgibt, wenn der Server läuft.

Datenmanagement

Datenbanksicherungen

Sie können Datenbanksicherungen erstellen und verwalten:

# Create a full backup npm run backup-mongodb # Create a backup with execution history npm run backup-mongodb -- --with-executions # List existing backups npm run backup-mongodb -- --list
Testen der Datenbankverbindung

So überprüfen Sie Ihr MongoDB-Setup:

# Run the database test script npm run test-mongodb

Beispielkunden

Befehlszeilenclient

Ein Testclient ist in src/client.js enthalten. So führen Sie ihn aus:

node src/client.js
Webclient

Bei laufendem Server steht unter http://localhost:3000 eine einfache Weboberfläche zur Verfügung. Damit können Sie die API direkt im Browser testen.

Verfügbare Tools

Der MCP-Server bietet einen Endpunkt zur Tool-Erkennung, der es Benutzern und KI-Agenten ermöglicht, alle verfügbaren Tools programmgesteuert aufzulisten:

Tools-Erkennung

GET /tools/available – Listet alle verfügbaren Tools mit detaillierten Informationen auf.

  • Unterstützt mehrere Formate: JSON, YAML, HTML und ASCII-Tabellen
  • Bietet Filterung nach Kategorie, Anbieter und Suchbegriffen
  • Enthält detaillierte Metadaten und Anwendungsbeispiele für jedes Tool

Anwendungsbeispiel:

# Get all tools in JSON format curl http://localhost:3000/tools/available # Get tools in a specific category curl http://localhost:3000/tools/available?category=web # Search for image-related tools curl http://localhost:3000/tools/available?search=image # Get a formatted HTML page of all tools curl http://localhost:3000/tools/available?format=html > tools.html

Websuchtools

Der Server enthält integrierte Websuch- und -abruftools:

  1. Websuche ( /tools/web/search )
    • Durchsuchen Sie das Web nach Informationen zu einer bestimmten Abfrage
    • Parameter: query (erforderlich), limit (optional)
    • Erfordert: GOOGLE_CSE_API_KEY und GOOGLE_CSE_ID Umgebungsvariablen
    • Fällt auf BING_SEARCH_API_KEY zurück, wenn die Google-Suche fehlschlägt
  2. Webinhalt ( /tools/web/content )
    • Abrufen und Extrahieren von Inhalten von einer bestimmten URL
    • Parameter: url (erforderlich), useCache (optional)
  3. Web-Batch ( /tools/web/batch )
    • Inhalte von mehreren URLs parallel abrufen
    • Parameter: urls (erforderliches Array), useCache (optional)

Werkzeuge zur Bildgenerierung

Der Server enthält außerdem Tools zur Bildgenerierung, -bearbeitung und -variation:

  1. Bild generieren ( /tools/image/generate )
    • Generieren Sie ein Bild basierend auf einer Textaufforderung
    • Parameter:
      • prompt (erforderlich): Detaillierte Beschreibung des Bildes
      • provider (optional): openai oder stability (Standard ist openai )
      • options (optional): Anbieterspezifische Optionen
  2. Bild bearbeiten ( /tools/image/edit )
    • Bearbeiten eines vorhandenen Bilds mit einer Textaufforderung
    • Parameter:
      • imagePath (erforderlich): Pfad zum zu bearbeitenden Bild
      • prompt (erforderlich): Beschreibung der vorzunehmenden Änderung
      • maskPath (optional): Pfad zu einem Maskenbild
  3. Bildvariante erstellen ( /tools/image/variation )
    • Erstellen Sie eine Variation eines vorhandenen Bildes
    • Parameter:
      • imagePath (erforderlich): Pfad zum Bild, von dem Variationen erstellt werden sollen

Hinweis: Um diese Tools zu verwenden, müssen Sie API-Schlüssel in Ihrer .env Datei festlegen:

  • Für OpenAI-Bilder: OPENAI_API_KEY
  • Für Stabilitäts-KI-Bilder: STABILITY_API_KEY
  • Für die Websuche: GOOGLE_CSE_API_KEY und GOOGLE_CSE_ID

Tool-Integration mit KI-Modellen

Der MCP-Server übernimmt automatisch den Tool-Aufruf und die Ausführung mit KI-Modellen. Wenn ein Modell ein Tool verwendet, führt der Server Folgendes aus:

  1. Führt das angeforderte Tool mit den angegebenen Parametern aus
  2. Gibt die Antwort des Tools an das Modell zurück
  3. Das Modell kann dann die Antwort des Tools in seine endgültige Antwort integrieren
Tool Discovery für KI-Modelle

KI-Modelle können den Endpunkt /tools/available nutzen, um herauszufinden, welche Tools verfügbar sind und wie sie verwendet werden können. Dies ist besonders nützlich für:

  • Dynamische Toolerkennung während der Laufzeit
  • Selbstdokumentation für KI-Agenten
  • KI-Systeme in die Lage versetzen, sich an vorhandene Kapazitäten anzupassen

Beispielhafte Systemaufforderung für KI-Modelle:

You have access to external tools through the MCP server. Before using any tools, you should check what tools are available by calling: GET /tools/available This will return a list of all available tools with their parameters and usage instructions. You can then use these tools by following the provided usage patterns.

Beispiel für die Verwendung des Tools

Beispielcode zur Demonstration der Toolverwendung finden Sie im Verzeichnis /examples .

Hinzufügen neuer Anbieter oder Tools

Hinzufügen neuer KI-Anbieter

So fügen Sie neue KI-Anbieter hinzu:

  1. Fügen Sie das SDK des Anbieters zum Projekt hinzu
  2. Erstellen Sie eine neue Handlerfunktion in server.js
  3. Fügen Sie einen neuen Fall im Hauptroutenhandler hinzu

Neue Tools hinzufügen

So fügen Sie dem Server neue Tools hinzu:

  1. Erstellen Sie eine neue Tool-Implementierung im Verzeichnis /src/tools
  2. Fügen Sie die Tooldefinition zu tool-definitions.js hinzu
  3. Aktualisieren Sie die Tool-Ausführungsfunktionen in server.js
  4. Fügen Sie neue API-Endpunkte für die direkte Tool-Nutzung hinzu (falls erforderlich)

Lizenz

ISC

-
security - not tested
F
license - not found
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Ein einheitlicher API-Server, der die Interaktion mit mehreren KI-Modellanbietern wie Anthropic und OpenAI über eine konsistente Schnittstelle ermöglicht und Chat-Vervollständigungen, Tool-Aufrufe und Kontextverarbeitung unterstützt.

  1. Merkmale
    1. Installation
      1. MongoDB-Setup
        1. Option 1: Automatisierte Einrichtung (empfohlen)
        2. Option 2: Manuelles Docker-Setup
        3. Option 3: Lokale MongoDB-Installation
        4. Option 4: MongoDB Atlas (Cloud)
      2. Datenbankmigration
        1. Verwendung
          1. Starten Sie den Server
          2. Verwenden des PM2 Process Managers
          3. API-Endpunkte
          4. Datenmanagement
          5. Beispielkunden
        2. Verfügbare Tools
          1. Tools-Erkennung
          2. Websuchtools
          3. Werkzeuge zur Bildgenerierung
          4. Tool-Integration mit KI-Modellen
          5. Beispiel für die Verwendung des Tools
        3. Hinzufügen neuer Anbieter oder Tools
          1. Hinzufügen neuer KI-Anbieter
          2. Neue Tools hinzufügen
        4. Lizenz

          Related MCP Servers

          • -
            security
            A
            license
            -
            quality
            This server facilitates the invocation of AI models from providers like Anthropic, OpenAI, and Groq, enabling users to manage and configure large language model interactions seamlessly.
            Last updated -
            4
            Python
            MIT License
          • -
            security
            -
            license
            -
            quality
            An open standard server implementation that enables AI assistants to directly access APIs and services through Model Context Protocol, built using Cloudflare Workers for scalability.
            Last updated -
            TypeScript
          • -
            security
            F
            license
            -
            quality
            A modern AI service proxy that enables interaction with multiple AI providers (Anthropic Claude, OpenAI) through a unified API, deployed globally using Cloudflare Workers.
            Last updated -
            13
            TypeScript
          • A
            security
            F
            license
            A
            quality
            A Model Context Protocol server that enables AI assistants to interact with the Omi API for retrieving and creating conversations and memories for users.
            Last updated -
            4
            TypeScript

          View all related MCP servers

          ID: x9ucq0kwqj