ð¥Cursorã«webæ€çŽ¢æ©èœå®è£ ãããð¥DuckDuckGoæ€çŽ¢MCPãµãŒããŒãäœããð¥
ã¯ããã«
Cursor ã® AI ã«ãèªåã§äœã£ãããŒã«ã远å ã§ããã䟿å©ã ãšæããŸãããïŒ ð€ Model Context Protocol (MCP) ã䜿ãã°ããããå¯èœã«ãªããŸãïŒ
ä»åã¯ãWeb æ€çŽ¢ã§ããªãã¿ã® DuckDuckGo ã䜿ã£ãŠæ€çŽ¢ãã³ã³ãã³ãååŸãã§ãã MCP ãµãŒããŒãæ§ç¯ããCursor ã«çµ±åããæé ã玹ä»ããŸãã
ãããªæãã®ðïž
MCPãµãŒããŒãšã¯ïŒ ð
Model Context Protocol (MCP) ã¯ãAI ã¢ãã«ïŒCursor ã®ãšãŒãžã§ã³ããªã©ïŒãå€éšã®ããŒã«ããµãŒãã¹ãšé£æºããããã®ä»çµã¿ã§ããMCP ãµãŒããŒãç«ãŠãããšã§ãCursor ã®ãã£ãããã @ããªãã®ãµãŒããŒå
ã®ããã«åŒã³åºããŠãç¹å®ã®æ©èœïŒä»åã®å Žå㯠DuckDuckGo æ€çŽ¢ïŒãå®è¡ã§ããããã«ãªããŸãã
ããã䜿ãã°ãCursor ããã£ãšãã¯ãã«ã«ã«ã¹ã¿ãã€ãºã§ããŸããïŒðª
仿¥ã¯ Python ãš FastMCP ã©ã€ãã©ãªã䜿ã£ãŠãDuckDuckGo æ€çŽ¢ãµãŒããŒãäœããŸãðŠ
ð ã¢ãžã§ã³ã
- ãããžã§ã¯ãã®æºå
- äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«
- MCP ãµãŒããŒã®èµ·å
- Cursor ãžã®èšå®
- 䜿ã£ãŠã¿ããïŒ
ð ïž æé
ãŸã㯠MCP ãµãŒããŒãå®è¡ã§ããç°å¢ãçšæããŸãã
1. ãããžã§ã¯ãã®æºå ð
ä»åã¯ãduckduckgo-mcp-server ãšããæ¢åã®ãããžã§ã¯ããå©çšããŸãã
-
ãªããžããªã®ã¯ããŒã³ (æšå¥š):
git clone https://github.com/nickclyde/duckduckgo-mcp-server.git cd duckduckgo-mcp-server
-
ãŸãã¯ããã¡ã€ã«ãã埩å :
ããrepomix-output.txt
ã®ãããªçµ±åãã¡ã€ã«ãããå Žåã¯ãããããå¿ èŠãªãã¡ã€ã«ãå±éããŠãã ãããïŒä»åã¯ãã®æ¹æ³ã§é²ããŸãããïŒïŒå¿ èŠãªãã¡ã€ã«ã¯äž»ã«ä»¥äžã®éãã§ã:
.gitignore
-
pyproject.toml
(ãããžã§ã¯ãå®çŸ©ãšäŸåé¢ä¿) src/duckduckgo_mcp_server/__init__.py
-
src/duckduckgo_mcp_server/server.py
(ãµãŒããŒã®ã³ã¢ããžãã¯) -
README.md
(åèæ å ±) - ãªã©...
2. äŸåé¢ä¿ã®ã€ã³ã¹ããŒã« ðŠ
ãããžã§ã¯ãã«å¿
èŠãªã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸããpyproject.toml
ã«å¿
èŠãªãã®ãå®çŸ©ãããŠããŸãã
-
Python ã®æºå:
Python ãã€ã³ã¹ããŒã«ãããŠããããšã確èªããŠãã ãããpython --version # ãŸã㯠py --version
-
pip ã䜿ã£ãŠã€ã³ã¹ããŒã«:
ãããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªïŒpyproject.toml
ãããå ŽæïŒã§ä»¥äžã®ã³ãã³ããå®è¡ããŸããpip install .
(ãã
uv
ã䜿ããç°å¢ãªãuv pip install .
ã§ã OK ã§ã)ããããã®ã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããã¯ãã§ãããšã©ãŒãåºãªããã°æåã§ãð
:::note warn
ãããã·ç°å¢äžãªã©ã§ãšã©ãŒãåºãå Žåã¯ããããã·èšå®ã远å ããå¿ èŠããããããããŸãããpip install . --proxy="http://your-proxy-server:port"
:::
3. MCP ãµãŒããŒã®èµ·å ð
ãããããµãŒããŒãèµ·åããŸãïŒéçºäžã¯ mcp dev
ã³ãã³ãã䜿ãã®ã䟿å©ã§ãã
-
ãµãŒããŒèµ·åã³ãã³ã:
ãããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªã§å®è¡ããŸããmcp dev src/duckduckgo_mcp_server/server.py
ãã®ã³ãã³ãã¯ãµãŒããŒããã©ã¢ã°ã©ãŠã³ãã§èµ·åãããã°ãªã©ã衚瀺ããŸãã
-
ããã¯ã°ã©ãŠã³ãã§ã®èµ·å (ãªãã·ã§ã³):
ããã¿ãŒããã«ãä»ã®äœæ¥ã§äœ¿ãããå Žåã¯ã&
ãã€ããïŒLinux/macOSïŒããWindows Terminal ã®æ©èœãªã©ã§ããã¯ã°ã©ãŠã³ãå®è¡ããŸããCursor ã®æ©èœã§å®è¡ããéã¯ãis_background=True
ãªãã·ã§ã³ã䜿ããŸãããïŒ -
èµ·åç¢ºèª (ä»»æ):
å¥ã®ã¿ãŒããã«ãéããŠmcp list
ã³ãã³ããå®è¡ãããšãèµ·åäžã® MCP ãµãŒã㌠(ddg-search
) ããªã¹ãã«è¡šç€ºãããã¯ãã§ãã
4. Cursor ãžã®èšå® âïž
èµ·åãã MCP ãµãŒããŒã Cursor ã«èªèãããŸãã
-
Cursor ã®èšå®ãéã:
Cursor ã®èšå®ç»é¢ (Ctrl+,
ãŸãã¯Cmd+,
) ãéãããMCPãã»ã¯ã·ã§ã³ã«ç§»åããŸãã -
ã°ããŒãã« MCP ãµãŒããŒã®è¿œå :
ã+ Add new global MCP serverããã¿ã³ïŒãŸãã¯é¡äŒŒã®ãã¿ã³ïŒãããã¯ãã§ãããããã¯ãªãã¯ãããšãèšå®ãã¡ã€ã«mcp.json
ãéãããèšå®çšã® UI ã衚瀺ãããŸãã -
mcp.json
ãçŽæ¥ç·šéããå Žå:
C:\Users\<ããªãã®ãŠãŒã¶ãŒå>\.cursor\mcp.json
(Windowsã®å Žå) ãŸãã¯~/.cursor/mcp.json
(macOS/Linuxã®å Žå) ãéãã以äžã®ããã«ç·šéããŸããæ¢ã«mcpServers
ãããå Žåã¯ããã®äžã«ddg-search
ã®èšå®ã远å ããŸããC{ "mcpServers": { "ddg-search": { "command": "python", "args": ["-m", "duckduckgo_mcp_server.server"], "cwd": "C:/Users/duckduckgo-mcp-server-main" } // ä»ã®ãµãŒããŒèšå®ãããã°ããã«è¿œå } }
-
command
: ãµãŒããŒèµ·åã«äœ¿ãã³ãã³ã (python
)ã -
args
: ã³ãã³ãã«æž¡ãåŒæ°ã -
cwd
: éèŠïŒ ãããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªã® ãã«ãã¹ ãæå®ããŸããWindows ã§ããã¹åºåãæåã¯/
ã䜿ãã®ãå®å šã§ããããªãã®ç°å¢ã«åãããŠãã¹ãä¿®æ£ããŠãã ããã
-
-
UI ã§èšå®ããå Žå:
UI ã®æç€ºã«åŸãããµãŒããŒå (ddg-search
)ãã³ãã³ã (python
)ãåŒæ° (-m
,duckduckgo_mcp_server.server
ãåå¥ã«å ¥å)ãäœæ¥ãã£ã¬ã¯ããª
(C:/Users/duckduckgo-mcp-server-main
) ãèšå®ããŸãã -
Cursor ã®åèµ·å (æšå¥š):
èšå®ã確å®ã«åæ ãããããã«ãCursor ãåèµ·åããã®ãè¯ãã§ãããã
5. 䜿ã£ãŠã¿ããïŒ ð
èšå®ãããŸãããã°ãCursor ã®ãã£ããã§ @
ãå
¥åãããšãåè£ã« @ddg-search
ã衚瀺ãããã¯ãã§ãïŒ
-
æ€çŽ¢ããŠã¿ã:ãšå ¥åããŠéä¿¡ãããšããµãŒããŒã DuckDuckGo ã§æ€çŽ¢ãå®è¡ããçµæãè¿ããŠãããŸãã
@ddg-search 仿¥ã®æ±äº¬ã®å€©æ°
-
ã³ã³ãã³ããååŸããŠã¿ã:ã®ããã«
@ddg-search fetch_content url="https://qiita.com/"
fetch_content
ããŒã«ã䜿ã£ãŠãæå®ãã URL ã®å 容ãååŸããããšãã§ããŸãã
ãµãŒããŒã®æ©èœçŽ¹ä» ð§
ä»åæ§ç¯ãã ddg-search
ãµãŒããŒã«ã¯ãäž»ã«2ã€ã®ããŒã«ãå®è£
ãããŠããŸãã
-
search(query: str, max_results: int = 10)
- DuckDuckGo ã§æå®ããã
query
ãæ€çŽ¢ããŸãã -
max_results
ã§ååŸããçµæã®æå€§æ°ãæå®ã§ããŸãïŒããã©ã«ãã¯10ä»¶ïŒã - æ€çŽ¢çµæã®ã¿ã€ãã«ãURLãã¹ããããïŒèŠçŽïŒãæŽåœ¢ããŠè¿ããŸãã
- DuckDuckGo ã§æå®ããã
-
fetch_content(url: str)
- æå®ããã
url
ã®ãŠã§ãããŒãžãååŸããæ¬æãšæãããããã¹ããæœåºã»æŽåœ¢ããŠè¿ããŸãã - åºåãããã²ãŒã·ã§ã³ãªã©ã®äžèŠãªéšåã¯ã§ããã ãé€å»ãããŸãã
- æå®ããã
ã¬ãŒãå¶éã«ã€ããŠ: â ïž
ãã®ãµãŒããŒã«ã¯ãDuckDuckGo ãžã®çæéã§ã®ã¢ã¯ã»ã¹éäžãé²ãããã®ç°¡åãªã¬ãŒãå¶éïŒæ€çŽ¢: 30å/åãã³ã³ãã³ãååŸ: 20å/åïŒãçµã¿èŸŒãŸããŠããŸããé£ç¶ã§äœ¿ãããããšãå°ãåŸ
æ©ããå ŽåããããŸãã
ãããã«
ããã§ãããªãã ãã® DuckDuckGo æ€çŽ¢ããŒã«ã Cursor ã«è¿œå ãããŸããïŒð
MCP ãæŽ»çšããã°ãä»åã®ããã«å€éš API ãšé£æºããããç¹å®ã®åŠçãè¡ãã«ã¹ã¿ã ããŒã«ãã©ãã©ã远å ããŠããããšãã§ããŸãã
ãã²ãè²ã 㪠MCP ãµãŒããŒãæ¢ããããèªåã§äœã£ããããŠãCursor ãããã«äŸ¿å©ã«ããŠã¿ãŠãã ãããïŒ
ãã®èšäºããããªãã® Cursor ã©ã€ãã®äžå©ãšãªãã°å¹žãã§ã ðã
Discussion