DealX
offiziellMCP-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
- Übersicht
- Installation
- Verwendung
- Verfügbare Werkzeuge
- Erweiterung des Servers
- Entwicklung
- Fehlerbehebung
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:
-
Ö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
- macOS:
- Cline (VS Code-Erweiterung):
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Claude Desktop-App:
-
Fügen Sie den DealX MCP-Server zum Abschnitt
mcpServershinzu:{ "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:
-
Klonen Sie das Repository:
git clone <repository-url> cd dealx/mcp -
Installieren Sie die Abhängigkeiten:
npm install -
Erstellen Sie eine
.env-Datei basierend auf der.env.example-Datei:cp .env.example .env -
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 -
Bauen Sie den Server:
npm run build
Verwendung
Starten des Servers
Sie können den Server auf verschiedene Arten ausführen:
-
Bei globaler Installation:
node node_modules/@dealx/mcp-server/build/index.js -
Mit npx ohne Installation:
npx -y @dealx/mcp-server -
Mit Umgebungsvariablen:
DEALX_API_URL=https://dealx.com.ua npx -y @dealx/mcp-server -
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): Suchbegriffsort(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 insrc/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 insrc/index.tshinzu: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 insrc/index.tshinzu: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 erstellenedit_ad: Eine bestehende Anzeige bearbeitendelete_ad: Eine Anzeige löschenget_threads: Diskussionsthreads für eine Anzeige abrufencreate_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 kompilierennpm start– Server mit dem kompilierten JavaScript startennpm run dev– Server im Entwicklungsmodus mit Hot Reloading startennpm run lint– Code mit ESLint lintennpm run format– Code mit Prettier formatierennpm 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_URLrichtig 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.