Claude Agent通过Model Context Protocol (MCP)支持各种外部工具集成。
call_tool - 调用MCP工具list_tools - 列出可用工具list_resources - 列出可用资源read_resource - 读取资源内容list_prompts - 列出可用提示模板get_prompt - 获取提示模板initialize - 初始化MCP会话# 文件操作工具示例配置 await mcp_manager.load_mcp_server( "filesystem", "python", ["-m", "mcp_filesystem_server"] )
功能: 文件读写、目录操作、文件搜索
# HTTP请求工具示例 await mcp_manager.load_mcp_server( "http_tools", "python", ["-m", "mcp_http_server"] )
功能: HTTP请求、API调用、网页抓取
# 数据库连接工具示例 await mcp_manager.load_mcp_server( "database", "python", ["-m", "mcp_database_server", "--db-url", "sqlite:///app.db"] )
功能: SQL查询、数据库操作、数据分析
# Git操作工具示例 await mcp_manager.load_mcp_server( "git_tools", "python", ["-m", "mcp_git_server"] )
功能: Git仓库操作、代码版本管理
# 系统命令工具示例 await mcp_manager.load_mcp_server( "system", "python", ["-m", "mcp_system_server"] )
功能: 系统命令执行、进程管理、环境变量
from claude_agent.mcp.integration import MCPToolManager # 创建工具管理器 mcp_manager = MCPToolManager() # 加载文件系统工具 await mcp_manager.load_mcp_server( "filesystem", "mcp-server-filesystem" ) # 列出可用工具 tools = mcp_manager.get_available_tools() print("可用工具:", tools) # 调用工具 result = await mcp_manager.call_tool( "filesystem.read_file", {"path": "/path/to/file.txt"} )
# Agent会自动集成MCP工具 agent = AgentCore() # 用户可以通过自然语言请求使用工具 response = await agent.process_user_input( "请帮我读取config.json文件的内容" )
setup_default_tools中配置加载# 在MCPToolIntegration.setup_default_tools()中添加 await self.tool_manager.load_mcp_server( "custom_tool", "python", ["-m", "my_custom_mcp_server"] )
| 工具类型 | 服务器包 | 功能描述 |
|---|---|---|
| 文件系统 | mcp-server-filesystem | 文件读写、目录操作 |
| Git | mcp-server-git | Git仓库管理 |
| SQLite | mcp-server-sqlite | SQLite数据库操作 |
| HTTP | mcp-server-fetch | HTTP请求和API调用 |
| Shell | mcp-server-shell | Shell命令执行 |
| 时间 | mcp-server-time | 时间和日期处理 |
# 安装文件系统工具 pip install mcp-server-filesystem # 安装Git工具 pip install mcp-server-git
在claude_agent/mcp/integration.py的setup_default_tools方法中添加:
async def setup_default_tools(self): # 加载文件系统工具 await self.tool_manager.load_mcp_server( "filesystem", "mcp-server-filesystem" ) # 加载Git工具 await self.tool_manager.load_mcp_server( "git", "mcp-server-git" )
⚠️ 安全性: MCP工具具有系统访问权限,使用时需要注意安全 ⚠️ 权限管理: 建议实现工具调用权限控制 ⚠️ 错误处理: 确保工具调用失败时有适当的降级机制