DealX
официальныйMCP сервер для платформы DealX
Что можно делать с Deal X MCP?
- Поиск объявлений по ключевому слову — Находите объявления на платформе DealX с помощью текстового запроса через
search_ads. - Сортировка и постраничный вывод результатов — Управляйте порядком сортировки (например, сначала новые с помощью
-created), смещением страницы и количеством результатов. - Ограничение количества результатов — Установите собственный размер страницы до 100 объявлений на запрос.
Документация
@dealx/mcp-server
Это сервер Model Context Protocol (MCP) для платформы DealX. Он позволяет 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
Чтобы использовать этот сервер с LLM, например Claude, необходимо добавить его в конфигурацию MCP вашей LLM:
-
Откройте файл конфигурации MCP вашей LLM:
- Claude Desktop App:
- 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 Desktop App:
-
Добавьте сервер DealX MCP в секцию
mcpServers:{ "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на основе файла.env.example: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
После настройки в параметрах MCP вашей LLM вы можете использовать естественный язык для взаимодействия с платформой DealX.
Примеры запросов:
- "Найди объявления на DealX по запросу 'ноутбук'"
- "Найди 5 самых новых объявлений для 'iPhone' на DealX"
- "Поищи на DealX квартиры в Киеве"
Доступные инструменты
search_ads
Поиск объявлений на платформе DealX.
Параметры:
query(строка, необязательный): Строка поискового запросаsort(строка, необязательный): Порядок сортировки (например, "-created" для сначала новых)offset(число, необязательный): Смещение для пагинации (начинается с 1, по умолчанию: 1)limit(число, необязательный): Количество результатов на странице (макс. 100, по умолчанию: 30)
Пример использования:
{
"query": "laptop",
"sort": "-created",
"offset": 1,
"limit": 10
}
Расширение сервера
Сервер спроектирован так, чтобы его можно было легко расширять дополнительными инструментами. Вот как добавить новый инструмент:
-
Определите инструмент в объекте
TOOLSвsrc/index.ts: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 // ... } } -
Добавьте инструмент в обработчик
ListToolsRequestSchemaв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 }, }, ], })); -
Добавьте инструмент в обработчик
CallToolRequestSchemaв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}`); } }); -
Импортируйте ваш новый инструмент в
src/index.ts:import { newTool } from "./tools/new-tool.js";
Планируемые будущие инструменты
Следующие инструменты запланированы для реализации в будущем:
create_ad: Создать новое объявление на платформе DealXedit_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 в JavaScriptnpm start— Запуск сервера с использованием скомпилированного JavaScriptnpm run dev— Запуск сервера в режиме разработки с горячей перезагрузкойnpm run lint— Линтинг кода с помощью ESLintnpm run format— Форматирование кода с помощью Prettiernpm test— Запуск тестов
Устранение неполадок
Распространённые проблемы
Сервер не запускается
Если сервер не запускается, проверьте следующее:
- Убедитесь, что у вас установлена правильная версия Node.js
- Проверьте, что все зависимости установлены
- Убедитесь, что файл
.envсуществует и содержит правильные значения - Проверьте вывод консоли на наличие сообщений об ошибках
Проблемы с подключением
Если LLM не может подключиться к серверу:
- Убедитесь, что сервер запущен
- Проверьте, что конфигурация MCP в настройках LLM правильная
- Убедитесь, что путь к исполняемому файлу сервера указан верно
- Проверьте, что переменные окружения заданы правильно
Проблемы с подключением к API
Если сервер не может подключиться к API DealX:
- Убедитесь, что API DealX работает
- Проверьте, что переменная окружения
DEALX_API_URLзадана правильно - Убедитесь, что конечная точка API доступна с сервера
Получение помощи
Если вы столкнулись с проблемами, не описанными здесь, пожалуйста, создайте обращение в этом репозитории GitHub.