만두 AI MCP 서버
데이터 스크래핑, 콘텐츠 처리, 지식 관리, AI 에이전트 및 코드 실행 기능을 위해 Dumpling AI와 통합되는 MCP(Model Context Protocol) 서버 구현입니다.
특징
- 모든 Dumpling AI API 엔드포인트와의 완벽한 통합
- YouTube 대본, 검색, 자동 완성, 지도, 장소, 뉴스 및 리뷰를 위한 데이터 API
- 스크래핑, 크롤링, 스크린샷 및 구조화된 데이터 추출을 지원하는 웹 스크래핑
- 텍스트 추출, PDF 작업, 비디오 처리를 위한 문서 변환 도구
- 문서, 이미지, 오디오 및 비디오에서 데이터 추출
- 에이전트 완료, 지식 기반 관리, 이미지 생성을 포함한 AI 기능
- 보안 환경에서 JavaScript 및 Python 코드를 실행하기 위한 개발자 도구
- 자동 오류 처리 및 자세한 응답 형식 지정
설치
Smithery를 통해 설치
Smithery를 통해 Claude Desktop에 mcp-server-dumplingai를 자동으로 설치하려면:
지엑스피1
npx로 실행
env DUMPLING_API_KEY=your_api_key npx -y mcp-server-dumplingai
수동 설치
npm install -g mcp-server-dumplingai
커서에서 실행
커서 구성 🖥️ 참고: 커서 버전 0.45.6+ 필요
커서에서 Dumpling AI MCP를 구성하려면:
- 커서 설정 열기
- 기능 > MCP 서버로 이동하세요
- "+ 새 MCP 서버 추가"를 클릭하세요
- 다음을 입력하세요.
{
"mcpServers": {
"dumplingai": {
"command": "npx",
"args": ["-y", "mcp-server-dumplingai"],
"env": {
"DUMPLING_API_KEY": "<your-api-key>"
}
}
}
}
Windows를 사용 중이고 문제가 발생하는 경우 cmd /c "set DUMPLING_API_KEY=your-api-key && npx -y mcp-server-dumplingai"
시도해 보세요.
your-api-key
Dumpling AI API 키로 바꾸세요.
구성
환경 변수
DUMPLING_API_KEY
: Dumpling AI API 키(필수)
사용 가능한 도구
데이터 API
1. YouTube 대본 받기( get-youtube-transcript
)
선택적으로 타임스탬프를 사용하여 YouTube 비디오에서 대본을 추출합니다.
{
"name": "get-youtube-transcript",
"arguments": {
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"includeTimestamps": true,
"timestampsToCombine": 3,
"preferredLanguage": "en"
}
}
2. 검색( search
)
Google 웹 검색을 수행하고 선택적으로 결과에서 콘텐츠를 스크래핑합니다.
{
"name": "search",
"arguments": {
"query": "machine learning basics",
"country": "us",
"language": "en",
"dateRange": "pastMonth",
"scrapeResults": true,
"numResultsToScrape": 3,
"scrapeOptions": {
"format": "markdown",
"cleaned": true
}
}
}
3. 자동완성 받기( get-autocomplete
)
검색어에 대한 Google 검색 자동완성 제안을 받으세요.
{
"name": "get-autocomplete",
"arguments": {
"query": "how to learn",
"country": "us",
"language": "en",
"location": "New York"
}
}
4. 지도 검색( search-maps
)
Google Maps에서 위치와 업체를 검색해 보세요.
{
"name": "search-maps",
"arguments": {
"query": "coffee shops",
"gpsPositionZoom": "37.7749,-122.4194,14z",
"language": "en",
"page": 1
}
}
5. 장소 검색( search-places
)
더 자세한 정보가 있는 장소를 검색해 보세요.
{
"name": "search-places",
"arguments": {
"query": "hotels in paris",
"country": "fr",
"language": "en",
"page": 1
}
}
6. 뉴스 검색( search-news
)
사용자 정의 가능한 매개변수를 사용하여 뉴스 기사를 검색하세요.
{
"name": "search-news",
"arguments": {
"query": "climate change",
"country": "us",
"language": "en",
"dateRange": "pastWeek"
}
}
7. 구글 리뷰 받기( get-google-reviews
)
Google에서 업체나 장소에 대한 리뷰를 검색합니다.
{
"name": "get-google-reviews",
"arguments": {
"businessName": "Eiffel Tower",
"location": "Paris, France",
"limit": 10,
"sortBy": "relevance"
}
}
웹 스크래핑
8. 긁다( scrape
)
서식 옵션을 사용하여 웹 페이지에서 콘텐츠를 추출합니다.
{
"name": "scrape",
"arguments": {
"url": "https://example.com",
"format": "markdown",
"cleaned": true,
"renderJs": true
}
}
9. 크롤( crawl
)
웹사이트를 재귀적으로 크롤링하고 사용자 정의 매개변수로 콘텐츠를 추출합니다.
{
"name": "crawl",
"arguments": {
"baseUrl": "https://example.com",
"maxPages": 10,
"crawlBeyondBaseUrl": false,
"depth": 2,
"scrapeOptions": {
"format": "markdown",
"cleaned": true,
"renderJs": true
}
}
}
10. 스크린샷( screenshot
)
사용자 정의 가능한 뷰포트와 형식 옵션을 사용하여 웹 페이지의 스크린샷을 캡처합니다.
{
"name": "screenshot",
"arguments": {
"url": "https://example.com",
"width": 1280,
"height": 800,
"fullPage": true,
"format": "png",
"waitFor": 1000
}
}
AI 기반 지침을 사용하여 웹 페이지에서 구조화된 데이터를 추출합니다.
{
"name": "extract",
"arguments": {
"url": "https://example.com/products",
"instructions": "Extract all product names, prices, and descriptions from this page",
"schema": {
"products": [
{
"name": "string",
"price": "number",
"description": "string"
}
]
},
"renderJs": true
}
}
문서 변환
12. Doc to Text ( doc-to-text
)
선택적 OCR을 사용하여 문서를 일반 텍스트로 변환합니다.
{
"name": "doc-to-text",
"arguments": {
"url": "https://example.com/document.pdf",
"options": {
"ocr": true,
"language": "en"
}
}
}
13. PDF로 변환( convert-to-pdf
)
다양한 파일 형식을 PDF로 변환합니다.
{
"name": "convert-to-pdf",
"arguments": {
"url": "https://example.com/document.docx",
"format": "docx",
"options": {
"quality": 90,
"pageSize": "A4",
"margin": 10
}
}
}
14. PDF 병합( merge-pdfs
)
여러 개의 PDF를 하나의 문서로 결합합니다.
{
"name": "merge-pdfs",
"arguments": {
"urls": ["https://example.com/doc1.pdf", "https://example.com/doc2.pdf"],
"options": {
"addPageNumbers": true,
"addTableOfContents": true
}
}
}
15. 비디오 트리밍( trim-video
)
비디오에서 특정 클립을 추출합니다.
{
"name": "trim-video",
"arguments": {
"url": "https://example.com/video.mp4",
"startTime": 30,
"endTime": 60,
"output": "mp4",
"options": {
"quality": 720,
"fps": 30
}
}
}
다양한 형식의 문서에서 특정 콘텐츠를 추출합니다.
{
"name": "extract-document",
"arguments": {
"url": "https://example.com/document.pdf",
"format": "structured",
"options": {
"ocr": true,
"language": "en",
"includeMetadata": true
}
}
}
이미지에서 텍스트와 정보를 추출합니다.
{
"name": "extract-image",
"arguments": {
"url": "https://example.com/image.jpg",
"extractionType": "text",
"options": {
"language": "en",
"detectOrientation": true
}
}
}
오디오 파일에서 정보를 추출하고 필사합니다.
{
"name": "extract-audio",
"arguments": {
"url": "https://example.com/audio.mp3",
"language": "en",
"options": {
"model": "enhanced",
"speakerDiarization": true,
"wordTimestamps": true
}
}
}
대본, 장면, 객체를 포함한 비디오의 콘텐츠를 추출합니다.
{
"name": "extract-video",
"arguments": {
"url": "https://example.com/video.mp4",
"extractionType": "transcript",
"options": {
"language": "en",
"speakerDiarization": true
}
}
}
PDF 파일에서 메타데이터를 추출합니다.
{
"name": "read-pdf-metadata",
"arguments": {
"url": "https://example.com/document.pdf",
"includeExtended": true
}
}
PDF 파일의 메타데이터를 업데이트합니다.
{
"name": "write-pdf-metadata",
"arguments": {
"url": "https://example.com/document.pdf",
"metadata": {
"title": "New Title",
"author": "John Doe",
"keywords": ["keyword1", "keyword2"]
}
}
}
일체 포함
22. 에이전트 완료 생성( generate-agent-completion
)
선택적 도구 정의를 통해 AI 에이전트 완성을 얻으세요.
{
"name": "generate-agent-completion",
"arguments": {
"prompt": "How can I improve my website's SEO?",
"model": "gpt-4",
"temperature": 0.7,
"maxTokens": 500,
"context": ["The website is an e-commerce store selling handmade crafts."]
}
}
23. 지식베이스 검색( search-knowledge-base
)
관련 정보를 얻으려면 지식 기반을 검색하세요.
{
"name": "search-knowledge-base",
"arguments": {
"kbId": "kb_12345",
"query": "How to optimize database performance",
"limit": 5,
"similarityThreshold": 0.7
}
}
24. 지식 기반에 추가( add-to-knowledge-base
)
지식 기반에 항목을 추가합니다.
{
"name": "add-to-knowledge-base",
"arguments": {
"kbId": "kb_12345",
"entries": [
{
"text": "MongoDB is a document-based NoSQL database.",
"metadata": {
"source": "MongoDB documentation",
"category": "databases"
}
}
],
"upsert": true
}
}
25. AI 이미지 생성( generate-ai-image
)
AI 모델을 사용하여 이미지를 생성합니다.
{
"name": "generate-ai-image",
"arguments": {
"prompt": "A futuristic city with flying cars and neon lights",
"width": 1024,
"height": 1024,
"numImages": 1,
"quality": "hd",
"style": "photorealistic"
}
}
26. 이미지 생성( generate-image
)
다양한 AI 제공자를 사용하여 이미지를 생성합니다.
{
"name": "generate-image",
"arguments": {
"prompt": "A golden retriever in a meadow of wildflowers",
"provider": "dalle",
"width": 1024,
"height": 1024,
"numImages": 1
}
}
개발자 도구
27. JavaScript 코드 실행( run-js-code
)
선택적 종속성을 사용하여 JavaScript 코드를 실행합니다.
{
"name": "run-js-code",
"arguments": {
"code": "const result = [1, 2, 3, 4].reduce((sum, num) => sum + num, 0); console.log(`Sum: ${result}`); return result;",
"dependencies": {
"lodash": "^4.17.21"
},
"timeout": 5000
}
}
28. Python 코드 실행( run-python-code
)
선택적 종속성을 사용하여 Python 코드를 실행합니다.
{
"name": "run-python-code",
"arguments": {
"code": "import numpy as np\narr = np.array([1, 2, 3, 4, 5])\nmean = np.mean(arr)\nprint(f'Mean: {mean}')\nreturn mean",
"dependencies": ["numpy", "pandas"],
"timeout": 10000,
"saveOutputFiles": true
}
}
오류 처리
서버는 강력한 오류 처리 기능을 제공합니다.
- HTTP 상태 코드가 포함된 자세한 오류 메시지
- API 키 검증
- Zod 스키마를 사용한 입력 검증
- 설명 메시지를 통한 네트워크 오류 처리
오류 응답 예:
{
"content": [
{
"type": "text",
"text": "Error: Failed to fetch YouTube transcript: 404 Not Found"
}
],
"isError": true
}
개발
# Install dependencies
npm install
# Build
npm run build
특허
MIT 라이센스 - 자세한 내용은 라이센스 파일을 참조하세요.