11.2 MCP 核心功能
MCP 提供丰富的核心功能,使 Claude Code 能够与外部工具和数据源无缝集成,极大扩展了 AI 助手的能力边界。
工具调用
基本工具调用
MCP 服务器提供可调用的工具,Claude Code 可以像使用内置工具一样使用它们。这些工具可以是任何类型的服务或应用,从简单的 API 调用到复杂的工作流自动化。
bash
# 使用 MCP 工具的示例
使用 GitHub 工具创建 PR
使用 Sentry 工具查询最近的错误
使用数据库工具查询用户数据
使用 Docker 工具管理容器
### 工具发现Claude Code 会自动发现 MCP 服务器提供的所有工具,并将其集成到用户界面中。用户可以通过简单的命令查看所有可用工具:
bash
bash
# 查看可用的 MCP 工具
/mcp
# 输出示例
MCP 服务器:
- github: 提供 PR、issue、代码搜索等工具
- sentry: 提供错误查询、监控等工具
- database: 提供数据库查询工具
- docker: 提供容器管理工具
### 工具参数MCP 工具可以接受参数,使调用更加灵活和精确。参数可以是位置参数或命名参数:
bash
# 带参数的工具调用
使用 GitHub 工具查看 PR #123
使用数据库工具查询用户 ID 为 456 的信息
使用 Docker 工具启动名为 "web-server" 的容器
## 资源访问
### 资源类型
MCP 服务器可以提供多种类型的资源,让 Claude Code 能够直接访问和操作:
* **数据库表** : 可查询和操作的数据表
* **文件系统** : 可访问的文件和目录
* **API 端点** : 可调用的 REST API
* **配置文件** : 可读取和修改的配置
* **监控数据** : 可查看的系统监控指标
### 资源发现
Claude Code 自动发现 MCP 服务器提供的所有资源,并以直观的方式展示给用户:
bash
# 查看可用的 MCP 资源
/mcp
# 输出示例
MCP 资源:
- database.users: 用户表
- database.orders: 订单表
- filesystem.logs: 日志目录
- api.metrics: 系统监控 API
### 资源访问用户可以通过自然语言命令直接访问 MCP 资源:
javascript
bash
# 访问 MCP 资源的示例
查询数据库中的用户表
读取日志文件 /var/log/app.log
获取系统配置信息
查看最近 24 小时的 CPU 使用率
## 提示模板
### 提示模板定义MCP 服务器可以提供预定义的提示模板,帮助用户快速完成常见任务。这些模板包含最佳实践和标准化格式,确保输出质量。
bash
# 使用 MCP 提示模板的示例
使用 GitHub 的 PR 审查模板
使用 Sentry 的错误分析模板
使用 Jira 的 bug 报告模板
### 提示模板优势
提示模板带来以下优势:
* **标准化** : 统一的提示格式,确保输出质量
* **高效** : 快速开始任务,减少重复工作
* **一致性** : 确保团队成员使用相同的标准
* **可扩展性** : 可以轻松创建和共享新模板
## 身份验证
### OAuth 2.0MCP 支持 OAuth 2.0 身份验证,允许 Claude Code 安全地访问受保护的资源:
bash
# 使用 /mcp 进行身份验证
/mcp
# 选择需要身份验证的服务器
# 按照提示完成 OAuth 流程
### API 密钥MCP 支持 API 密钥身份验证,适用于服务之间的通信:
bash
# 添加带 API 密钥的服务器
claude mcp add --transport http api https://api.example.com/mcp \
--header "Authorization: Bearer your-api-key"
### 环境变量MCP 支持通过环境变量传递凭证,提高安全性和配置灵活性:
bash
# 使用环境变量添加服务器
claude mcp add --transport stdio db --env DB_URL=your-db-url \
-- npx -y @bytebase/dbhub
## 权限管理
### 工具权限MCP 提供细粒度的工具级权限控制,确保用户只能访问他们需要的工具:
bash
# 限制工具访问
claude --allowedTools "Read,Grep,Glob,mcp__github"
### 资源权限MCP 支持资源级权限控制,允许管理员限制对特定资源的访问:
bash
# 限制资源访问示例
只允许访问 database.users 表
禁止修改配置文件
### 操作权限MCP 提供操作级权限控制,允许管理员限制用户可以执行的操作类型:
bash
# 限制操作类型示例
只允许只读操作
禁止删除数据库记录
## 数据流控制
### 输出限制MCP 工具输出有默认限制,防止返回过多数据影响性能:
bash
# 默认限制:10,000 令牌
# 增加限制
MAX_MCP_OUTPUT_TOKENS=50000 claude
### 超时控制MCP 服务器启动有超时限制,防止长时间运行的任务阻塞系统:
bash
# 默认超时:30 秒
# 设置超时
MCP_TIMEOUT=10000 claude
### 流式输出MCP 支持流式输出,允许处理大型数据集而不会占用过多内存:
bash
# 流式输出大结果
使用数据库工具导出所有用户数据
使用日志工具实时监控系统日志
## 错误处理
### 错误捕获MCP 提供详细的错误信息,帮助用户快速定位和解决问题:
bash
# 错误示例
使用 GitHub 工具创建 PR
错误:无法创建 PR - 权限不足
### 错误恢复MCP 提供错误恢复机制,包括自动重试和替代方案建议:
bash
# 自动重试失败的操作
重试失败的数据库查询
# 提供替代方案
使用其他工具完成相同任务
### 错误日志MCP 记录详细的错误日志,方便管理员排查问题:
bash
# 查看错误日志
claude --verbose
## 性能优化
### 缓存
MCP 支持结果缓存:
# 缓存查询结果
使用数据库工具查询用户数据
# 相同查询会使用缓存
bash
### 批处理
MCP 支持批量操作:
```bash
# 批量查询批量查询多个用户
```
### 并行处理
MCP 支持并行处理:
```bash
# 并行执行多个 MCP 工具
同时查询多个数据源
```
## 监控和调试
### 工具使用监控
```bash
# 查看工具使用情况
显示 MCP 工具使用统计
```
### 性能监控
```bash
# 查看性能指标
显示 MCP 工具执行时间
```
### 调试模式
```bash
# 启用调试模式
claude --verbose
```
## 扩展功能
### 自定义工具
MCP 服务器可以提供自定义工具:
```bash
# 使用自定义工具
使用自定义工具处理数据
```
### 插件集成
MCP 可以通过插件集成:
```bash
# 安装带 MCP 的插件
/plugin install my-plugin@claude
```
MCP 提供多种性能优化功能,确保工具调用高效可靠:
### 缓存机制
MCP 支持结果缓存,避免重复调用相同的工具:
```bash
# 启用缓存
claude mcp add --transport http api https://api.example.com/mcp \
--cache-ttl 300
```
### 并行调用
MCP 支持并行调用多个工具,提高处理效率:
```bash
# 并行调用示例
同时使用 GitHub 工具和 Sentry 工具
```
### 插件集成
MCP 可以与插件系统集成,进一步扩展功能:
```bash
# 安装 MCP 插件
/plugin install my-plugin@claude
```
### 技能集成
MCP 可以与技能系统深度集成,实现更复杂的自动化任务:
```bash
# 使用技能调用 MCP 工具
使用数据处理技能调用数据库工具
使用自动化技能执行 DevOps 流程
```
## 安全功能
### 数据加密
MCP 支持数据加密传输,确保敏感信息不被泄露:
```bash
# 加密传输
claude mcp add --transport http secure https://api.example.com/mcp \
--header "Authorization: Bearer encrypted-token"
```
### 审计日志
MCP 记录详细的审计日志,便于追踪和合规检查:
```bash
# 查看审计日志
显示 MCP 工具使用历史
导出审计报告
```
### 访问控制
MCP 提供细粒度的访问控制,确保只有授权用户可以使用特定工具:
```bash
# 控制访问权限
限制特定用户访问 MCP 工具
基于角色的权限分配
```
## 最佳实践
### 1. 合理配置
根据实际需求配置 MCP 服务器,确保最佳性能和安全性:
```bash
# 配置建议
选择合适的传输方式(HTTP 用于远程,stdio 用于本地)
设置适当的超时时间(根据工具响应时间调整)
配置最小权限原则的权限设置
```
### 2. 监控使用
定期监控 MCP 工具使用情况,识别性能瓶颈和优化机会:
```bash
# 监控建议
查看使用统计数据
分析性能指标(响应时间、成功率)
识别高频使用的工具和资源
```
### 3. 安全第一
确保 MCP 配置安全,保护敏感数据和资源:
```bash
# 安全建议
使用强身份验证机制(OAuth 2.0 优于 API 密钥)
限制权限范围,遵循最小权限原则
定期更新凭证和密钥
```
### 4. 错误处理
妥善处理错误,提高系统可靠性和用户体验:
```bash
# 错误处理建议
捕获并记录所有错误
提供清晰的错误信息和恢复方案
实现自动重试机制
```