shehdrbs123/mcp-image-crawler
If you are the rightful owner of mcp-image-crawler and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP Image Crawler is a Node.js-based server that collects royalty-free images from the web using the Model Context Protocol, providing direct URLs for HTML usage.
MCP Image Crawler
Node.js ๊ธฐ๋ฐ MCP(Model Context Protocol) ์๋ฒ๋ก, CC0, CC BY ๋ฑ ํ์ฉ ๊ฐ๋ฅํ ๋ผ์ด์ ์ค์ ๋ก์ดํฐ ํ๋ฆฌ ์ด๋ฏธ์ง๋ฅผ ์น ํฌ๋กค๋ง์ผ๋ก ์์งํ๊ณ HTML์์ ์ง์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ด๋ฏธ์ง URL์ ์ ๊ณตํฉ๋๋ค.
๐ ์ฃผ์ ํน์ง
- ์ค๋ฆฌ์ ํฌ๋กค๋ง: robots.txt ์ค์, ์ ์ ํ ์์ฒญ ๊ฐ๊ฒฉ ์ ์ง
- ๋ผ์ด์ ์ค ๊ฒ์ฆ: CC0, CC BY, Pixabay License ๋ฑ ํ์ฉ ๋ผ์ด์ ์ค๋ง ์์ง
- ์ง์ ์ด๋ฏธ์ง URL: HTML
<img>
ํ๊ทธ์์ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์์ ์ ์ธ URL ์ ๊ณต - ์๋ ์ถ์ฒ ํ๊ธฐ: ๋ผ์ด์ ์ค๋ณ ์ ์ ํ attribution ์๋ ์์ฑ
- ๋ค์ค ์์ค ์ง์: Wikimedia Commons, Pixabay, StockVault ๋ฑ
๐ ๋น ๋ฅธ ์์
์ค์น
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/shehdrbs123/mcp-image-crawler.git
cd mcp-image-crawler
# ์์กด์ฑ ์ค์น
npm install
# ํ๊ฒฝ ๋ณ์ ์ค์
cp .env.example .env
# .env ํ์ผ์ ํธ์งํ์ฌ ํ์ํ ์ค์ ์กฐ์
# ์๋ฒ ์์
npm start
ํ๊ฒฝ ๋ณ์ ์ค์
ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค:
1๋จ๊ณ: ํ๊ฒฝ ํ์ผ ์์ฑ
cp .env.example .env
2๋จ๊ณ: ์ค์ ๋ณ๊ฒฝ
.env
ํ์ผ์ ํธ์งํ์ฌ ํ์์ ๋ฐ๋ผ ๋ค์ ์ค์ ๋ค์ ์กฐ์ ํ์ธ์:
๐ง ๊ธฐ๋ณธ ์๋ฒ ์ค์
# MCP ์๋ฒ ๊ธฐ๋ณธ ์ ๋ณด
MCP_SERVER_NAME=mcp-image-crawler
MCP_SERVER_VERSION=1.0.0
SERVER_PORT=3000
๐ฐ๏ธ ํฌ๋กค๋ง ๋์ ์ค์
# ์์ฒญ ๊ฐ ๋๊ธฐ ์๊ฐ (๋ฐ๋ฆฌ์ด) - ์ค๋ฆฌ์ ํฌ๋กค๋ง์ ์ํด ์ค์!
DEFAULT_REQUEST_DELAY=2000
# ๋์ ์คํ ์์ฒญ ์ - ์๋ฒ ๋ถํ ๋ฐฉ์ง
MAX_CONCURRENT_REQUESTS=2
# ์์ฒญ ํ์์์ (๋ฐ๋ฆฌ์ด)
REQUEST_TIMEOUT=30000
# ์คํจ ์ ์ฌ์๋ ํ์
MAX_RETRIES=3
๐ฆ ์๋ ์ ํ ์ค์
# ๋ถ๋น ์ต๋ ์์ฒญ ์
RATE_LIMIT_REQUESTS_PER_MINUTE=30
# ๋ฒ์คํธ ์์ฒญ ํ์ฉ ์
RATE_LIMIT_BURST=5
๐ User Agent ์ค์
# ์น์ฌ์ดํธ์์ ํฌ๋กค๋ฌ๋ฅผ ์๋ณํ ์ ์๋๋ก ๋ช
ํํ User Agent ์ค์
USER_AGENT=Mozilla/5.0 (compatible; MCPImageCrawler/1.0; +https://github.com/shehdrbs123/mcp-image-crawler)
๐ ๋ก๊น ์ค์
# ๋ก๊ทธ ๋ ๋ฒจ: debug, info, warn, error
LOG_LEVEL=info
# ๋ก๊ทธ ํฌ๋งท: json, text
LOG_FORMAT=json
# ๋ก๊ทธ ํ์ผ ๊ฒฝ๋ก
LOG_FILE=logs/crawler.log
๐ผ๏ธ ์ด๋ฏธ์ง ๊ฒ์ฆ ์ค์
# ์ต์ ์ด๋ฏธ์ง ํด์๋
MIN_IMAGE_WIDTH=800
MIN_IMAGE_HEIGHT=600
# ์ต๋ ํ์ผ ํฌ๊ธฐ (MB)
MAX_IMAGE_SIZE_MB=10
# ์ง์ํ๋ ์ด๋ฏธ์ง ํฌ๋งท
SUPPORTED_FORMATS=jpg,jpeg,png,webp,svg
โ๏ธ ๋ผ์ด์ ์ค ํํฐ๋ง
# ํ์ฉํ ๋ผ์ด์ ์ค ์ ํ (์ผํ๋ก ๊ตฌ๋ถ)
ALLOWED_LICENSES=CC0,CC BY,CC BY-SA,Pixabay License
# ์ถ์ฒ ํ๊ธฐ ํ์ ์ฌ๋ถ
REQUIRE_ATTRIBUTION=false
# ์์
์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ด๋ฏธ์ง๋ง ์์ง
COMMERCIAL_USE_ONLY=true
๐ ์ฌ์ดํธ๋ณ URL ์ค์
# Wikimedia Commons
WIKIMEDIA_BASE_URL=https://commons.wikimedia.org
WIKIMEDIA_SEARCH_URL=https://commons.wikimedia.org/w/api.php
# Pixabay
PIXABAY_BASE_URL=https://pixabay.com
PIXABAY_SEARCH_URL=https://pixabay.com/images/search
# StockVault
STOCKVAULT_BASE_URL=https://www.stockvault.net
STOCKVAULT_SEARCH_URL=https://www.stockvault.net/search
๐ ์บ์ ์ค์ (์ ํ์ฌํญ)
# ์บ์ ์ฌ์ฉ ์ฌ๋ถ
ENABLE_CACHE=false
# ์บ์ ์ ์ง ์๊ฐ (์ด)
CACHE_TTL=3600
# ์ต๋ ์บ์ ํญ๋ชฉ ์
CACHE_MAX_SIZE=1000
ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ ํ
๐ฏ ์ถ์ฒ ์ค์ (์ผ๋ฐ ์ฌ์ฉ)
DEFAULT_REQUEST_DELAY=2000
MAX_CONCURRENT_REQUESTS=2
RATE_LIMIT_REQUESTS_PER_MINUTE=30
LOG_LEVEL=info
MIN_IMAGE_WIDTH=800
MIN_IMAGE_HEIGHT=600
COMMERCIAL_USE_ONLY=true
โก ๋น ๋ฅธ ํ ์คํธ์ฉ ์ค์
DEFAULT_REQUEST_DELAY=1000
MAX_CONCURRENT_REQUESTS=3
RATE_LIMIT_REQUESTS_PER_MINUTE=60
LOG_LEVEL=debug
๐ก๏ธ ๋ณด์์ /์์ ํ ์ค์
DEFAULT_REQUEST_DELAY=3000
MAX_CONCURRENT_REQUESTS=1
RATE_LIMIT_REQUESTS_PER_MINUTE=20
REQUEST_TIMEOUT=45000
โ ๏ธ ์ฃผ์์ฌํญ:
DEFAULT_REQUEST_DELAY
๋ฅผ ๋๋ฌด ๋ฎ๊ฒ ์ค์ ํ๋ฉด ์น์ฌ์ดํธ์์ ์ฐจ๋จ๋ ์ ์์ต๋๋คMAX_CONCURRENT_REQUESTS
๋ฅผ ๋์ด๋ฉด ๋น ๋ฅด์ง๋ง ์๋ฒ ๋ถํ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค- ๋ผ์ด์ ์ค ์ค์ ์ ๋ณ๊ฒฝํ ๋๋ ๋ฒ์ ์๊ตฌ์ฌํญ์ ํ์ธํ์ธ์
๐ง MCP ์ค์ ๋ฐ ์ฌ์ฉ๋ฒ
Claude Desktop ์ค์
์ด ๋๊ตฌ๋ฅผ Claude Desktop์์ ์ฌ์ฉํ๋ ค๋ฉด MCP ์ค์ ์ด ํ์ํฉ๋๋ค:
1๋จ๊ณ: Claude Desktop MCP ์ค์ ํ์ผ ์ฐพ๊ธฐ
Windows:
%APPDATA%\Claude\claude_desktop_config.json
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
2๋จ๊ณ: ์ค์ ํ์ผ ํธ์ง
์ค์ ํ์ผ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ์ธ์:
{
"mcpServers": {
"image-crawler": {
"command": "node",
"args": ["C:/path/to/mcp-image-crawler/src/server.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}
โ ๏ธ ์ค์:
C:/path/to/mcp-image-crawler/src/server.js
๋ฅผ ์ค์ ํ๋ก์ ํธ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํ์ธ์!
3๋จ๊ณ: Claude Desktop ์ฌ์์
์ค์ ์ ์ ์ฅํ ํ Claude Desktop์ ์์ ํ ์ข ๋ฃํ๊ณ ๋ค์ ์์ํ์ธ์.
4๋จ๊ณ: ์ฐ๊ฒฐ ํ์ธ
Claude์์ ๋ค์๊ณผ ๊ฐ์ด ํ ์คํธํด๋ณด์ธ์:
"์ด๋ฏธ์ง ํฌ๋กค๋ฌ๊ฐ ์ ๋๋ก ์๋ํ๋์ง ํ
์คํธํด์ค"
"๊ณ ์์ด ์ฌ์ง 3๊ฐ ์ฐพ์์ค"
์ฌ์ฉ ์์
MCP๊ฐ ์ ์์ ์ผ๋ก ์ค์ ๋๋ฉด Claude์์ ์์ฐ์ด๋ก ์์ฒญํ ์ ์์ต๋๋ค:
๐ ์ด๋ฏธ์ง ๊ฒ์
"ํ๋ ์ ํ
์ด์
์ฉ ๋น์ฆ๋์ค ์ด๋ฏธ์ง 5๊ฐ ์ฐพ์์ค"
"๊ณ ํด์๋ ์์ฐ ํ๊ฒฝ ์ฌ์ง์ ๊ฒ์ํด์ค"
"CC0 ๋ผ์ด์ ์ค์ ์์ ์ฌ์ง๋ค์ ์ฐพ์์ค"
โ URL ๊ฒ์ฆ
"์ด ์ด๋ฏธ์ง URL๋ค์ด ์ ํจํ์ง ํ์ธํด์ค: [URL1, URL2]"
"๋ชจ๋ ์ด๋ฏธ์ง๊ฐ ์ ๋๋ก ๋ก๋๋๋์ง ์ฒดํฌํด์ค"
๐ ๋ฉํ๋ฐ์ดํฐ ์ถ์ถ
"์ด ์ด๋ฏธ์ง์ ๋ผ์ด์ ์ค ์ ๋ณด๋ฅผ ์๋ ค์ค"
"ํด์๋์ ํ์ผ ํฌ๊ธฐ๋ฅผ ํ์ธํด์ค"
"์ดํธ๋ฆฌ๋ทฐ์
์ ์๋์ผ๋ก ์์ฑํด์ค"
๐ฏ ์ง์ ์ฌ์ดํธ
์ฌ์ดํธ | ๋ผ์ด์ ์ค | ์์ ์ ์ฌ์ฉ | ์ถ์ฒ ํ๊ธฐ | ์ํ |
---|---|---|---|---|
Wikimedia Commons | CC0, CC BY, CC BY-SA | โ | ์ ํ์ /ํ์ | โ ํ์ฑ |
Pixabay | Pixabay License | โ | ์ ํ์ | โ ํ์ฑ |
StockVault | ๋ค์ํ ๋ฌด๋ฃ ๋ผ์ด์ ์ค | โ | ์ ํ์ | โ ํ์ฑ |
๐ก๏ธ ์ค๋ฆฌ์ ํฌ๋กค๋ง ์์น
- robots.txt ์ค์: ๋ชจ๋ ์ฌ์ดํธ์ robots.txt ์ฌ์ ํ์ธ
- ์์ฒญ ๊ฐ๊ฒฉ ์ ์ง: ์ฌ์ดํธ๋น ์ต์ 1-2์ด ๊ฐ๊ฒฉ
- ๋ช ํํ ์๋ณ: User-Agent ํค๋์ ํ๋ก์ ํธ ์ ๋ณด ํฌํจ
- ๋ถํ ์ ํ: ๋์ ์์ฒญ ์ ์ ํ ๋ฐ ๋ฐฑ์คํ ์ ๋ต
- ๋ผ์ด์ ์ค ์กด์ค: ํ์ฉ๋ ๋ผ์ด์ ์ค์ ์ด๋ฏธ์ง๋ง ์์ง
๐ ๋ฌธ์ ํด๊ฒฐ
ํ๊ฒฝ ๋ณ์ ๊ด๋ จ ๋ฌธ์
Q: .env ํ์ผ์ด ๋ก๋๋์ง ์์์ A: ๋ค์์ ํ์ธํด์ฃผ์ธ์:
.env
ํ์ผ์ด ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ ์๋์ง ํ์ธ- ํ์ผ ๊ถํ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธ
- ํ๊ฒฝ ๋ณ์ ์ด๋ฆ์ ๊ณต๋ฐฑ์ด๋ ํน์๋ฌธ์๊ฐ ์๋์ง ํ์ธ
Q: ํฌ๋กค๋ง์ด ๋๋ฌด ๋๋ ค์
A: .env
์์ ๋ค์ ๊ฐ๋ค์ ์กฐ์ ํด๋ณด์ธ์:
DEFAULT_REQUEST_DELAY=1000 # 2000์์ 1000์ผ๋ก ๊ฐ์
MAX_CONCURRENT_REQUESTS=3 # 2์์ 3์ผ๋ก ์ฆ๊ฐ
Q: ์น์ฌ์ดํธ์์ ์ฐจ๋จ๋นํ๋ ๊ฒ ๊ฐ์์ A: ๋ ๋ณด์์ ์ธ ์ค์ ์ ์ฌ์ฉํ์ธ์:
DEFAULT_REQUEST_DELAY=3000 # ๋๊ธฐ ์๊ฐ ์ฆ๊ฐ
MAX_CONCURRENT_REQUESTS=1 # ๋์ ์์ฒญ ์ ๊ฐ์
MCP ์ฐ๊ฒฐ ๋ฌธ์
Q: Claude Desktop์์ ์ด๋ฏธ์ง ํฌ๋กค๋ฌ๋ฅผ ์ธ์ํ์ง ๋ชปํด์ A: ๋ค์์ ํ์ธํด์ฃผ์ธ์:
claude_desktop_config.json
ํ์ผ ๊ฒฝ๋ก๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธ- JSON ๋ฌธ๋ฒ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธ (์ปด๋ง, ์ค๊ดํธ ๋ฑ)
args
๋ฐฐ์ด์ ์ ๋ ๊ฒฝ๋ก๊ฐ ์ ํํ์ง ํ์ธ- Claude Desktop ์์ ์ฌ์์
Q: "MCP server failed to start" ์ค๋ฅ๊ฐ ๋์ A: ๋ค์์ ์๋ํด๋ณด์ธ์:
# ์๋์ผ๋ก ์๋ฒ ํ
์คํธ
cd mcp-image-crawler
node src/server.js
Q: ๊ฒฝ๋ก๋ฅผ ์ด๋ป๊ฒ ์ค์ ํด์ผ ํ๋์? A: ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ธ์:
- Windows:
"C:/Users/YourName/mcp-image-crawler/src/server.js"
- macOS/Linux:
"/Users/YourName/mcp-image-crawler/src/server.js"
๐ ๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์คํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ์ผ์ ์ฐธ์กฐํ์ธ์.
Made with โค๏ธ for the MCP community