ð Light MCP Agents
ð Light MCP Agents ã«ã€ããŠ
Light MCP Agents ã¯ãModel Context Protocol ãçšãã AI ãšãŒãžã§ã³ã ã®æ§ç¯ãšãªãŒã±ã¹ãã¬ãŒã·ã§ã³çšã®è»œéãã¬ãŒã ã¯ãŒã¯ã§ããéå±€åããããšãŒãžã§ã³ãã·ã¹ãã ãå®çŸããå°éåããããšãŒãžã§ã³ããã¿ã¹ã¯å§è²ãèœåå ±æãè€éãªåé¡è§£æ±ºã®ããã®ååãè¡ããŸããèšå®é§ååã¢ãããŒãã«ãããåºç¯ãªã³ãŒãã£ã³ã°ãªãã«é«åºŠãªãšãŒãžã§ã³ããããã¯ãŒã¯ãè¿ éã«æ§ç¯ã§ããŸãã
äž»ãªæ©èœ
- 01èšå®ãã¡ã€ã«ããŒã¹ã® MCP ãµãŒããŒãžã®ãšãŒãžã§ã³ãæ¥ç¶
- 02远å ã³ãŒãäžèŠã®ãã«ããšãŒãžã§ã³ãã¯ãŒã¯ãããŒ
- 03èœåå§è²ã«å¯Ÿå¿ããéå±€åãšãŒãžã§ã³ãæ§é
- 04èªåããŒã«éçŽãšäŒæ
- 05ååž°çæšè«ãšèœåã¬ãžã¹ããª
掻çšã·ãŒã³
- 01ã¿ã¹ã¯å§è²ãå«ããã«ããšãŒãžã§ã³ãã·ã¹ãã ã®æ§ç¯
- 02Claude Desktop ã§ã®ã«ã¹ã¿ã ãšãŒãžã§ã³ãå®è¡
- 03é ååºæã®ã¿ã¹ã¯åãå°éåãšãŒãžã§ã³ãäœæ
- 04ãšãŒãžã§ã³ãèšå®ã®ã³ãã¥ããã£å ±æ
MCP 察å¿
Light MCP Agents 㯠MCP ã¯ã©ã€ã¢ã³ããšã㊠MCP ãµãŒããŒã«æ¥ç¶ããMCP ãµãŒããŒã¢ãŒãã§ã®å®è¡ããµããŒãããŠãä»ã®ãšãŒãžã§ã³ãã«å¯ŸããŠãšãŒãžã§ã³ãèœåãããŒã«ãšããŠå ¬éããŸãããã¬ãŒã ã¯ãŒã¯ã¯ MCP ãããã³ã«ããšãŒãžã§ã³ãééä¿¡ã«äœ¿çšããŸãã
詳现
ð Light MCP Agents
Light MCP Agents ãšã¯ïŒ
Light MCP Agents ã¯ãModel Context Protocol (MCP) ã䜿çšã㊠AI ãšãŒãžã§ã³ããæ§ç¯ããã³ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããããã®è»œéãã¬ãŒã ã¯ãŒã¯ã§ããç¹æ®åããããšãŒãžã§ã³ããã¿ã¹ã¯ãå§ä»»ããæ©èœãå ±æããè€éãªåé¡ã解決ããããã«ååã§ãããšããéå±€çãªãšãŒãžã§ã³ãã·ã¹ãã ã®äœæãå¯èœã«ããŸãã èšå®é§ååã®ã¢ãããŒãã«ãããæ¡åŒµå¯èœãªã¢ãŒããã¯ãã£ã§ãåºç¯ãªã³ãŒãã£ã³ã°ãªãã«é«åºŠãªãšãŒãžã§ã³ããããã¯ãŒã¯ãè¿ éã«æ§ç¯ã§ããŸãã
ãªãéèŠãªã®ãïŒ
â ã·ã³ãã«ãªèšå®ãã¡ã€ã«ã§ãä»»æã® MCP ãµãŒããŒã«æ¥ç¶ãããšãŒãžã§ã³ããäœæããŸãã
â 远å ã³ãŒããªãã§è€æ°ãšãŒãžã§ã³ãã¯ãŒã¯ãããŒãäœæããŸãããšãŒãžã§ã³ãããšã«èšå®ãã¡ã€ã« 1 ã€ã ãã§ãã
â ãšãŒãžã§ã³ãèšå®ãä»ã®ãŠãŒã¶ãŒãšç°¡åã«å ±æããŠå®è¡ããŸãã
ã¢ãŒããã¯ãã£ã®æŠèŠ
ç®æ¬¡
- ã¯ã€ãã¯ã¹ã¿ãŒã
- ãµã³ãã«ãšãŒãžã§ã³ã
- å®è¡ãªãã·ã§ã³
- ç¬èªã®ãšãŒãžã§ã³ããäœæãã
- åäœæ¹æ³
- ã¢ãŒããã¯ãã£ã®è©³çް
ã¯ã€ãã¯ã¹ã¿ãŒã
ã€ã³ã¹ããŒã«
# Clone the repository
git clone https://github.com/nicozumarraga/light-mcp-agents.git
cd light-mcp-agents
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
æåã®ãšãŒãžã§ã³ããå®è¡ãã
# Run the base agent example (simple client agent)
python src/agent/agent_runner.py --config examples/base_agent/base_agent_config.json
æåããã°ããšãŒãžã§ã³ããšãã£ããããŠãã®ããŒã«ã䜿çšã§ããŸãïŒ
è€æ°ãšãŒãžã§ã³ãäŸã詊ã
1 ã€ç®ã®ã¿ãŒããã«ã§ããªãµãŒããšãŒãžã§ã³ãããµãŒããŒã¢ãŒãã§éå§ããŸãïŒ
python src/agent/agent_runner.py --config examples/orchestrator_researcher/research_agent_config.json --server-mode
2 ã€ç®ã®ã¿ãŒããã«ã§ããªãµãŒããšãŒãžã§ã³ãã«æ¥ç¶ãããªãŒã±ã¹ãã¬ãŒã¿ãŒãéå§ããŸãïŒ
python src/agent/agent_runner.py --config examples/orchestrator_researcher/master_orchestrator_config.json
ããã§ãªãŒã±ã¹ãã¬ãŒã¿ãŒã«ãããã¯ã®ãªãµãŒããäŸé Œã§ããç¹æ®åããããªãµãŒããšãŒãžã§ã³ãã«å§ä»»ããããçŽæ¥ããŒã«ã䜿çšããŸãã
Claude Desktop ã§ãšãŒãžã§ã³ããå®è¡ãã
Claude Desktop ã¯èšå®ã·ã¹ãã ãéã㊠MCP ãšãŒãžã§ã³ãããµããŒãããŠããŸããClaude ã§ãšãŒãžã§ã³ãèšå®ãçŽæ¥æ§æããŠå®è¡ã§ããã«ã¹ã¿ã æ©èœã䜿çšã§ããããã«ãªããŸãã
ã»ããã¢ããæé
-
Claude Desktop ã®èšå®ãã¡ã€ã«ãæ¢ããŸãïŒ
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
mcpServersã»ã¯ã·ã§ã³ã«ãšãŒãžã§ã³ãèšå®ã远å ããŸãïŒ
{
"mcpServers": {
"research-agent": {
"command": "/bin/bash",
"args": ["-c", "/path/to/your/venv/bin/python /path/to/your/agent_runner.py --config=/path/to/your/agent_config.json --server-mode"],
"env": {
"PYTHONPATH": "/path/to/your/project",
"PATH": "/path/to/your/venv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
}
}
}
}
ãµã³ãã«ãšãŒãžã§ã³ã
ãªããžããªã® examples/ ãã£ã¬ã¯ããªã«ã¯ããµã³ãã«ãšãŒãžã§ã³ããå«ãŸããŠããŸãïŒ
-
Base Agent (
examples/base_agent/)- å€éšããŒã«ãµãŒããŒã«æ¥ç¶ããåçŽãªãšãŒãžã§ã³ã
- ãšãŒãžã§ã³ãã®åäœãçè§£ããã®ã«é©ããæåã®äŸã§ã
-
Orchestrator-Researcher (
examples/orchestrator_researcher/)- éå±€çãªãšãŒãžã§ã³ãæ§é ãå®èšŒããŸã
- ãšãŒãžã§ã³ãéã§æ©èœãå ±æããæ¹æ³ã瀺ããŸã
ð€ ã³ãã¥ããã£ã®ããã®ç¬èªã®ãµã³ãã«ã¢ãŒããã¯ãã£ãéä¿¡ãããã§ããïŒ ãé£çµ¡ãã ããïŒ
å®è¡ãªãã·ã§ã³
åºæ¬çãªã³ãã³ãæ§é
python src/agent/agent_runner.py --config <config_file_path>
ãã®ä»ã®ãªãã·ã§ã³
# Run in server mode (makes it available to other agents)
python src/agent/agent_runner.py --config <config_file_path> --server-mode
# Run with a custom server name
python src/agent/agent_runner.py --config <config_file_path> --server-mode --server-name "my-custom-server"
ç¬èªã®ãšãŒãžã§ã³ããäœæãã
åºæ¬çãªãšãŒãžã§ã³ãèšå®
ãšãŒãžã§ã³ãçšã®èšå®ãã¡ã€ã«ãäœæããŸãïŒäŸïŒmy_agent_config.jsonïŒïŒ
{
"agent_name": "my-agent",
"llm_provider": "groq",
"llm_api_key": "YOUR_API_KEY_HERE",
"server_mode": false,
"servers": {
"tool-server": {
"command": "npx",
"args": ["@anthropic-ai/mcp-tooling", "start", "-q"],
"env": {
"PORT": "3001"
}
}
}
}
æ©èœãæã€ãšãŒãžã§ã³ã
ç¹æ®ãªæ©èœãæã€ãšãŒãžã§ã³ããäœæããã«ã¯ïŒ
{
"agent_name": "research-agent",
"llm_provider": "groq",
"llm_api_key": "YOUR_API_KEY_HERE",
"server_mode": true,
"server_name": "research-agent-server",
"capabilities": [
{
"name": "summarize_document",
"description": "Summarize a document in a concise way",
"input_schema": {
"type": "object",
"properties": {
"document_text": {
"type": "string",
"description": "The text of the document to summarize"
},
"max_length": {
"type": "integer",
"description": "Maximum length of the summary in words",
"default": 200
}
},
"required": ["document_text"]
},
"prompt_template": "Summarize the following document in {max_length} words or fewer:\n\n{document_text}"
}
],
"servers": {
"brave-search": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "mcp/brave-search"],
"env": {
"BRAVE_API_KEY": "YOUR_BRAVE_API_KEY"
}
}
}
}
ãªãŒã±ã¹ãã¬ãŒã¿ãŒãšãŒãžã§ã³ãèšå®
ä»ã®ãšãŒãžã§ã³ãã«å§ä»»ãããªãŒã±ã¹ãã¬ãŒã¿ãŒãäœæããŸãïŒ
{
"agent_name": "master-orchestrator",
"llm_provider": "groq",
"llm_api_key": "YOUR_API_KEY_HERE",
"server_mode": false,
"servers": {
"research-agent": {
"command": "python",
"args": ["src/agent/agent_runner.py", "--config=research_agent_config.json", "--server-mode"],
"env": {}
},
"kanye": {
"command": "npx",
"args": ["-y", "kanye-mcp"]
}
}
}
åäœæ¹æ³
ãšãŒãžã§ã³ãæ©èœ
æ©èœã¯ LLM ã®æšè«ãå¿ èŠãªé«ã¬ãã«ã®é¢æ°ã§ããæ©èœãåŒã³åºããããšãïŒ
- ããã³ãããã³ãã¬ãŒããæäŸãããåŒæ°ã§åããããŸã
- ãšãŒãžã§ã³ãã¯ç¬èªã®æšè«ããã»ã¹ãéå§ããŸã
- å©çšå¯èœãªããŒã«ã䜿çšã§ããŸã
- æçµçµæãåŒã³åºãå ã®ãšãŒãžã§ã³ãã«è¿ããŸã
äŸïŒãªãµãŒãã£ãŒã¯ãŒã¯ãããŒ
ãªãŒã±ã¹ãã¬ãŒã¿ãŒã«ãããã¯ã®ãªãµãŒããäŸé ŒãããšãïŒ
- ãªãŒã±ã¹ãã¬ãŒã¿ãŒããªãµãŒããšãŒãžã§ã³ãã®æ©èœã«å§è²ããŸã
- ãªãµãŒããšãŒãžã§ã³ããæ€çŽ¢ããŒã«ã䜿çšããŠæ å ±ãåéããŸã
- ãªãµãŒããšãŒãžã§ã³ããçµæãäžè²«æ§ã®ããå¿çã«åŠçããŸã
- æçµçµæããªãŒã±ã¹ãã¬ãŒã¿ãŒã«éãè¿ãããããªãã«æç€ºãããŸã
ãããå®éã«åäœããŠããããšã瀺ããã°ã®æç²ã§ãïŒ
2025-03-19 10:17:46,252 - INFO - agent:master-orchestrator - Executing tool: research_topic
2025-03-19 10:17:46,252 - INFO - agent:master-orchestrator - With arguments: {'topic': 'quantum computing', 'focus_areas': 'recent breakthroughs'}
2025-03-19 10:17:46,261 - INFO - mcp-server-wrapper:research-agent-server - Executing as capability: research_topic
2025-03-19 10:17:46,262 - INFO - agent:research-agent - Executing capability: research_topic with arguments: {'topic': 'quantum computing', 'focus_areas': 'recent breakthroughs'}
2025-03-19 10:17:46,973 - INFO - agent:research-agent - Executing tool: brave_web_search
2025-03-19 10:17:46,973 - INFO - agent:research-agent - With arguments: {'query': 'quantum computing recent breakthroughs', 'count': 10}
2025-03-19 10:17:49,839 - INFO - agent:research-agent - Capability research_topic execution completed
ã¢ãŒããã¯ãã£ã®è©³çް
ååž°çãªã¢ãŒããã¯ãã£ã¯ MCPïŒModel Context ProtocolïŒæšæºã«åºã¥ããŠããã以äžãå®çŸããŸãïŒ
- ãšãŒãžã§ã³ãéå±€: ãšãŒãžã§ã³ããéå±€æ§é ã«é 眮ã§ããäžäœã¬ãã«ã®ãšãŒãžã§ã³ããã¿ã¹ã¯ãç¹åããäžäœã¬ãã«ã®ãšãŒãžã§ã³ãã«å§è²ã§ããŸãã
- æ©èœå§è²: æšè«ãå¿ èŠãªè€éãªã¿ã¹ã¯ã¯ãæ©èœãéããŠç¹åãããšãŒãžã§ã³ãã«å§è²ã§ããŸãã
- ããŒã«éçŽ: äžäœã¬ãã«ã®ãšãŒãžã§ã³ãã®ããŒã«ã¯èªåçã«äžäœã¬ãã«ã®ãšãŒãžã§ã³ãã«å ¬éãããŸãã
- ååž°çæšè«: åãšãŒãžã§ã³ãã¯å©çšå¯èœãªããŒã«ã䜿çšããŠç¬èªã®æšè«ããã»ã¹ãå®è¡ã§ããŸãããã®ååž°ã«å¶éãèšå®ã§ããŸãã
äž»èŠãªã³ã³ããŒãã³ã
- AgentServer: ãšãŒãžã§ã³ããã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ã®ã¢ãŒãã§ç®¡çããäž»èŠãªã¯ã©ã¹ã§ãåæåãä»ã®ãµãŒããŒãžã®æ¥ç¶ãããŒã«/æ©èœã®æ€åºãåŠçããŸãã
- MCPServerWrapper: ãšãŒãžã§ã³ãã MCP ãµãŒããŒãšããŠã©ããããŠãMCP ãããã³ã«ãéããŠãã®ããŒã«ãšæ©èœãå ¬éããŸãã
- Agent: ãŠãŒã¶ãŒãªã¯ãšã¹ããåŠçããããŒã«ãå®è¡ããæ©èœã管çããã³ã¢ãšãŒãžã§ã³ãå®è£ ã§ãã
- CapabilityRegistry: LLM æšè«ãå¿ èŠãªãšãŒãžã§ã³ãæ©èœã®ã¬ãžã¹ããªã§ãèšå®ããæ©èœãèªã¿èŸŒã責任ããããŸãã
- ToolRegistry: MCP ãµãŒããŒã®ãã¹ãŠã®ããŒã«ã®ã¬ãžã¹ããªã§ãæ€åºãšç»é²ãåŠçããŸãã
ã¢ãŒããã¯ãã£ã®å©ç¹
- éå±€çãªã³ã³ããžã·ã§ã³: ãšãŒãžã§ã³ããä»ã®ãšãŒãžã§ã³ãã®æ©èœã䜿çšã§ãã匷åãªã³ã³ããžã·ã§ã³ã¢ãã«ãäœæããŸãã
- ã«ãã»ã«å: åãšãŒãžã§ã³ããç¹å®ã®ãã¡ã€ã³ãŸãã¯æ©èœãã«ãã»ã«åããŸãã
- æšè«å§è²: è€éãªã¿ã¹ã¯ãç¹åãããšãŒãžã§ã³ãã«å§è²ã§ããŸãã
- ããŒã«äŒæ: äžäœã¬ãã«ã®ãšãŒãžã§ã³ããå©çšå¯èœãªããŒã«ã¯ãäžäœã¬ãã«ã®ãšãŒãžã§ã³ãã®æ©èœãéããŠãããã³çŽæ¥ã¢ã¯ã»ã¹ã§ã¢ã¯ã»ã¹ã§ããŸãã
- èšå®é§å: ã³ãŒãã倿Žããã«åçŽãªèšå®ãã¡ã€ã«ã§æ©èœãå®çŸ©ããŸãã
- ã¹ã±ãŒã©ããªãã£: æ¢åã®ãã®ã倿Žããã«æ°ããæ©èœãŸãã¯ç¹åãããšãŒãžã§ã³ãã远å ããŸãã
è¬èŸ
ãã®ãããžã§ã¯ãã® MCP ãµãŒããŒãªãœãŒã¹ç®¡çãã©ã¯ãã£ã¹ã¯ mcp-agents ããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåããŸããã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã