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設定に追加する必要があります。
-
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
- macOS:
- Cline (VS Code拡張機能):
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Claudeデスクトップアプリ:
-
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
開発用インストール
サーバーを変更したり、開発に貢献したい場合:
-
リポジトリをクローンします。
git clone <repository-url> cd dealx/mcp -
依存関係をインストールします。
npm install -
.env.exampleファイルに基づいて.envファイルを作成します。cp .env.example .env -
.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 -
サーバーをビルドします。
npm run build
使用方法
サーバーの起動
サーバーはいくつかの方法で実行できます。
-
グローバルにインストールした場合:
node node_modules/@dealx/mcp-server/build/index.js -
インストールせずにnpxを使用する場合:
npx -y @dealx/mcp-server -
環境変数を使用する場合:
DEALX_API_URL=https://dealx.com.ua npx -y @dealx/mcp-server -
開発用:
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.tsのTOOLSオブジェクトでツールを定義します。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.tsのListToolsRequestSchemaハンドラにツールを追加します。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.tsのCallToolRequestSchemaハンドラにツールを追加します。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を作成してください。