ðŠ Saqr-MCP
ããŒã«ã«ðŠ Saqr-MCP ã«ã€ããŠ
Saqr-MCPã¯ãOllamaã®ããŒã«ã«ã¢ãã«ãŸãã¯Groqã®ã¯ã©ãŠãã¢ãã«ã察話圢åŒã§äœ¿ãPython補MCPã¢ããªã±ãŒã·ã§ã³ã§ãããµãŒããŒã¯ãŠã§ãæ€çŽ¢ãææžçæãã¡ã¢ãªãŒç®¡çãã»ãã·ã§ã³å ã®æèèšé²çšããŒã«ãæäŸããŸãã
äž»ãªæ©èœ
- 01OllamaãšGroqã®ã¢ãã«å¯Ÿå¿
- 02Tavilyã«ãããŠã§ãæ€çŽ¢
- 03Markdownããã®Wordææžçæ
- 04mem0ã«ããã¡ã¢ãªãŒä¿åãšæ€çŽ¢
- 05ã»ãã·ã§ã³å ã®æèèšé²ãšçµ±èš
掻çšã·ãŒã³
- 01ææ°ã®ãŠã§ãæ å ±ã®æ€çŽ¢
- 02Markdownããã®Wordãã¡ã€ã«äœæ
- 03çš®é¡å¥ã®ã¡ã¢ãªãŒä¿åãšååŸ
- 04ã»ãã·ã§ã³äžã®æšè«ã®èšé²ãšç¢ºèª
MCP 察å¿
OllamaãŸãã¯Groqåãã®MCPã¯ã©ã€ã¢ã³ããšãæ€çŽ¢ãææžãã¡ã¢ãªãŒãæšè«ã®ããŒã«ãå ¬éããMCPãµãŒããŒãåããŠããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ãã®ãµãŒããŒã®ããã±ãŒãžããªã¢ãŒããšã³ããã€ã³ãã¯ãŸã ååŸã§ããŠããŸããããããžã§ã¯ãã® README ã®æé ã«åŸã£ãŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
ðŠ Saqr-MCP
Saqr-MCP ã¯ãModel Context ProtocolïŒMCPïŒãå®è£ ããé«åºŠãª AI ã¢ã·ã¹ã¿ã³ãæ©èœãå®çŸãã匷å㪠Python ã¢ããªã±ãŒã·ã§ã³ã§ããOllama ã«ããããŒã«ã«ã¢ãã«ãš Groq ã«ããã¯ã©ãŠãã¢ãã«ã®äž¡æ¹ããµããŒãããæè»ãªã¯ã©ã€ã¢ã³ãã»ãµãŒããŒã¢ãŒããã¯ãã£ãæäŸããŸãããµãŒããŒã³ã³ããŒãã³ãã«ã¯ããŠã§ãæ€çŽ¢ãã¡ã¢ãªç®¡çãããã¥ã¡ã³ãçæãé«åºŠãªæšè«æ©èœãªã©ãè±å¯ãªããŒã«ãçšæãããŠããŸãã
âš æ©èœ
- ð€ ã¢ãã«ã«åãåãããããã®å¯Ÿè©±åãã£ããã€ã³ã¿ãŒãã§ãŒã¹
- ð ããŒã«ã«ã¢ãã«ïŒOllamaïŒãšã¯ã©ãŠãã¢ãã«ïŒGroqïŒã®äž¡æ¹ããµããŒã
- ð Tavily API ã䜿çšããé«åºŠãªãŠã§ãæ€çŽ¢æ©èœ
- ð Markdown ã³ã³ãã³ããã Word ããã¥ã¡ã³ããçæ
- ð§ mem0 ã䜿çšããå æ¬çãªã¡ã¢ãªç®¡çã·ã¹ãã
- ð é«åºŠãªæšè«ãšæèããã»ã¹ã®è¿œè·¡
- â¡ å¹ççãªåŠçãå®çŸããéåæã¢ãŒããã¯ãã£
- ðš ãŠãŒã¶ãŒäœéšãåäžãããèŠèŠçãªèªã¿èŸŒã¿ã¢ãã¡ãŒã·ã§ã³
- ð ã»ãã·ã§ã³åäœã®æèãã°èšé²ãšåæ
- ð Markdown ã«å¯Ÿå¿ããããã¥ã¡ã³ãçæ
ð åææ¡ä»¶
- ð Python 3.11 以é
- ðŠ ããŒã«ã«ã¢ãã«ã䜿çšããå Žåã¯ãOllama ãã€ã³ã¹ããŒã«ããŠãã ãã
- ðŠ UV ããã±ãŒãžãããŒãžã£ãŒïŒæšå¥šïŒ
ð ã€ã³ã¹ããŒã«
-
ãã®ãªããžããªãã¯ããŒã³ããŸãã
git clone https://github.com/ahmedhassan456/Saqr-MCP.git cd saqr-mcp -
ä»®æ³ç°å¢ãäœæããŠæå¹åããŸãïŒä»»æã§ãããæšå¥šïŒã
uv venv # On Windows .venv\Scripts\activate # On Unix or MacOS source venv/bin/activate -
äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŸãã
uv add -r requirements.txt -
ç°å¢å€æ°ãèšå®ããŸãã
.env.exampleã.envã«ã³ããŒããŸã- 以äžã®å€æ°ãèšå®ããŸãã
- ð
MODEL_NAMEïŒäœ¿çšãã Ollama ã¢ãã«ïŒäŸïŒqwen3:1.7bïŒ - ð
TAVILY_API_KEYïŒTavily ã®ãŠã§ããµã€ãã§ååŸãã Tavily API ã㌠- â¡
GROQ_MODEL_NAMEïŒäœ¿çšãã Groq ã¢ãã«å - ð
GROQ_API_KEYïŒGroq ã®ãŠã§ããµã€ãã§ååŸãã Groq API ã㌠- ð§
MEM0_API_KEYïŒMem0 ã®ãŠã§ããµã€ãã§ååŸãã Mem0 API ããŒ
- ð
ð» äœ¿ãæ¹
-
ããŒã«ã«ã¢ãã«ã䜿çšããå Žåã¯ãOllama ãèµ·åããŠãããéžæããã¢ãã«ãå©çšã§ããããšã確èªããŠãã ããã
-
ã¯ã©ã€ã¢ã³ããèšå®ããŸãã
- ããã©ã«ãã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯ Ollama ã¯ã©ã€ã¢ã³ãã䜿çšããŸãïŒ
from src.ollama_client import SaqrMCPClientïŒ - Groq ã䜿çšããã«ã¯ã
main.pyãç·šéããŠfrom src.groq_client import SaqrMCPClientã䜿çšããŸã
- ããã©ã«ãã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯ Ollama ã¯ã©ã€ã¢ã³ãã䜿çšããŸãïŒ
-
ã¯ã©ã€ã¢ã³ããå®è¡ããŸãã
python main.py -
察話åã³ã³ãœãŒã«ã«åãåãããå ¥åããŸãã
MCP Client Started! Type your queries or 'quit' to exit. Query: -
ã¢ããªã±ãŒã·ã§ã³ãçµäºããã«ã¯ã
quitãšå ¥åããŸãã
ð ãããžã§ã¯ãæ§æ
- ð
main.py- MCP ã¯ã©ã€ã¢ã³ããèµ·åãããšã³ããªãŒãã€ã³ã - ð
src/- ð
ollama_client.py- Ollama ã¢ãã«çš MCP ã¯ã©ã€ã¢ã³ãã®å®è£ - â¡
groq_client.py- Groq ã¢ãã«çš MCP ã¯ã©ã€ã¢ã³ãã®å®è£ - ð ïž
server.py- ãã¹ãŠã®ããŒã«ãåãã MCP ãµãŒããŒã®å®è£ - ð
logger.py- èŠèŠçãªã¢ãã¡ãŒã·ã§ã³ãåããã«ã¹ã¿ã ãã°ãŠãŒãã£ãªãã£
- ð
ð ïž å©çšå¯èœãªããŒã«
ãµãŒããŒã«ã¯ãããŸããŸãªæ©èœãå®çŸããå æ¬çãªããŒã«ãå®è£ ãããŠããŸãã
ð ãŠã§ãæ€çŽ¢ãšããã¥ã¡ã³ãçæ
- web_searchïŒTavily API ã䜿çšããŠãŠã§ãããªã¢ã«ã¿ã€ã æ€çŽ¢ããææ°æ å ±ãååŸããŸã
- word_file_generatorïŒé©åãªæžåŒã§ Markdown ã³ã³ãã³ããã Microsoft Word ããã¥ã¡ã³ããäœæããŸã
ð§ ã¡ã¢ãªç®¡ç
- add_memoryïŒæå®ããçš®é¡ãšå å®¹ã®æ°ããã¡ã¢ãªã mem0 ã«ä¿åããŸã
- get_all_memoriesïŒä¿åããããã¹ãŠã®ã¡ã¢ãªãååŸããŸããçš®é¡ã«ããçµã蟌ã¿ãå¯èœã§ã
- search_memoriesïŒä¿åãããã¡ã¢ãªãã»ãã³ãã£ãã¯æ€çŽ¢ããé¢é£æ å ±ãèŠã€ããŸã
ð æšè«ãšæèããã»ã¹
- thinkïŒè€éãªåé¡è§£æ±ºã®ããã®æèãšæšè«ããã»ã¹ãèšé²ããŸã
- get_thoughtsïŒçŸåšã®ã»ãã·ã§ã³ã§èšé²ããããã¹ãŠã®æèãååŸããŸã
- clear_thoughtsïŒçŸåšã®ã»ãã·ã§ã³ã§èšé²ããããã¹ãŠã®æèãæ¶å»ããŸã
- get_thought_statsïŒèšé²ãããæèã®è©³çްãªçµ±èšæ å ±ãæäŸããŸã
âïž ç°å¢å€æ°
| 倿° | 説æ | ããã©ã«ã |
|---|---|---|
ð OLLAMA_MODEL_NAME | 䜿çšãã Ollama ã¢ãã«ã®ååïŒäŸïŒqwen3:1.7bïŒ | ãªã |
ð TAVILY_API_KEY | ãŠã§ãæ€çŽ¢æ©èœã§äœ¿çšãã Tavily API ã㌠| ãªã |
â¡ GROQ_MODEL_NAME | 䜿çšãã Groq ã¢ãã«ã®åå | ãªã |
ð GROQ_API_KEY | ã¯ã©ãŠãã¢ãã«ãžã®ã¢ã¯ã»ã¹ã«äœ¿çšãã Groq API ã㌠| ãªã |
ð§ MEM0_API_KEY | ã¡ã¢ãªç®¡çã«äœ¿çšãã Mem0 API ã㌠| ãªã |
ðŠ äŸåé¢ä¿
- ð
mcp[cli]- Model Context Protocol ã®å®è£ - ð
httpx- Python çš HTTP ã¯ã©ã€ã¢ã³ã - ð
loguru- Python ã®ã·ã³ãã«ãªãã®ã³ã°ã©ã€ãã©ãª - â¡
groq- Groq API ã¯ã©ã€ã¢ã³ã - ðŠ
ollama- ããŒã«ã«ã¢ãã«åãã® Ollama ã€ã³ã¿ãŒãã§ãŒã¹ - ð
tavily-python- AI ãšãŒãžã§ã³ãåãã«æé©åãããæ€çŽ¢ãšã³ãžã³ - ð
fastapi- API æ§ç¯çšã®ãŠã§ããã¬ãŒã ã¯ãŒã¯ - â¡
uvicorn- ASGI ãµãŒããŒã®å®è£ - ð
htmldocx- HTML ãã DOCX ãžã®ã³ã³ããŒã¿ãŒ - ð
duckduckgo-search- æ€çŽ¢ãšã³ãžã³ãšã®çµ±å - ð
python-docx- DOCX ãã¡ã€ã«ã®åŠç - ð
markdown- Markdown ã®åŠç - ð§
mem0- ã¡ã¢ãªç®¡çã·ã¹ãã
ð ã©ã€ã»ã³ã¹
ð€ ã³ã³ããªãã¥ãŒã·ã§ã³
ã³ã³ããªãã¥ãŒã·ã§ã³ãæè¿ããŸãïŒãæ°è»œã«ãã«ãªã¯ãšã¹ããéä¿¡ããŠãã ããã
- ðŽ ãªããžããªããã©ãŒã¯ããŸã
- ð¿ ãã£ãŒãã£ãŒãã©ã³ããäœæããŸãïŒ
git checkout -b feature/amazing-featureïŒ - ðŸ 倿Žãã³ãããããŸãïŒ
git commit -m 'Add some amazing feature'ïŒ - ð€ ãã©ã³ãã«ããã·ã¥ããŸãïŒ
git push origin feature/amazing-featureïŒ - ð ãã«ãªã¯ãšã¹ããäœæããŸã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã