DealX
공식DealX 플랫폼용 MCP 서버
Deal X MCP(으)로 무엇을 할 수 있나요?
- 키워드로 광고 검색 — 텍스트 쿼리를 사용하여
search_ads를 통해 DealX 플랫폼에서 목록을 찾습니다. - 결과 정렬 및 페이지 매기기 — 정렬 순서(예:
-created로 최신순), 페이지 오프셋 및 결과 개수를 제어합니다. - 결과 수 제한 — 요청당 최대 100개의 광고로 사용자 지정 페이지 크기를 설정합니다.
문서
@dealx/mcp-server
이것은 DealX 플랫폼을 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다. LLM이 DealX 플랫폼과 상호 작용할 수 있도록 하며, 특히 광고 검색 기능을 제공합니다.
목차
호스팅 배포
Fronteir AI에서 호스팅 배포를 이용할 수 있습니다.
개요
DealX MCP 서버는 모델 컨텍스트 프로토콜을 구현하여 LLM이 DealX 플랫폼과 상호 작용할 수 있는 표준화된 방법을 제공합니다. 현재는 광고 검색을 지원하며, 향후 더 많은 기능을 추가할 계획입니다.
MCP란 무엇인가요?
모델 컨텍스트 프로토콜(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에서 '노트북' 쿼리로 광고 검색해 줘"
- "DealX에서 'iPhone'에 대한 최신 광고 5개 찾아 줘"
- "DealX에서 키이우의 아파트 검색해 줘"
사용 가능한 도구
search_ads
DealX 플랫폼에서 광고를 검색합니다.
매개변수:
query(문자열, 선택 사항): 검색 쿼리 문자열sort(문자열, 선택 사항): 정렬 순서 (예: 최신순은 "-created")offset(숫자, 선택 사항): 페이지네이션 오프셋 (1부터 시작, 기본값: 1)limit(숫자, 선택 사항): 페이지당 결과 수 (최대 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 저장소에 이슈를 등록해 주세요.