DealX

officiel

Serveur MCP pour la plateforme DealX

Que pouvez-vous faire avec Deal X MCP ?

  • Rechercher des annonces par mot-clé — Trouvez des annonces sur la plateforme DealX à l'aide d'une requête textuelle via search_ads.
  • Trier et paginer les résultats — Contrôlez l'ordre de tri (par exemple, les plus récents en premier avec -created), le décalage de page et le nombre de résultats.
  • Limiter le nombre de résultats — Définissez une taille de page personnalisée jusqu'à 100 annonces par requête.

Documentation

@dealx/mcp-server

Ceci est un serveur Model Context Protocol (MCP) pour la plateforme DealX. Il permet aux LLM d'interagir avec la plateforme DealX, notamment pour rechercher des annonces.

Table des matières

Déploiement hébergé

Un déploiement hébergé est disponible sur Fronteir AI.

Aperçu

Le serveur MCP DealX implémente le Model Context Protocol pour fournir un moyen standardisé aux LLM d'interagir avec la plateforme DealX. Actuellement, il prend en charge la recherche d'annonces, avec des plans pour ajouter plus de fonctionnalités à l'avenir.

Qu'est-ce que MCP ?

Le Model Context Protocol (MCP) est un moyen standardisé pour les LLM d'interagir avec des systèmes externes. Il fournit une interface structurée pour que les LLM accèdent aux données et effectuent des actions dans le monde réel. Ce serveur implémente la spécification MCP pour permettre aux LLM d'interagir avec la plateforme DealX.

Installation

Prérequis

  • Node.js (v20 ou ultérieure)
  • npm (v11 ou ultérieure)

Configuration MCP

Pour utiliser ce serveur avec un LLM comme Claude, vous devez l'ajouter à la configuration MCP de votre LLM :

  1. Ouvrez le fichier de configuration MCP de votre LLM :

    • Application de bureau Claude :
      • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
      • Windows : %APPDATA%\Claude\claude_desktop_config.json
      • Linux : ~/.config/Claude/claude_desktop_config.json
    • Cline (Extension VS Code) :
      • ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. Ajoutez le serveur MCP DealX à la section mcpServers :

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

Installation via npm

Le moyen le plus simple d'installer le serveur MCP DealX est via npm :

npm install -g @dealx/mcp-server

Installation pour le développement

Si vous souhaitez modifier le serveur ou contribuer à son développement :

  1. Clonez le dépôt :

    git clone <repository-url>
    cd dealx/mcp
    
  2. Installez les dépendances :

    npm install
    
  3. Créez un fichier .env basé sur le fichier .env.example :

    cp .env.example .env
    
  4. Modifiez le fichier .env pour définir les valeurs appropriées :

    # 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. Construisez le serveur :

    npm run build
    

Utilisation

Démarrage du serveur

Vous pouvez exécuter le serveur de plusieurs manières :

  1. Si installé globalement :

    node node_modules/@dealx/mcp-server/build/index.js
    
  2. En utilisant npx sans installation :

    npx -y @dealx/mcp-server
    
  3. Avec des variables d'environnement :

    DEALX_API_URL=https://dealx.com.ua npx -y @dealx/mcp-server
    
  4. Pour le développement :

    npm start
    

Utilisation avec un LLM

Une fois configuré dans les paramètres MCP de votre LLM, vous pouvez utiliser le langage naturel pour interagir avec la plateforme DealX.

Exemples de requêtes :

  • "Recherche des annonces sur DealX avec la requête 'ordinateur portable'"
  • "Trouve les 5 annonces les plus récentes pour 'iPhone' sur DealX"
  • "Recherche sur DealX des appartements à Kyiv"

Outils disponibles

search_ads

Recherche des annonces sur la plateforme DealX.

Paramètres :

  • query (chaîne, optionnel) : Chaîne de requête de recherche
  • sort (chaîne, optionnel) : Ordre de tri (par exemple, "-created" pour les plus récents en premier)
  • offset (nombre, optionnel) : Décalage de pagination (commence à 1, par défaut : 1)
  • limit (nombre, optionnel) : Nombre de résultats par page (max 100, par défaut : 30)

Exemple d'utilisation :

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

Extension du serveur

Le serveur est conçu pour être facilement étendu avec des outils supplémentaires. Voici comment ajouter un nouvel outil :

  • Définissez l'outil dans l'objet TOOLS dans src/index.ts :

    const TOOLS = {
      SEARCH_ADS: "search_ads",
      NEW_TOOL: "new_tool", // Add your new tool here
    };
    
  • Créez un nouveau fichier dans le répertoire src/tools pour l'implémentation de votre outil :

    // 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
        // ...
      }
    }
    
  • Ajoutez l'outil au gestionnaire ListToolsRequestSchema dans src/index.ts :

    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
          },
        },
      ],
    }));
    
  • Ajoutez l'outil au gestionnaire CallToolRequestSchema dans src/index.ts :

    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}`);
      }
    });
    
  • Importez votre nouvel outil dans src/index.ts :

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

Outils futurs prévus

Les outils suivants sont prévus pour une implémentation future :

  • create_ad : Créer une nouvelle annonce sur la plateforme DealX
  • edit_ad : Modifier une annonce existante
  • delete_ad : Supprimer une annonce
  • get_threads : Obtenir les fils de discussion pour une annonce
  • create_thread : Créer un nouveau fil de discussion

Développement

Structure du projet

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

Scripts npm

  • npm run build - Compiler TypeScript en JavaScript
  • npm start - Démarrer le serveur en utilisant le JavaScript compilé
  • npm run dev - Démarrer le serveur en mode développement avec rechargement à chaud
  • npm run lint - Linter le code avec ESLint
  • npm run format - Formater le code avec Prettier
  • npm test - Exécuter les tests

Dépannage

Problèmes courants

Le serveur ne démarre pas

Si le serveur ne démarre pas, vérifiez les points suivants :

  • Assurez-vous d'avoir la bonne version de Node.js installée
  • Vérifiez que toutes les dépendances sont installées
  • Vérifiez que le fichier .env existe et contient les bonnes valeurs
  • Vérifiez la sortie de la console pour les messages d'erreur

Problèmes de connexion

Si le LLM ne peut pas se connecter au serveur :

  • Assurez-vous que le serveur est en cours d'exécution
  • Vérifiez que la configuration MCP dans les paramètres du LLM est correcte
  • Vérifiez que le chemin vers l'exécutable du serveur est correct
  • Vérifiez que les variables d'environnement sont correctement définies

Problèmes de connexion API

Si le serveur ne peut pas se connecter à l'API DealX :

  • Assurez-vous que l'API DealX est en cours d'exécution
  • Vérifiez que la variable d'environnement DEALX_API_URL est correctement définie
  • Vérifiez que le point de terminaison de l'API est accessible depuis le serveur

Obtenir de l'aide

Si vous rencontrez des problèmes non couverts ici, veuillez ouvrir un ticket sur ce dépôt GitHub.