DealX

公式

DealXプラットフォーム用のMCPサーバー

Deal X MCPで何ができますか?

  • キーワードで広告を検索search_adsを使用してテキストクエリでDealXプラットフォームのリスティングを検索します。
  • 結果の並べ替えとページネーション — 並べ替え順序(例:-createdで新しい順)、ページオフセット、結果数を制御します。
  • 結果の数を制限 — リクエストごとに最大100件の広告までカスタムページサイズを設定します。

ドキュメント

@dealx/mcp-server

これはDealXプラットフォーム向けのModel Context Protocol (MCP)サーバーです。LLMがDealXプラットフォームと対話し、特に広告を検索できるようにします。

目次

ホスト型デプロイメント

ホスト型デプロイメントはFronteir AIで利用可能です。

概要

DealX MCPサーバーは、Model Context Protocolを実装し、LLMがDealXプラットフォームと対話するための標準化された方法を提供します。現在は広告検索をサポートしており、将来的にはさらに機能を追加する予定です。

MCPとは?

Model Context Protocol (MCP)は、LLMが外部システムと対話するための標準化された方法です。LLMがデータにアクセスし、実世界でアクションを実行するための構造化されたインターフェースを提供します。このサーバーはMCP仕様を実装し、LLMがDealXプラットフォームと対話できるようにします。

インストール

前提条件

  • Node.js (v20以降)
  • npm (v11以降)

MCP設定

このサーバーをClaudeのようなLLMで使用するには、LLMのMCP設定に追加する必要があります。

  1. LLMのMCP設定ファイルを開きます。

    • 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 (VS Code拡張機能):
      • ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. mcpServersセクションにDealX MCPサーバーを追加します。

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

npm経由のインストール

DealX MCPサーバーをインストールする最も簡単な方法はnpm経由です。

npm install -g @dealx/mcp-server

開発用インストール

サーバーを変更したり、開発に貢献したい場合:

  1. リポジトリをクローンします。

    git clone <repository-url>
    cd dealx/mcp
    
  2. 依存関係をインストールします。

    npm install
    
  3. .env.exampleファイルに基づいて.envファイルを作成します。

    cp .env.example .env
    
  4. .envファイルを編集して適切な値を設定します。

    # 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. サーバーをビルドします。

    npm run build
    

使用方法

サーバーの起動

サーバーはいくつかの方法で実行できます。

  1. グローバルにインストールした場合:

    node node_modules/@dealx/mcp-server/build/index.js
    
  2. インストールせずにnpxを使用する場合:

    npx -y @dealx/mcp-server
    
  3. 環境変数を使用する場合:

    DEALX_API_URL=https://dealx.com.ua npx -y @dealx/mcp-server
    
  4. 開発用:

    npm start
    

LLMでの使用

LLMのMCP設定で構成されると、自然言語を使用してDealXプラットフォームと対話できます。

プロンプトの例:

  • "DealXで 'laptop' というクエリで広告を検索して"
  • "DealXで 'iPhone' の最新5件の広告を見つけて"
  • "DealXでキーウのアパートを検索して"

利用可能なツール

search_ads

DealXプラットフォームで広告を検索します。

パラメータ:

  • query (文字列, オプション): 検索クエリ文字列
  • sort (文字列, オプション): ソート順 (例: 新しい順は "-created")
  • offset (数値, オプション): ページネーションオフセット (1から開始、デフォルト: 1)
  • limit (数値, オプション): 1ページあたりの結果数 (最大100、デフォルト: 30)

使用例:

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

サーバーの拡張

サーバーは追加ツールで簡単に拡張できるように設計されています。新しいツールを追加する方法は次のとおりです。

  • src/index.tsTOOLSオブジェクトでツールを定義します。

    const TOOLS = {
      SEARCH_ADS: "search_ads",
      NEW_TOOL: "new_tool", // Add your new tool here
    };
    
  • ツール実装用にsrc/toolsディレクトリに新しいファイルを作成します。

    // 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
        // ...
      }
    }
    
  • src/index.tsListToolsRequestSchemaハンドラにツールを追加します。

    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
          },
        },
      ],
    }));
    
  • src/index.tsCallToolRequestSchemaハンドラにツールを追加します。

    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}`);
      }
    });
    
  • src/index.tsで新しいツールをインポートします。

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

将来計画されているツール

以下のツールは将来の実装が計画されています。

  • create_ad: DealXプラットフォームに新しい広告を作成
  • edit_ad: 既存の広告を編集
  • delete_ad: 広告を削除
  • get_threads: 広告のディスカッションスレッドを取得
  • create_thread: 新しいディスカッションスレッドを作成

開発

プロジェクト構造

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スクリプト

  • npm run build - TypeScriptをJavaScriptにコンパイル
  • npm start - コンパイルされたJavaScriptを使用してサーバーを起動
  • npm run dev - ホットリロードを使用した開発モードでサーバーを起動
  • npm run lint - ESLintを使用してコードをリント
  • npm run format - Prettierを使用してコードをフォーマット
  • npm test - テストを実行

トラブルシューティング

一般的な問題

サーバーが起動しない

サーバーが起動しない場合は、以下を確認してください。

  • 正しいNode.jsバージョンがインストールされていることを確認
  • すべての依存関係がインストールされていることを確認
  • .envファイルが存在し、正しい値が設定されていることを確認
  • コンソール出力でエラーメッセージを確認

接続の問題

LLMがサーバーに接続できない場合:

  • サーバーが実行中であることを確認
  • LLM設定のMCP設定が正しいことを確認
  • サーバー実行ファイルへのパスが正しいことを確認
  • 環境変数が正しく設定されていることを確認

API接続の問題

サーバーがDealX APIに接続できない場合:

  • DealX APIが実行中であることを確認
  • DEALX_API_URL環境変数が正しく設定されていることを確認
  • APIエンドポイントがサーバーからアクセス可能であることを確認

ヘルプの入手

ここでカバーされていない問題が発生した場合は、このGitHubリポジトリに対してIssueを作成してください。