blob: 87407fb82b81c73778bb89796160088c5e862b37 [file] [log] [blame] [view] [raw]
# Claude Agent MCP工具支持
Claude Agent通过Model Context Protocol (MCP)支持各种外部工具集成。
## 当前MCP架构
### 核心功能
- **动态MCP服务器加载**: 支持运行时加载MCP服务器
- **工具发现和注册**: 自动发现并注册MCP工具
- **工具调用管理**: 统一的工具调用接口
- **会话管理**: 管理MCP客户端会话生命周期
### 支持的MCP功能
- `call_tool` - 调用MCP工具
- `list_tools` - 列出可用工具
- `list_resources` - 列出可用资源
- `read_resource` - 读取资源内容
- `list_prompts` - 列出可用提示模板
- `get_prompt` - 获取提示模板
- `initialize` - 初始化MCP会话
## 可集成的MCP工具类型
### 1. 文件系统工具
```python
# 文件操作工具示例配置
await mcp_manager.load_mcp_server(
"filesystem",
"python",
["-m", "mcp_filesystem_server"]
)
```
**功能**: 文件读写、目录操作、文件搜索
### 2. 网络工具
```python
# HTTP请求工具示例
await mcp_manager.load_mcp_server(
"http_tools",
"python",
["-m", "mcp_http_server"]
)
```
**功能**: HTTP请求、API调用、网页抓取
### 3. 数据库工具
```python
# 数据库连接工具示例
await mcp_manager.load_mcp_server(
"database",
"python",
["-m", "mcp_database_server", "--db-url", "sqlite:///app.db"]
)
```
**功能**: SQL查询、数据库操作、数据分析
### 4. Git工具
```python
# Git操作工具示例
await mcp_manager.load_mcp_server(
"git_tools",
"python",
["-m", "mcp_git_server"]
)
```
**功能**: Git仓库操作、代码版本管理
### 5. 系统工具
```python
# 系统命令工具示例
await mcp_manager.load_mcp_server(
"system",
"python",
["-m", "mcp_system_server"]
)
```
**功能**: 系统命令执行、进程管理、环境变量
## 当前实现状态
### ✅ 已实现
- MCP客户端基础架构
- 工具加载和管理框架
- 工具调用接口
- 错误处理机制
### 🚧 需要配置
- 具体MCP服务器实例
- 工具权限管理
- 工具调用认证
## 使用示例
### 基础用法
```python
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中使用
```python
# Agent会自动集成MCP工具
agent = AgentCore()
# 用户可以通过自然语言请求使用工具
response = await agent.process_user_input(
"请帮我读取config.json文件的内容"
)
```
## 扩展MCP工具
### 添加新的MCP服务器
1. 实现MCP服务器协议
2. `setup_default_tools`中配置加载
3. 更新Agent的工具调用逻辑
### 自定义MCP工具
```python
# 在MCPToolIntegration.setup_default_tools()中添加
await self.tool_manager.load_mcp_server(
"custom_tool",
"python",
["-m", "my_custom_mcp_server"]
)
```
## 常见MCP工具服务器
| 工具类型 | 服务器包 | 功能描述 |
|---------|---------|---------|
| 文件系统 | `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` | 时间和日期处理 |
## 配置MCP工具
### 1. 安装MCP服务器
```bash
# 安装文件系统工具
pip install mcp-server-filesystem
# 安装Git工具
pip install mcp-server-git
```
### 2. 配置加载
`claude_agent/mcp/integration.py``setup_default_tools`方法中添加:
```python
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工具具有系统访问权限,使用时需要注意安全
⚠️ **权限管理**: 建议实现工具调用权限控制
⚠️ **错误处理**: 确保工具调用失败时有适当的降级机制
## 未来扩展
- [ ] 工具权限管理系统
- [ ] 工具调用日志和审计
- [ ] 更多内置MCP工具服务器
- [ ] 工具调用结果缓存
- [ ] 并发工具调用支持