DealX

offiziell

MCP-Server für die DealX-Plattform

Was kann man mit Deal X MCP machen?

  • Anzeigen nach Stichwort suchen — Finden Sie Listings auf der DealX-Plattform mithilfe einer Textabfrage über search_ads.
  • Ergebnisse sortieren und paginieren — Steuern Sie die Sortierreihenfolge (z. B. neueste zuerst mit -created), den Seitenversatz und die Ergebnisanzahl.
  • Anzahl der Ergebnisse begrenzen — Legen Sie eine benutzerdefinierte Seitengröße von bis zu 100 Anzeigen pro Anfrage fest.

Dokumentation

@dealx/mcp-server

Dies ist ein Model Context Protocol (MCP)-Server für die DealX-Plattform. Er ermöglicht LLMs die Interaktion mit der DealX-Plattform, insbesondere die Suche nach Anzeigen.

Inhaltsverzeichnis

Gehostete Bereitstellung

Eine gehostete Bereitstellung ist auf Fronteir AI verfügbar.

Übersicht

Der DealX MCP-Server implementiert das Model Context Protocol, um eine standardisierte Möglichkeit für LLMs zur Interaktion mit der DealX-Plattform bereitzustellen. Derzeit unterstützt er die Suche nach Anzeigen, mit Plänen für weitere Funktionen in der Zukunft.

Was ist MCP?

Das Model Context Protocol (MCP) ist eine standardisierte Methode für LLMs, mit externen Systemen zu interagieren. Es bietet eine strukturierte Schnittstelle für LLMs, um auf Daten zuzugreifen und Aktionen in der realen Welt durchzuführen. Dieser Server implementiert die MCP-Spezifikation, um LLMs die Interaktion mit der DealX-Plattform zu ermöglichen.

Installation

Voraussetzungen

  • Node.js (v20 oder höher)
  • npm (v11 oder höher)

MCP-Konfiguration

Um diesen Server mit einem LLM wie Claude zu verwenden, müssen Sie ihn zur MCP-Konfiguration Ihres LLM hinzufügen:

  1. Öffnen Sie die MCP-Konfigurationsdatei Ihres LLM:

    • Claude Desktop-App:
      • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
      • Windows: %APPDATA%\Claude\claude_desktop_config.json
      • Linux: ~/.config/Claude/claude_desktop_config.json
    • Cline (VS Code-Erweiterung):
      • ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. Fügen Sie den DealX MCP-Server zum Abschnitt mcpServers hinzu:

    {
      "mcpServers": {
        "dealx": {
          "command": "npx",
          "args": ["-y", "@dealx/mcp-server"],
          "env": {
            "DEALX_API_URL": "https://dealx.com.ua"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    

Installation via npm

Der einfachste Weg, den DealX MCP-Server zu installieren, ist via npm:

npm install -g @dealx/mcp-server

Installation für die Entwicklung

Wenn Sie den Server ändern oder zu seiner Entwicklung beitragen möchten:

  1. Klonen Sie das Repository:

    git clone <repository-url>
    cd dealx/mcp
    
  2. Installieren Sie die Abhängigkeiten:

    npm install
    
  3. Erstellen Sie eine .env-Datei basierend auf der .env.example-Datei:

    cp .env.example .env
    
  4. Bearbeiten Sie die .env-Datei, um die entsprechenden Werte festzulegen:

    # DealX API URL
    DEALX_API_URL=http://localhost:3001
    
    # Optional: Specify the port for the MCP server
    MCP_SERVER_PORT=3100
    
    # Optional: Log level (debug, info, warn, error)
    LOG_LEVEL=info
    
  5. Bauen Sie den Server:

    npm run build
    

Verwendung

Starten des Servers

Sie können den Server auf verschiedene Arten ausführen:

  1. Bei globaler Installation:

    node node_modules/@dealx/mcp-server/build/index.js
    
  2. Mit npx ohne Installation:

    npx -y @dealx/mcp-server
    
  3. Mit Umgebungsvariablen:

    DEALX_API_URL=https://dealx.com.ua npx -y @dealx/mcp-server
    
  4. Für die Entwicklung:

    npm start
    

Verwendung mit einem LLM

Sobald der Server in den MCP-Einstellungen Ihres LLM konfiguriert ist, können Sie natürliche Sprache verwenden, um mit der DealX-Plattform zu interagieren.

Beispielaufforderungen:

  • "Suche nach Anzeigen auf DealX mit dem Begriff 'Laptop'"
  • "Finde die neuesten 5 Anzeigen für 'iPhone' auf DealX"
  • "Suche auf DealX nach Wohnungen in Kiew"

Verfügbare Werkzeuge

search_ads

Suche nach Anzeigen auf der DealX-Plattform.

Parameter:

  • query (String, optional): Suchbegriff
  • sort (String, optional): Sortierreihenfolge (z. B. "-created" für neueste zuerst)
  • offset (Zahl, optional): Paginierungs-Offset (beginnt bei 1, Standard: 1)
  • limit (Zahl, optional): Anzahl der Ergebnisse pro Seite (max. 100, Standard: 30)

Beispielverwendung:

{
  "query": "laptop",
  "sort": "-created",
  "offset": 1,
  "limit": 10
}

Erweiterung des Servers

Der Server ist so konzipiert, dass er einfach um zusätzliche Werkzeuge erweitert werden kann. So fügen Sie ein neues Werkzeug hinzu:

  • Definieren Sie das Werkzeug im TOOLS-Objekt in src/index.ts:

    const TOOLS = {
      SEARCH_ADS: "search_ads",
      NEW_TOOL: "new_tool", // Add your new tool here
    };
    
  • Erstellen Sie eine neue Datei im src/tools-Verzeichnis für Ihre Werkzeugimplementierung:

    // src/tools/new-tool.ts
    import { ErrorCode, McpError } from "@modelcontextprotocol/sdk/types.js";
    
    interface NewToolParams {
      // Define your tool parameters here
    }
    
    export async function newTool(params: NewToolParams) {
      try {
        // Implement your tool logic here
    
        return {
          content: [
            {
              type: "text",
              text: JSON.stringify(result, null, 2),
            },
          ],
        };
      } catch (error) {
        // Handle errors
        // ...
      }
    }
    
  • Fügen Sie das Werkzeug zum ListToolsRequestSchema-Handler in src/index.ts hinzu:

    this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
      tools: [
        // Existing tools...
        {
          name: TOOLS.NEW_TOOL,
          description: "Description of your new tool",
          inputSchema: {
            type: "object",
            properties: {
              // Define your tool parameters here
            },
            required: [], // List required parameters
          },
        },
      ],
    }));
    
  • Fügen Sie das Werkzeug zum CallToolRequestSchema-Handler in src/index.ts hinzu:

    this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
      const { name, arguments: args } = request.params;
    
      switch (name) {
        // Existing cases...
        case TOOLS.NEW_TOOL:
          return await newTool(args);
        default:
          throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
      }
    });
    
  • Importieren Sie Ihr neues Werkzeug in src/index.ts:

    import { newTool } from "./tools/new-tool.js";
    

Geplante zukünftige Werkzeuge

Die folgenden Werkzeuge sind für die zukünftige Implementierung geplant:

  • create_ad: Eine neue Anzeige auf der DealX-Plattform erstellen
  • edit_ad: Eine bestehende Anzeige bearbeiten
  • delete_ad: Eine Anzeige löschen
  • get_threads: Diskussionsthreads für eine Anzeige abrufen
  • create_thread: Einen neuen Diskussionsthread erstellen

Entwicklung

Projektstruktur

mcp/
├── build/              # Compiled JavaScript files
├── src/                # TypeScript source files
│   ├── tools/          # Tool implementations
│   │   └── search-ads.ts
│   └── index.ts        # Main server implementation
├── .env                # Environment variables (not in git)
├── .env.example        # Example environment variables
├── package.json        # Project dependencies and scripts
├── tsconfig.json       # TypeScript configuration
└── README.md           # This file

npm-Skripte

  • npm run build – TypeScript zu JavaScript kompilieren
  • npm start – Server mit dem kompilierten JavaScript starten
  • npm run dev – Server im Entwicklungsmodus mit Hot Reloading starten
  • npm run lint – Code mit ESLint linten
  • npm run format – Code mit Prettier formatieren
  • npm test – Tests ausführen

Fehlerbehebung

Häufige Probleme

Server startet nicht

Wenn der Server nicht startet, überprüfen Sie Folgendes:

  • Stellen Sie sicher, dass die richtige Node.js-Version installiert ist
  • Überprüfen Sie, ob alle Abhängigkeiten installiert sind
  • Vergewissern Sie sich, dass die .env-Datei existiert und die richtigen Werte enthält
  • Überprüfen Sie die Konsolenausgabe auf Fehlermeldungen

Verbindungsprobleme

Wenn das LLM keine Verbindung zum Server herstellen kann:

  • Stellen Sie sicher, dass der Server läuft
  • Überprüfen Sie, ob die MCP-Konfiguration in den LLM-Einstellungen korrekt ist
  • Vergewissern Sie sich, dass der Pfad zur ausführbaren Serverdatei korrekt ist
  • Überprüfen Sie, ob die Umgebungsvariablen richtig gesetzt sind

API-Verbindungsprobleme

Wenn der Server keine Verbindung zur DealX-API herstellen kann:

  • Stellen Sie sicher, dass die DealX-API läuft
  • Überprüfen Sie, ob die Umgebungsvariable DEALX_API_URL richtig gesetzt ist
  • Vergewissern Sie sich, dass der API-Endpunkt vom Server aus erreichbar ist

Hilfe erhalten

Wenn Sie auf Probleme stoßen, die hier nicht behandelt werden, eröffnen Sie bitte ein Issue in diesem GitHub-Repository.