ðŒïž Unsplash Smart MCP Server
ããŒã«ã«ðŒïž Unsplash Smart MCP Server ã«ã€ããŠ
Unsplash Smart MCP Server ã¯ãAI ãšãŒãžã§ã³ãã Unsplash ã®ã¹ããã¯ãã©ããæ€çŽ¢ãéžæãååŸã§ãã FastMCP ãµãŒããŒã§ããã³ãŒãã£ã³ã°äœæ¥ã®äžã§ç»åãå¿ èŠãªéçºè åãã§ãstock_photo ããŒã«äžã€ã§ç»åååŸã®æµããæ±ããŸããã¯ã¬ãžããæ å ±ã¯ããŒã«ã«ã«èšé²ãããŸãã
äž»ãªæ©èœ
- 01èªç¶èšèªã«ããç»åæ€çŽ¢
- 02ã¯ãŒã¯ãããŒå šäœãæ±ã stock_photo ããŒã«
- 03å¶åŸ¡ãããããŠã³ããŒãçšã® URL ååŸ
- 04ãã¬ãŒã ã¯ãŒã¯ã«å¿ããç»åã®æŽç
- 05ããŒã«ã«ã®ã¯ã¬ãžããããŒã¿ããŒã¹ãšããŒãžçæ
掻çšã·ãŒã³
- 01UI ã¢ãã¯ã¢ãããžã®ãã¬ãŒã¹ãã«ããŒç»åã®é 眮
- 02ããã¥ã¡ã³ããããã°èšäºåãã®ç»åæ€çŽ¢
- 03ç»åã®ããŠã³ããŒãæã«æ®åœ±è ã®ã¯ã¬ãžãããèšé²
MCP 察å¿
æ¬ãããžã§ã¯ã㯠MCP ãµãŒããŒã§ãããCursor ã® Claude ãªã©ã® MCP ã¯ã©ã€ã¢ã³ãã« stock_photo ããŒã«ãå ¬éããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
ðŒïž Unsplash Smart MCP Server
æéããããã«ãAI ãšãŒãžã§ã³ãã«çŸããããžã¥ã¢ã«ãã
AI ãšãŒãžã§ã³ãããã€ã³ããªãžã§ã³ããªã³ã³ããã¹ãèªèãšèªååž°å±ç®¡çã«ãããUnsplash ã®ããå質ã®ã¹ããã¯ãã©ããã·ãŒã ã¬ã¹ã«æ€çŽ¢ãæšèŠãæäŸã§ãã匷å㪠FastMCP ãµãŒããŒã§ãã
ð ãã® Unsplash çµ±åãéžã¶çç±
ããžã¥ã¢ã«ã³ã³ãã³ãçµ±åã®åéã«ãããŠããã® Unsplash Smart MCP Server ã¯ãAI ãæŽ»çšããç»åååŸã®æ±ºå®çãœãªã¥ãŒã·ã§ã³ãšããŠéç«ã£ãŠããŸãã
- ð§ AI ãšãŒãžã§ã³ãåãã«æé©åïŒCursor äžã® Claude ãªã©ã® AI ãšãŒãžã§ã³ãåãã«æ§ç¯ãããèªç¶èšèªã§ã®ç»åãªã¯ãšã¹ããå¹çåããŸã
- ð ã³ã³ããã¹ããèªèããç»åéžæïŒææ§ãªãªã¯ãšã¹ããã€ã³ããªãžã§ã³ãã«è§£éããæœè±¡çãªããã³ããããã§ãé¢é£æ§ã®é«ãç»åãæäŸããŸã
- â¡ åäžããŒã«ã«ããå¹çåïŒç»åã¯ãŒã¯ãããŒå
šäœãåŠçããçµ±åããã
stock_photoããŒã«ã«ãããããŒã«ã®ä¹±ç«ãé²ããŸã - ð ãªãœãŒã¹ã®æé©åïŒURL ãåªå ããæ¹åŒã«ãããæè»æ§ãä¿ã¡ãªãã垯åå¹ ãšã¹ãã¬ãŒãžãç¯çŽããŸã
- â åž°å±è¡šç€ºãèªååïŒéçºè ã®äœæ¥ãäžåå¿ èŠãšãããUnsplash ã®å©çšèŠçŽãžã®æºæ ãå®çŸããŸã
- ð ãããžã§ã¯ããèªèããæŽçïŒãããžã§ã¯ãæ§æïŒNext.jsãReactãVue ãªã©ïŒã«åºã¥ããŠç»åãã€ã³ããªãžã§ã³ãã«æŽçããŸã
- ð§© ã·ãŒã ã¬ã¹ãªçµ±åïŒæå°éã®ã»ããã¢ããã§ãæ¢åã®ã¯ãŒã¯ãããŒãšæå€§éã«äºææ§ãä¿ã€ããèšèšãããŠããŸã
âš æ¯é¡ãªãæ©èœ
AI ãšãŒãžã§ã³ãéçºè åã
- ã³ã³ããã¹ãã«å¿ããã¹ããŒãæ€çŽ¢ïŒèªç¶èšèªã§ãªã¯ãšã¹ãããŠãæé©ãªç»åãèŠã€ããããŸã
- 被åäœãèªåéžæïŒç®çã®èª¬æãããAI ãæé©ãªç»åã®è¢«åäœã倿ããŸã
- æå³ã«åºã¥ãçµæïŒããŒã¯ãŒãã ãã§ãªãããã®èæ¯ã«ããæå³ã«ãåèŽããç»åãååŸã§ããŸã
- ã·ãŒã ã¬ã¹ãªãšãŒãžã§ã³ãçµ±åïŒCursor äžã® Claude ãã¯ãããã»ãã® MCP 察å¿ãšãŒãžã§ã³ãã§ãããã«å©çšã§ããŸã
ãããžã§ã¯ãã®å¹çå
- 2 段éã®ã¯ãŒã¯ãããŒïŒå¶åŸ¡ãããããŠã³ããŒãã«äœ¿ãã URL ãååŸã§ããæš©éã®åé¡ãäžèŠãªã¹ãã¬ãŒãžäœ¿çšãåé¿ããŸã
- ãããžã§ã¯ããèªèãããã¡ã€ã«ç®¡çïŒãã¬ãŒã ã¯ãŒã¯ã®èŠçŽã«åºã¥ããŠç»åãèªåæŽçããŸã
- ãã£ã¬ã¯ããªãã€ã³ããªãžã§ã³ãã«äœæïŒãããžã§ã¯ãã®çš®é¡ã«åºã¥ããŠé©åãªãã©ã«ããŒæ§æãäœæããŸã
- 段éçãªæ¡åŒµïŒææ©ããããã¿ã€ããããšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ãŸã§ãããããèŠæš¡ã®ãããžã§ã¯ãã§å©çšã§ããŸã
ã³ã³ãã©ã€ã¢ã³ã¹é¢ã®å®å¿
- åž°å±è¡šç€ºãå
æ¬çã«ç®¡çïŒ
- ãã¹ãŠã®ç»åã®äœ¿çšç¶æ³ãããŒã«ã«ã®åž°å±ããŒã¿ããŒã¹ã§èšé²ããŸã
- åçå®¶ã®ã¡ã¿ããŒã¿ãç»åã«èªåçã«åã蟌ã¿ãŸãïŒEXIFãIPTCãXMPïŒ
- è€æ°ã®åœ¢åŒã§åž°å±è¡šç€ºããŒãžãã¯ã³ã¯ãªãã¯ã§çæããŸã
- åž°å±ããŒã¿åãã®å æ¬ç㪠API ãæäŸããŸã
ð ïž ã€ã³ã¹ããŒã«
åææ¡ä»¶
- Node.js 18.x 以äž
- Unsplash API ã¢ã¯ã»ã¹ããŒïŒãã¡ãããååŸïŒ
ããŒã«ã«ã€ã³ã¹ããŒã«ïŒæšå¥šïŒ
- ãªããžããªãã¯ããŒã³ããŸãïŒ
git clone https://github.com/drumnation/unsplash-smart-mcp-server.git
cd unsplash-smart-mcp-server
- äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŸãïŒ
npm install
-
Cursor ã® MCP èšå®ãæ§æããŸãïŒ
- macOSïŒ
~/.cursor/mcp.jsonãç·šéããŸã - WindowsïŒ
%USERPROFILE%\.cursor\mcp.jsonãç·šéããŸã - LinuxïŒ
~/.cursor/mcp.jsonãç·šéããŸã
- macOSïŒ
-
次ã®èšå®ã远å ããŸãïŒ
{
"servers": {
"unsplash": {
"command": "npx",
"args": ["tsx", "src/server.ts"],
"cwd": "/absolute/path/to/unsplash-smart-mcp-server",
"env": {
"UNSPLASH_ACCESS_KEY": "your_api_key_here"
}
}
}
}
-
次ã®å 容ã眮ãæããŸãïŒ
/absolute/path/to/unsplash-smart-mcp-serverããªããžããªãã¯ããŒã³ããå®éã®ãã¹ã«çœ®ãæããŸãyour_api_key_hereã Unsplash API ããŒã«çœ®ãæããŸã
-
ãã¡ã€ã«ãä¿åããŠãCursor ãåèµ·åããŸãã
éèŠïŒ å€ãã® MCP ãµãŒããŒãšã¯ç°ãªãããã®ãµãŒããŒã§ã¯ããã»ã¹éã®çŽæ¥ãã€ããå¿ èŠã§ããFastMCP ã® I/O åŠçæ¹æ³ã®ãããTCP ããŒãçµç±ã npm ããçŽæ¥ã¢ã¯ã»ã¹ããããšã¯ã§ããŸãããããŒã«ã«ã€ã³ã¹ããŒã«ãæã確å®ãªæ¹æ³ã§ãã
Cursor CLI ãäœ¿ãæ¹æ³
Cursor ã® CLI ã䜿çšããå ŽåïŒ
claude mcp add unsplash npx tsx /path/to/unsplash-smart-mcp-server/src/server.ts --cwd /path/to/unsplash-smart-mcp-server
claude mcp config set unsplash UNSPLASH_ACCESS_KEY=your_api_key_here
ãã¹ãš API ããŒãå®éã®å€ã«çœ®ãæããŠãã ããã
Docker ãäœ¿ãæ¹æ³ïŒæã確å®ãªæ¹æ³ïŒ
- ãªããžããªãã¯ããŒã³ããŸãïŒ
git clone https://github.com/drumnation/unsplash-smart-mcp-server.git
cd unsplash-smart-mcp-server
docker-compose.ymlãã¡ã€ã«ãäœæããŸãïŒ
services:
unsplash-mcp:
build: .
image: unsplash-mcp-server
restart: always
stdin_open: true
tty: true
environment:
- UNSPLASH_ACCESS_KEY=your_api_key_here
- ã³ã³ããããã«ãããŠèµ·åããŸãïŒ
docker-compose up -d
-
Cursor ã® MCP èšå®ãæ§æããŸãïŒ
- macOSïŒ
~/.cursor/mcp.jsonãç·šéããŸã - WindowsïŒ
%USERPROFILE%\.cursor\mcp.jsonãç·šéããŸã - LinuxïŒ
~/.cursor/mcp.jsonãç·šéããŸã
- macOSïŒ
-
次ã®èšå®ã远å ããŸãïŒ
{
"servers": {
"unsplash": {
"command": "docker",
"args": ["exec", "-i", "unsplash-mcp-unsplash-mcp-1", "tsx", "src/server.ts"],
"env": {}
}
}
}
- ãã¡ã€ã«ãä¿åããŠãCursor ãåèµ·åããŸãã
ãã®èšå®ã«ãããæ¬¡ã®ããšãå¯èœã«ãªããŸãïŒ
- Docker ã®èµ·åæã«ãµãŒããŒãèªåçã«èµ·åããŸã
- ã¯ã©ãã·ã¥ããå ŽåããµãŒããŒãåèµ·åããŸã
- ã¿ãŒããã«ãŠã£ã³ããŠãéããã«ããã¯ã°ã©ãŠã³ãã§å®è¡ãããŸã
- Cursor ãžã®å®å®ããæ¥ç¶ãæäŸãããŸã
Smithery ãäœ¿ãæ¹æ³ïŒã¯ã©ãŠããããã€ïŒ
ã¯ã©ãŠãã«ãããã€ããå Žåã¯ãSmithery ã䜿çšã§ããŸãïŒ
- Smithery çµç±ã§ Cursor ã«ãµãŒããŒãã€ã³ã¹ããŒã«ããŸãïŒ
npx @smithery/cli install @drumnation/unsplash-smart-mcp-server --client cursor --key your_api_key_here
- ãŸãã¯ãSmithery.ai ã«ãã°ã€ã³ããŠããŠã§ãã€ã³ã¿ãŒãã§ãŒã¹ãããããã€ã§ããŸãã
Windows ãŠãŒã¶ãŒãžã®æ³šæïŒ Smithery ã§ã®ãããã€ã«ã¯ãWindows ãšã®äºææ§ã確ä¿ããããã®ç¹å¥ãªåŠçãå«ãŸããŠããŸãã
詳ããæé ãšãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«ã€ããŠã¯ãSmithery ãããã€ã¬ã€ããåç §ããŠãã ããã
ð§© AI ãšãŒãžã§ã³ããšã®çµ±å
Cursor ã§ Claude ã䜿ãæé
Unsplash Smart MCP Server ã¯ãAI ãšãŒãžã§ã³ããéããç»åååŸãæè»œã§çŽæçã«è¡ããããã«èšèšãããŠããŸãïŒ
- ãªã¯ãšã¹ããéå§ããïŒèªç¶ãªèšèã§ Claude ã«ç»åãäŸé Œããã ãã§ã
- AI ã«ããè§£éïŒClaude ãããŒãºãçè§£ããæé©åããããã©ã¡ãŒã¿ãŒã§
stock_photoããŒã«ãåŒã³åºããŸã - ç»åãã¹ããŒãã«éžæããïŒãµãŒããŒãæèãè§£éããæãé¢é£æ§ã®é«ãç»åãèŠã€ããŸã
- åè£ãæç€ºããïŒClaude ãæé©ãªåè£ãšããŠã³ããŒãã³ãã³ããæç€ºããŸã
- ã·ãŒã ã¬ã¹ã«ããŠã³ããŒãããïŒææ¡ãããã³ãã³ããå®è¡ãããšãå¿ èŠãªå Žæã«ç»åãä¿åãããŸã
- åž°å±æ å ±ãèªåçã«èšé²ããïŒãã¹ãŠã®åž°å±æ å ±ãä¿åãããå¿ èŠãªãšãã«ãã€ã§ãåç §ã§ããŸã
ãã®ããã»ã¹ã«ãããåŸæ¥ã®æ¬¡ã®ãããªã¯ãŒã¯ãããŒãäžèŠã«ãªããŸãïŒ
Unsplash ãæåã§æ€çŽ¢ããäœçŸãã®æ€çŽ¢çµæãã¹ã¯ããŒã«ããç»åãé©åœãªå Žæã«ããŠã³ããŒããããã¡ã€ã«ãæ£ãããããžã§ã¯ããã©ã«ããŒã«ç§»åããåž°å±æ å ±ãæåã§ç®¡çããåž°å±æ å ±ã®ããŒãžãäœæãã
AI ãšãŒãžã§ã³ãåãããã³ããã®äŸ
次ã®ãããªèªç¶ãªèšèã®ããã³ããã䜿ã£ãŠãCursor ã® Claude ã«ç»åãäŸé Œã§ããŸãïŒ
"Find a professional image for a tech startup landing page hero section"
ðª Windows ãšã®äºææ§
Windows ã䜿çšããŠããŠãCursor ã§ MCP ãµãŒããŒãå®è¡ããéã«ãClient closedããšã©ãŒãçºçããå Žåã¯ã次ã®ç¹å¥ãªèšå®æé ã«åŸã£ãŠãã ããïŒ
Windows åºæã® MCP èšå®
.cursor ãã£ã¬ã¯ããªïŒé垞㯠%USERPROFILE%\.cursor\mcp.jsonïŒã« mcp.json ãšããååã®ãã¡ã€ã«ãäœæããæ¬¡ã®ããããã®èšå®ãèšè¿°ããŸãïŒ
ãªãã·ã§ã³ 1ïŒNode ãçŽæ¥å®è¡ããïŒæšå¥šïŒ
{
"mcpServers": {
"stock_photo": {
"command": "node",
"args": ["./node_modules/.bin/tsx", "path/to/unsplash-mcp/src/server.ts"],
"disabled": false,
"env": {
"UNSPLASH_ACCESS_KEY": "your_api_key_here"
},
"shell": false
}
}
}
ãªãã·ã§ã³ 2ïŒPowerShell ã䜿çšãã
{
"mcpServers": {
"stock_photo": {
"command": "powershell",
"args": ["-Command", "npx tsx path/to/unsplash-mcp/src/server.ts"],
"disabled": false,
"env": {
"UNSPLASH_ACCESS_KEY": "your_api_key_here"
}
}
}
}
Windows ãšã®äºææ§ã«é¢ãã詳现ãªããã¥ã¡ã³ãã«ã€ããŠã¯ãWindows äºææ§ã¬ã€ããåç §ããŠãã ããã
ð ïž API ãªãã¡ã¬ã³ã¹
URL ãã¡ãŒã¹ãã¢ãããŒãïŒè³¢ãéžæ
åœç€Ÿã®ã¢ãŒããã¯ãã£ã§ã¯ãããã€ãã®éèŠãªçç±ãããç»åãçŽæ¥åã蟌ãã®ã§ã¯ãªããURL ãã¡ãŒã¹ãã®ã¢ãããŒããæ¡çšããŠããŸãã
- ã¹ãã¬ãŒãžå¹çïŒAI ãšãŒãžã§ã³ãã倧ããªãã€ããªããŒã¿ãã³ã³ããã¹ãã«äžå¿ èŠã«ä¿åããã®ãé²ããŸã
- 垯åå¹ ã®ç¯çŽïŒãµãŒãã¹éã®ããŒã¿è»¢éãæžãããå¿çæéãççž®ããŸã
- é çœ®ã®æè»æ§ïŒéçºè ãå¿ èŠãªå Žæã«ç»åãããŠã³ããŒãã§ããããã«ããŸã
- æš©é管çïŒå¶éãããç°å¢ã§ã®ãã¡ã€ã«ã·ã¹ãã æš©éã®åé¡ãåé¿ããŸã
- ã¯ãŒã¯ãããŒãšã®çµ±åïŒæ¢åã®éçºãã€ãã©ã€ã³ã«ã·ãŒã ã¬ã¹ã«çµ±åããŸã
ãã®æŠç¥ã«ãããAI ãšãŒãžã§ã³ãã¯èªèº«ã®ç°å¢äžã®å¶çŽã«çžãããããšãªãããããžã§ã¯ãã®ã³ã³ããã¹ãã«åºã¥ããŠæé©ãªããŠã³ããŒãå ãã€ã³ããªãžã§ã³ãã«ææ¡ã§ããŸãã
ããŒã«ã®éå°ãªåŒã³åºããš API åŒã³åºããæå°éã«æãã
ç»åã®æ€çŽ¢ãçµã蟌ã¿ãããŠã³ããŒããåž°å±è¡šç€ºã«è€æ°åã®ããŒã«åŒã³åºããå¿ èŠãªä»ã®ãœãªã¥ãŒã·ã§ã³ãšã¯ç°ãªããåœç€Ÿã®ãµãŒããŒã¯æ¬¡ã®æ©èœãåããŠããŸãã
- ç»åã®ã¯ãŒã¯ãããŒå
šäœãåäžã®
stock_photoããŒã«ã«çµ±å - ããé©åãªçµã蟌ã¿ãå¯èœã«ããããããããããå€ãã®ç»åããªã¯ãšã¹ãããŠçµæã®ååŸãæé©å
- ãšãŒãžã§ã³ããšãµãŒãã¹éã®ãã³ãã³ã®ãããªããåããè§£æ¶
- ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã®åœ¢åŒãç°¡çŽ åãããšãŒãžã§ã³ãã®ããŒã¯ã³äœ¿çšéãåæž
ãã®èšèšã«ãããAPI åŒã³åºããšããŒã«ã®å®è¡åæ°ãå€§å¹ ã«æžããçµæã®ååŸãéããªããéçšã³ã¹ããäœäžããŸãã
ð èªååž°å±è¡šç€ºãšã³ã³ãã©ã€ã¢ã³ã¹
Unsplash ã®å©çšèŠçŽïŒç°¡åã«ã³ã³ãã©ã€ã¢ã³ã¹ãéµå®
Unsplash ã®ç»åã䜿çšããã«ã¯ãå©çšèŠçŽãéµå®ããå¿ èŠããããŸããåœç€Ÿã®ãµãŒããŒããã®åŠçãèªååããŸãã
- åž°å±æ å ±ã®ååŸïŒç»åãããŠã³ããŒããããã³ã«ãæ®åœ±è ã®æ å ±ãèªåçã«ä¿åãããŸã
- ã¡ã¿ããŒã¿ã®åã蟌ã¿ïŒæ®åœ±è ã®è©³çްæ å ±ãç»åãã¡ã€ã«ã«çŽæ¥åã蟌ãŸããŸã
- åž°å±æ å ±ããŒã¿ããŒã¹ïŒããŒã«ã«ããŒã¿ããŒã¹ã«ããã¹ãŠã®ç»åã®äœ¿çšèšé²ãä¿åãããŸã
- åž°å±è¡šç€ºã®çæïŒçµã¿èŸŒã¿ããŒã«ã§ HTML ããã³ React ã®åž°å±è¡šç€ºã³ã³ããŒãã³ããäœæã§ããŸã
- API ã¢ã¯ã»ã¹ïŒä»»æã®ãããžã§ã¯ãã®åž°å±æ å ±ãååŸããããã®ã·ã³ãã«ãªãšã³ããã€ã³ããå©çšã§ããŸã
åœç€Ÿã® Unsplash Smart MCP Server ã䜿çšãããšã远å ã®æéããããã« Unsplash ã®èŠä»¶ãèªåçã«éµå®ã§ããŸãã
åž°å±æ å ±ç®¡çã·ã¹ãã
ãµãŒããŒã«ã¯ãå æ¬çãªåž°å±æ å ±ç®¡çã·ã¹ãã ãå«ãŸããŠããŸãã
// Retrieve attribution data for your project
const attributions = await fetch('http://localhost:3000/api/unsplash', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
method: 'get_attributions',
params: {
format: 'json', // Options: json, html, react
projectPath: '/path/to/your/project'
}
})
}).then(res => res.json());
// attributions contains complete data about every image used
API ã§ã¯ã次㮠3 çš®é¡ã®åž°å±è¡šç€ºãã¡ã€ã«ãçæã§ããŸãã
- JSONïŒã«ã¹ã¿ã å®è£ åãã®æ§é åããŒã¿
- HTMLïŒãŠã§ããµã€ãã®ããã¿ãŒãã¯ã¬ãžããæ¬ã«ããã«äœ¿ãã HTML ããŒãž
- ReactïŒææ°ã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ããçµã¿èŸŒãã React ã³ã³ããŒãã³ã
ðŒ éçºè ã®ã¯ãŒã¯ãããŒãžã®çµ±å
å®éã®ãŠãŒã¹ã±ãŒã¹
åœç€Ÿã® Unsplash Smart MCP Server ã¯ãéçºè ã®ã¯ãŒã¯ãããŒã«ã·ãŒã ã¬ã¹ã«çµ±åãããŸãã
UI éçº
- ã¢ãã¯ã¢ããã«é¢é£æ§ã®é«ããã¬ãŒã¹ãã«ããŒç»åãããã«é 眮
- ã³ã³ããŒãã³ãéã§ç»åã®å¯žæ³ãäžè²«ããŠç¶æ
- ãããžã§ã¯ãã®æ§æã«æ²¿ã£ãŠç»åãè«ççã«æŽç
ããã¥ã¡ã³ã
- 説æçšã®ç»åã远å ããŠæè¡ããã¥ã¡ã³ããå å®
- èŠæ ãã®ãããã¥ãŒããªã¢ã«ãã¬ã€ããäœæ
- ãã¹ãŠã®ããžã¥ã¢ã«ã¢ã»ããã«é©åãªåž°å±è¡šç€ºãç¶æ
ã³ã³ãã³ãäœæ
- ããã°èšäºãèšäºã«äœ¿ãç»åããã°ããæ€çŽ¢
- ãœãŒã·ã£ã«ã¡ãã£ã¢ã³ã³ãã³ãçšã®ããžã¥ã¢ã«ãçæ
- 補åããŒã±ãã£ã³ã°çšã«äžè²«æ§ã®ããç»åãå©çš
ã¢ããªã±ãŒã·ã§ã³éçº
- EC ãµã€ãã«ååç»åãé 眮
- èŠèŠçã«è±ããªãŠãŒã¶ãŒäœéšãäœæ
- ã»ã¯ã·ã§ã³ããšã«ç»åã³ã¬ã¯ã·ã§ã³ãåããŠç®¡ç
ãã¬ãŒã ã¯ãŒã¯å¥ã®æŽç
ç»åã¯ãããžã§ã¯ãã®çš®é¡ã«å¿ããŠèªåçã«æŽçãããŸãã
| ãã¬ãŒã ã¯ãŒã¯ | ããã©ã«ãã®ç»åãã¹ | 代æ¿ãã¹ |
|---|---|---|
| Next.js | /public/images/ | /public/assets/images/ |
| React | /src/assets/images/ | /assets/images/ |
| Vue | /src/assets/images/ | /public/images/ |
| Angular | /src/assets/images/ | /assets/images/ |
| Generic | /assets/images/ | ~/Downloads/stock-photos/ |
ð¥ ç«¶åãšã®å·®å¥å
Unsplash 飿ºãéžã¶çç±
| æ©èœ | Unsplash Smart MCP ãµãŒã㌠| ä»£æ¿ææ®µ |
|---|---|---|
| AI ãšãŒãžã§ã³ã飿º | â AI ãšãŒãžã§ã³ãã®ã¯ãŒã¯ãããŒåãã«å°çšèšèš | â éåžžããã©ã¡ãŒã¿ãŒãæåã§èšå®ããå¿ èŠããããŸã |
| ã³ã³ããã¹ãèªè | â ææ§ãªãªã¯ãšã¹ããè³¢ãè§£éããŸã | â æ£ç¢ºãªããŒã¯ãŒãã®äžèŽã«äŸåããŸã |
| ããŒã«ã®å¹çæ§ | â 1 ã€ã®ããŒã«ã§ã¯ãŒã¯ãããŒå šäœã«å¯Ÿå¿ããŸã | â å€ãã®å Žåãè€æ°ã®ããŒã«ãåå¥ã«äœ¿ãå¿ èŠããããŸã |
| åž°å±è¡šç€ºã®ç®¡ç | â è€æ°ã®åœ¢åŒã«å¯Ÿå¿ããå æ¬çãªã·ã¹ãã | â æåã§ã®è¿œè·¡ããŸãã¯åºæ¬çãªããã¹ãåºå |
| ãããžã§ã¯ãã®æŽç | â ãã¬ãŒã ã¯ãŒã¯ãèæ ®ãããã©ã«ããŒæ§æ | â æ±çšçãªæ¹æ³ã§ 1 ãæã«ããŠã³ããŒãããŸã |
| ã€ã³ã¹ããŒã«ã®è€éã | â ç°¡å㪠1 è¡ã®ã³ãã³ã | â å€ãã®å Žåãè€æ°ã®èšå®æé ãå¿ èŠã§ã |
| å¿çåœ¢åŒ | â é¢é£ããã³ã³ããã¹ããå«ã AI åãã«æé©åãããåœ¢åŒ | â 远å åŠçãå¿ èŠãªæ±çšç㪠JSON |
| ããŠã³ããŒãã®æè»æ§ | â URL ãåªå ããã€ã³ããªãžã§ã³ããªåè£ãæç€ºããŸã | â çŽæ¥ããŠã³ããŒãã®ã¿ããŸã㯠URL ã®ã¿ |
âïž èšå®
ç°å¢å€æ°
| 倿° | 説æ | ããã©ã«ã |
|---|---|---|
UNSPLASH_ACCESS_KEY | Unsplash API ã®ã¢ã¯ã»ã¹ã㌠| - |
PORT | ãµãŒããŒããªãã¹ã³ããããŒã | 3000 |
HOST | ãµãŒããŒã®ãã¹ã | localhost |
ATTRIBUTION_DB_PATH | åž°å±è¡šç€ºããŒã¿ããŒã¹ã®ä¿åå ãã¹ | ~/.unsplash-mcp |
ããŒã«ã®ãã©ã¡ãŒã¿ãŒ
stock_photo
| ãã©ã¡ãŒã¿ãŒ | å | 説æ | ããã©ã«ã |
|---|---|---|---|
query | string | æ€çŽ¢å¯Ÿè±¡ïŒæå®ãããŠããªãå Žå㯠AI ãéžæããŸãïŒ | - |
purpose | string | ç»åã®äœ¿çšå ŽæïŒäŸïŒããŒããŒãèæ¯ïŒ | - |
count | number | è¿ãç»åã®æ° | 1 |
orientation | string | åžæããåãïŒanyãlandscapeãportraitãsquareïŒ | any |
width | number | ãã¯ã»ã«åäœã®ç®æšå¹ | - |
height | number | ãã¯ã»ã«åäœã®ç®æšé«ã | - |
minWidth | number | æ€çŽ¢çµæãçµã蟌ãããã®æå°å¹ | - |
minHeight | number | æ€çŽ¢çµæãçµã蟌ãããã®æå°é«ã | - |
outputDir | string | åçã®ä¿åå ãã£ã¬ã¯ã㪠| ~/Downloads/stock-photos |
projectType | string | ãã©ã«ããŒæ§æã«äœ¿çšãããããžã§ã¯ãã®çš®é¡ïŒnextãreactãvueãangularïŒ | - |
category | string | ç»åãæŽçããããã®ã«ããŽãªïŒäŸïŒããŒããŒãèæ¯ïŒ | - |
downloadMode | string | ç»åãããŠã³ããŒãããããURL ãè¿ãã | urls_only |
get_attributions
| ãã©ã¡ãŒã¿ãŒ | å | 説æ | ããã©ã«ã |
|---|---|---|---|
format | string | åºå圢åŒïŒjsonãhtmlãreactïŒ | json |
projectPath | string | ç¹å®ã®ãããžã§ã¯ããã¹ã«åž°å±è¡šç€ºãçµã蟌ã¿ãŸã | - |
outputPath | string | åž°å±è¡šç€ºãã¡ã€ã«ã®ä¿åå | - |
ð§ ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ããããåé¡ãšè§£æ±ºæ¹æ³
| åé¡ | è§£æ±ºæ¹æ³ |
|---|---|
| æ¥ç¶ãæåŠããã | ãµãŒããŒãèšå®ãããããŒãã§å®è¡ãããŠããããšã確èªããŠãã ãã |
| èªèšŒãšã©ãŒ | Unsplash API ããŒãæ£ããèšå®ãããŠããããšã確èªããŠãã ãã |
| ç»åãèŠã€ãããªã | ããå¹ åºãæ€çŽ¢èªå¥ã詊ãããæ€çŽ¢ã¯ãšãªã確èªããŠãã ãã |
| ããŠã³ããŒãæš©éã®åé¡ | downloadMode: 'urls_only' ã䜿çšããæåã®ããŠã³ããŒãã³ãã³ããå®è¡ããŠãã ãã |
| Docker ã³ã³ãããæ©æã«çµäºãã | TypeScript ãã¡ã€ã«ã tsx ã§çŽæ¥å®è¡ããã®ã§ã¯ãªããDockerfile ã§ CMD ["npm", "start"] ã䜿çšããŠããããšã確èªããŠãã ãããããã«ãããDocker ç°å¢ã§ãµãŒããŒãå®è¡ããç¶ããŸãã |
| ã¿ã€ã ã¢ãŠããšã©ãŒ | MCP ã®ããã©ã«ãã®ã¿ã€ã ã¢ãŠã㯠60 ç§ã§ãã倧ããªç»åã®ããŠã³ããŒããè€æ°ã®ç»åã®åŠçã«ã¯äžååãªå ŽåããããŸããç»åãå€ãæ±ãæäœã§ã¯ãæ¬¡ã®æ¹æ³ãã詊ããã ããïŒ1) ãªã¯ãšã¹ãããšã®ç»åæ°ãæžããã2) ç»åã®å¯žæ³ãå°ããããã3) èªåããŠã³ããŒãã®ä»£ããã« urls_only ã¢ãŒãã䜿çšããã4) ãããã¯ãŒã¯æ¥ç¶ã確èªãã |
| åž°å±æ å ±ãèŠã€ãããªã | ç»åã MCP ãµãŒããŒçµç±ã§ããŠã³ããŒããããããšã確èªããŠãã ãã |
| æªåŠçã® MCP ãšã©ãŒ | "McpError: MCP error -32001: Request timed out" ãšã©ãŒã衚瀺ãããå Žåããªã¯ãšã¹ãã®åŠçã«æéãããããããŠããå¯èœæ§ããããŸããæäœãå°ããåå²ããããURL ã®ã¿ã䜿çšããæ¹æ³ãã詊ããã ãã |
ð€ ã³ã³ããªãã¥ãŒã·ã§ã³
ã³ã³ããªãã¥ãŒã·ã§ã³ãæè¿ããŸãïŒãæ°è»œã«ãã«ãªã¯ãšã¹ããéä¿¡ããŠãã ããã
éçºã¯ãŒã¯ãããŒ
- ãªããžããªãã¯ããŒã³ããŸã
npm installã§äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŸã- Unsplash API ããŒãèšå®ãã
.envãã¡ã€ã«ãäœæããŸã npm run devã§éçºã¢ãŒãã§å®è¡ããŸãnpm testã§ãã¹ããå®è¡ããŸã
ðºïž ããŒãããã
ä»åŸã®ãªãªãŒã¹ã§äºå®ããŠããå å®¹ã¯æ¬¡ã®ãšããã§ãã
- ç»åç·šéæ©èœïŒåºæ¬çãªãµã€ãºå€æŽãããªãã³ã°ã調æŽããŒã«
- é«åºŠãªæ€çŽ¢ãã£ã«ã¿ãŒïŒç»åéžæããã现ããå¶åŸ¡
- ãããåŠçïŒè€æ°ã®ç»åãªã¯ãšã¹ããå¹ççã«åŠç
- ã«ã¹ã¿ã ã³ã¬ã¯ã·ã§ã³ïŒãããžã§ã¯ãçšã®ç»åã°ã«ãŒããä¿åã管ç
- ããŒã ã³ã©ãã¬ãŒã·ã§ã³ïŒåž°å±æ å ±ãšç»åã³ã¬ã¯ã·ã§ã³ãå ±æ
- 䜿çšç¶æ³ã®åæïŒãããžã§ã¯ãå šäœã§ã®ç»å䜿çšç¶æ³ã远跡
- 远å ã®ç»åãœãŒã¹ïŒã»ãã®ã¹ããã¯ãã©ããããã€ããŒãšã®é£æº
- ã¿ã€ã ã¢ãŠãåŠçã®æ¹åïŒã¿ã€ã ã¢ãŠãèšå®ãšåŸ©æ§ã¡ã«ããºã ã®åŒ·å
ð ã©ã€ã»ã³ã¹
MIT License
ð åž°å±è¡šç€ºã®èŠä»¶
Unsplash ã®ç»åã䜿çšããå Žåã¯ãUnsplash License ã«åŸãå¿ èŠããããŸãã
- åž°å±è¡šç€ºã¯å¿ é ã§ã¯ãããŸããããæšå¥šãããŠããŸã
- åçã®æªå å·¥ã®è€è£œã販売ããããšã¯ã§ããŸãã
- Unsplash ã®åçãéããŠãç«¶åãµãŒãã¹ãäœæããããšã¯ã§ããŸãã
åœãµãŒããŒã®åž°å±è¡šç€ºã·ã¹ãã ã䜿ãã°ãåçå®¶ã«é©åãªã¯ã¬ãžãããç°¡åã«ä»äžã§ããŸãã
ð ãåãåãã
åé¡ã質åãããå Žåã¯ãGitHub ã§ã€ã·ã¥ãŒãäœæããŠãã ããã
ð§° éçºãšãã¹ã
ãµãŒããŒãããŒã«ã«ã§å®è¡ãã
# Clone the repository
git clone https://github.com/drumnation/unsplash-smart-mcp-server.git
cd unsplash-smart-mcp-server
# Install dependencies
npm install
# Set up your environment variables
cp .env.example .env
# Edit .env to add your UNSPLASH_ACCESS_KEY
# Start the development server
npm run dev
ãã¹ã
ãã®ããã±ãŒãžã«ã¯ãå æ¬çãªãã¹ãã¹ã€ãŒããå«ãŸããŠããŸãã
# Run core tests
npm test
# Run all tests and get a summary report
npm run test:all
ãã¹ãã¹ã€ãŒãã«ã¯æ¬¡ã®é ç®ãå«ãŸããŠããŸãã
- ãŠããããã¹ããšçµ±åãã¹ã
- ããŒã«ã®æåãã¹ã
- Docker ã³ã³ããã®ãã¹ã
- Smithery.ai ã®çµ±åãã¹ã
ãã¹ãã®è©³çްã«ã€ããŠã¯ãdocs/testing.md ãåç §ããŠãã ããã
AI ãšãŒãžã§ã³ãã«ããã€ã§ãæé©ãªç»åãã
éçºè
ãš AI æå¥œå®¶ã®ããã« â€ïž ã蟌ããŠæ§ç¯ããŸããã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã
