DealX

resmi

DealX platformu için MCP Sunucusu

Deal X MCP ile neler yapabilirsiniz?

  • Reklamları anahtar kelimeye göre arasearch_ads ile metin sorgusu kullanarak DealX platformundaki listeleri bulun.
  • Sonuçları sırala ve sayfala — Sıralama düzenini (örneğin, -created ile en yeniler önce), sayfa ofsetini ve sonuç sayısını kontrol edin.
  • Sonuç sayısını sınırla — İstek başına en fazla 100 reklam olacak şekilde özel bir sayfa boyutu belirleyin.

Dokümantasyon

@dealx/mcp-server

Bu, DealX platformu için bir Model Bağlam Protokolü (MCP) sunucusudur. LLM'lerin DealX platformuyla etkileşime girmesine, özellikle ilanları aramasına olanak tanır.

İçindekiler

Barındırılan dağıtım

Fronteir AI üzerinde barındırılan bir dağıtım mevcuttur.

Genel Bakış

DealX MCP Sunucusu, LLM'lerin DealX platformu ile etkileşime girmesi için standart bir yol sağlamak amacıyla Model Bağlam Protokolü'nü uygular. Şu anda ilan aramayı desteklemekte olup, gelecekte daha fazla işlevsellik eklenmesi planlanmaktadır.

MCP Nedir?

Model Bağlam Protokolü (MCP), LLM'lerin harici sistemlerle etkileşime girmesi için standartlaştırılmış bir yoldur. LLM'lerin verilere erişmesi ve gerçek dünyada eylemler gerçekleştirmesi için yapılandırılmış bir arayüz sağlar. Bu sunucu, LLM'lerin DealX platformuyla etkileşime girmesine izin vermek için MCP spesifikasyonunu uygular.

Kurulum

Ön Koşullar

  • Node.js (v20 veya üzeri)
  • npm (v11 veya üzeri)

MCP Yapılandırması

Bu sunucuyu Claude gibi bir LLM ile kullanmak için, LLM'nizin MCP yapılandırmasına eklemeniz gerekir:

  1. LLM'nizin MCP yapılandırma dosyasını açın:

    • Claude Masaüstü Uygulaması:
      • 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 Eklentisi):
      • ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. DealX MCP sunucusunu mcpServers bölümüne ekleyin:

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

npm ile Kurulum

DealX MCP Sunucusunu kurmanın en kolay yolu npm üzerindendir:

npm install -g @dealx/mcp-server

Geliştirme için Kurulum

Sunucuyu değiştirmek veya geliştirilmesine katkıda bulunmak istiyorsanız:

  1. Depoyu klonlayın:

    git clone <repository-url>
    cd dealx/mcp
    
  2. Bağımlılıkları yükleyin:

    npm install
    
  3. .env.example dosyasını temel alan bir .env dosyası oluşturun:

    cp .env.example .env
    
  4. Uygun değerleri ayarlamak için .env dosyasını düzenleyin:

    # 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. Sunucuyu derleyin:

    npm run build
    

Kullanım

Sunucuyu Başlatma

Sunucuyu birkaç şekilde çalıştırabilirsiniz:

  1. Genel olarak kuruluysa:

    node node_modules/@dealx/mcp-server/build/index.js
    
  2. Kurulum yapmadan npx kullanarak:

    npx -y @dealx/mcp-server
    
  3. Ortam değişkenleriyle:

    DEALX_API_URL=https://dealx.com.ua npx -y @dealx/mcp-server
    
  4. Geliştirme için:

    npm start
    

Bir LLM ile Kullanma

LLM'nizin MCP ayarlarında yapılandırıldıktan sonra, DealX platformuyla etkileşime girmek için doğal dil kullanabilirsiniz.

Örnek istemler:

  • "DealX'te 'dizüstü bilgisayar' sorgusuyla ilan ara"
  • "DealX'te 'iPhone' için en yeni 5 ilanı bul"
  • "Kiev'deki daireler için DealX'i ara"

Mevcut Araçlar

search_ads

DealX platformunda ilanları arayın.

Parametreler:

  • query (dize, isteğe bağlı): Arama sorgusu dizesi
  • sort (dize, isteğe bağlı): Sıralama düzeni (ör. en yeni önce için "-created")
  • offset (sayı, isteğe bağlı): Sayfalama ofseti (1'den başlar, varsayılan: 1)
  • limit (sayı, isteğe bağlı): Sayfa başına sonuç sayısı (maks. 100, varsayılan: 30)

Örnek Kullanım:

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

Sunucuyu Genişletme

Sunucu, ek araçlarla kolayca genişletilebilecek şekilde tasarlanmıştır. Yeni bir araç ekleme adımları:

  • src/index.ts içindeki TOOLS nesnesinde aracı tanımlayın:

    const TOOLS = {
      SEARCH_ADS: "search_ads",
      NEW_TOOL: "new_tool", // Add your new tool here
    };
    
  • Araç uygulamanız için src/tools dizininde yeni bir dosya oluşturun:

    // 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
        // ...
      }
    }
    
  • Aracı src/index.ts içindeki ListToolsRequestSchema işleyicisine ekleyin:

    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
          },
        },
      ],
    }));
    
  • Aracı src/index.ts içindeki CallToolRequestSchema işleyicisine ekleyin:

    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}`);
      }
    });
    
  • Yeni aracınızı src/index.ts içine aktarın:

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

Planlanan Gelecek Araçlar

Gelecekte uygulanması planlanan araçlar şunlardır:

  • create_ad: DealX platformunda yeni bir ilan oluştur
  • edit_ad: Mevcut bir ilanı düzenle
  • delete_ad: Bir ilanı sil
  • get_threads: Bir ilan için tartışma konularını al
  • create_thread: Yeni bir tartışma konusu oluştur

Geliştirme

Proje Yapısı

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 Betikleri

  • npm run build - TypeScript'i JavaScript'e derle
  • npm start - Derlenmiş JavaScript'i kullanarak sunucuyu başlat
  • npm run dev - Sunucuyu sıcak yeniden yükleme ile geliştirme modunda başlat
  • npm run lint - ESLint kullanarak kodu denetle
  • npm run format - Prettier kullanarak kodu biçimlendir
  • npm test - Testleri çalıştır

Sorun Giderme

Yaygın Sorunlar

Sunucu Başlamıyor

Sunucu başlatılamazsa aşağıdakileri kontrol edin:

  • Doğru Node.js sürümünün yüklü olduğundan emin olun
  • Tüm bağımlılıkların yüklü olduğunu kontrol edin
  • .env dosyasının var olduğunu ve doğru değerlere sahip olduğunu doğrulayın
  • Hata mesajları için konsol çıktısını kontrol edin

Bağlantı Sorunları

LLM sunucuya bağlanamıyorsa:

  • Sunucunun çalıştığından emin olun
  • LLM'nin ayarlarındaki MCP yapılandırmasının doğru olduğunu kontrol edin
  • Sunucu yürütülebilir dosyasının yolunun doğru olduğunu doğrulayın
  • Ortam değişkenlerinin doğru ayarlandığını kontrol edin

API Bağlantı Sorunları

Sunucu DealX API'sine bağlanamıyorsa:

  • DealX API'sinin çalıştığından emin olun
  • DEALX_API_URL ortam değişkeninin doğru ayarlandığını kontrol edin
  • API uç noktasına sunucudan erişilebildiğini doğrulayın

Yardım Alma

Burada ele alınmayan sorunlarla karşılaşırsanız, lütfen bu GitHub deposuna bir sorun bildirimi açın.