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 流程

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 许可发布