Skip to content

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.0

MCP 支持 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
# 错误处理建议
捕获并记录所有错误
提供清晰的错误信息和恢复方案
实现自动重试机制

```

基于 MIT 许可发布 | 永久导航