本指南详细介绍如何在MinionCodeAgent中使用MCP (Model Context Protocol) 工具。
MCP (Model Context Protocol) 是一个标准协议,允许AI应用程序与外部工具和服务进行交互。通过MCP,你可以轻松地为AI助手添加各种功能,如文件系统访问、网络请求、数据库操作等。
创建一个JSON配置文件(例如 mcp.json):
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
},
"filesystem": {
"command": "uvx",
"args": ["mcp-server-filesystem", "/tmp"],
"disabled": true,
"autoApprove": ["read_file", "list_directory"]
}
}
}# 使用MCP配置启动CLI
minion-code --config mcp.json
# 组合使用多个选项
minion-code --config mcp.json --dir /path/to/project --verbosefrom minion_code.utils.mcp_loader import load_mcp_tools
from minion_code import MinionCodeAgent
from pathlib import Path
async def main():
# 加载MCP工具
mcp_tools = await load_mcp_tools(Path("mcp.json"))
# 创建包含MCP工具的agent
agent = await MinionCodeAgent.create(
name="Enhanced Assistant",
llm="gpt-4o-mini",
additional_tools=mcp_tools
)
# 使用agent
response = await agent.run_async("List available tools")
print(response.answer)每个MCP服务器配置包含以下字段:
- command (必需): 启动MCP服务器的命令
- args (必需): 命令参数列表
- env (可选): 环境变量字典
- disabled (可选): 是否禁用此服务器,默认为
false - autoApprove (可选): 自动批准的工具名称列表
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git"],
"disabled": false,
"autoApprove": ["git_status", "git_log"]
},
"web": {
"command": "npx",
"args": ["-y", "web-mcp-server@latest"],
"env": {
"API_KEY": "your-api-key",
"DEBUG": "true"
},
"disabled": false,
"autoApprove": []
}
}
}{
"filesystem": {
"command": "uvx",
"args": ["mcp-server-filesystem", "/path/to/workspace"],
"autoApprove": ["read_file", "list_directory"]
}
}{
"git": {
"command": "uvx",
"args": ["mcp-server-git"],
"autoApprove": ["git_status", "git_log", "git_diff"]
}
}{
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}from minion_code.utils.mcp_loader import MCPToolsLoader
async def advanced_usage():
# 创建加载器
loader = MCPToolsLoader(Path("mcp.json"))
# 加载配置
servers = loader.load_config()
print(f"Found {len(servers)} servers")
# 加载工具
tools = await loader.load_all_tools()
print(f"Loaded {len(tools)} tools")
# 获取服务器信息
info = loader.get_server_info()
for name, details in info.items():
print(f"{name}: {details['command']} ({'enabled' if not details['disabled'] else 'disabled'})")
# 清理资源
await loader.close()from minion_code.utils.mcp_loader import MCPServerConfig, MCPToolsLoader
async def dynamic_config():
# 创建动态配置
loader = MCPToolsLoader()
# 手动添加服务器配置
loader.servers["custom"] = MCPServerConfig(
name="custom",
command="python",
args=["my_mcp_server.py"],
env={"CUSTOM_VAR": "value"}
)
# 加载工具
tools = await loader.load_all_tools()
# 清理
await loader.close()-
MCP服务器无法启动
- 检查命令和参数是否正确
- 确保所需的依赖已安装
- 查看详细日志:使用
--verbose选项
-
工具加载失败
- 检查服务器是否正确响应MCP协议
- 验证环境变量设置
- 查看服务器日志
-
权限问题
- 确保有执行MCP服务器命令的权限
- 检查文件系统访问权限
# 启用详细日志
minion-code --config mcp.json --verbose
# 测试配置文件
python examples/test_mcp_config.py# 在代码中启用调试
import logging
logging.basicConfig(level=logging.DEBUG)-
安全性
- 仅启用必需的MCP服务器
- 使用
autoApprove谨慎地自动批准安全的操作 - 定期审查配置文件
-
性能
- 禁用不需要的服务器(设置
disabled: true) - 合理设置环境变量
- 及时清理资源
- 禁用不需要的服务器(设置
-
维护性
- 使用描述性的服务器名称
- 添加注释说明配置用途
- 版本控制配置文件
如果你想开发自己的MCP服务器,请参考:
如果遇到问题,请:
- 查看本指南的故障排除部分
- 运行测试脚本验证配置
- 提交Issue到项目仓库