DealX
officielServeur 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 :
-
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
- macOS :
- Cline (Extension VS Code) :
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Application de bureau Claude :
-
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 :
-
Clonez le dépôt :
git clone <repository-url> cd dealx/mcp -
Installez les dépendances :
npm install -
Créez un fichier
.envbasé sur le fichier.env.example:cp .env.example .env -
Modifiez le fichier
.envpour 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 -
Construisez le serveur :
npm run build
Utilisation
Démarrage du serveur
Vous pouvez exécuter le serveur de plusieurs manières :
-
Si installé globalement :
node node_modules/@dealx/mcp-server/build/index.js -
En utilisant npx sans installation :
npx -y @dealx/mcp-server -
Avec des variables d'environnement :
DEALX_API_URL=https://dealx.com.ua npx -y @dealx/mcp-server -
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 recherchesort(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
TOOLSdanssrc/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/toolspour 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
ListToolsRequestSchemadanssrc/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
CallToolRequestSchemadanssrc/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 DealXedit_ad: Modifier une annonce existantedelete_ad: Supprimer une annonceget_threads: Obtenir les fils de discussion pour une annoncecreate_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 JavaScriptnpm start- Démarrer le serveur en utilisant le JavaScript compilénpm run dev- Démarrer le serveur en mode développement avec rechargement à chaudnpm run lint- Linter le code avec ESLintnpm run format- Formater le code avec Prettiernpm 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
.envexiste 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_URLest 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.