Skip to content

13.6 MCP 输出限制与管理

了解和管理 MCP 服务器的输出限制,确保高效使用。

输出限制

默认限制

MCP 工具输出有默认限制:

  • 令牌限制 : 10,000 令牌
  • 字符限制 : 约 40,000 字符
  • 响应时间 : 30 秒超时

增加输出限制

使用 MAX_MCP_OUTPUT_TOKENS 环境变量增加限制:

设置 50,000 令牌限制

MAX_MCP_OUTPUT_TOKENS=50000 claude

设置 100,000 令牌限制

MAX_MCP_OUTPUT_TOKENS=100000 claude

超时设置

使用 MCP_TIMEOUT 环境变量设置超时:

    bash


    # 设置 10 秒超时
    MCP_TIMEOUT=10000 claude

    # 设置 60 秒超时
    MCP_TIMEOUT=60000 claude

## 输出管理

### 分页处理


当输出超过限制时,使用分页:

# 第 1 页

查询用户表的前 100 条记录

# 第 2 页

查询用户表的第 101-200 条记录

# 第 3 页

查询用户表的第 201-300 条记录

    bash


    ### 流式输出
    使用流式输出处理大结果:


bash

# 流式输出

流式输出所有用户数据

# 输出到文件

将用户数据输出到文件 users.json

### 批处理

### 批处理

使用批处理处理大量数据:

    bash


    # 批量处理
    批量处理用户数据,每批 100 条

## 输出优化

### 查询优化

优化查询以减少输出:

    bash


    # 只查询需要的列
    查询用户表的 ID 和姓名

    # 使用过滤条件
    查询用户表中活跃的用户

    # 限制结果数量
    查询用户表的前 100 条记录

### 数据聚合

聚合数据以减少输出:

聚合数据

查询用户表的总数和平均年龄

分组统计

按部门统计用户数量

yaml
    bash


    ### 缓存结果

    缓存结果以减少重复查询:

    ```bash

    # 启用缓存

```yaml
    启用用户表缓存

    # 查看缓存
    显示缓存状态

    # 清除缓存
    清除用户表缓存

    ```

    ## 输出监控

    ### 监控输出大小

    ```bash
    # 查看输出统计
    显示 MCP 输出统计


    **输出示例**:

    MCP 输出统计:

    github:
    > - 平均输出:5,000 令牌
    > - 最大输出:15,000 令牌
    > - 超限次数:5

    database:
    > - 平均输出:8,000 令牌
    > - 最大输出:25,000 令牌
    > - 超限次数:10


    ### 监控响应时间

    # 查看响应时间

    显示 MCP 响应时间

    > **输出示例**:

    ```> MCP 响应时间:

    github:
    > - 平均响应:100ms
    > - 最大响应:500ms
    > - 超时次数:2

    database:
    > - 平均响应:50ms
    > - 最大响应:200ms
    > - 超时次数:1

    ## 输出警告

    ### 警告类型

    #### 1. 输出超限警告

    警告:MCP 工具输出超过 10,000 令牌限制
    建议:增加 MAX_MCP_OUTPUT_TOKENS 或优化查询

    #### 2. 响应超时警告

    警告:MCP 工具响应超过 30 秒超时
    建议:增加 MCP_TIMEOUT 或优化查询

    #### 3. 输出截断警告

    警告:MCP 工具输出被截断
    建议:使用分页或流式输出

    ### 处理警告

    ```bash
    # 处理输出超限警告
    增加 MAX_MCP_OUTPUT_TOKENS 到 50,000

    # 处理响应超时警告
    增加 MCP_TIMEOUT 到 60 秒

    # 处理输出截断警告
    使用分页查询

    ```

    ## 输出格式化

    ### JSON 格式

    ```bash
    # 输出为 JSON
    查询用户表,输出为 JSON

    ```

    ### CSV 格式

    ```bash
    # 输出为 CSV
    查询用户表,输出为 CSV

    ```

    ### Markdown 格式

    ```bash
    # 输出为 Markdown
    查询用户表,输出为 Markdown 表格

    ```

    ## 输出存储

    ## 输出存储

    ### 保存到文件

    ```bash
    # 保存到文件
    将用户数据保存到 users.json

    # 追加到文件
    将用户数据追加到 users.json

    ```

    ### 导出到数据库

    ```bash
    # 导出到数据库
    将用户数据导出到数据库

    ```

    ### 上传到云存储

    ```bash
    # 上传到 S3
    将用户数据上传到 S3

    ```

    ## 输出安全

    ### 敏感数据过滤

    ```bash
    # 过滤敏感数据
    查询用户表,过滤密码字段

    ```

    ### 数据脱敏

    ```bash
    # 脱敏数据
    查询用户表,脱敏邮箱地址

    ```

    ### 访问控制

    ```bash
    # 限制输出访问
    限制用户表输出只能被管理员访问

    ```

    ## 最佳实践

    ### 1. 合理设置限制

    ```bash
    # 根据需求设置限制
    MAX_MCP_OUTPUT_TOKENS=50000 claude
    MCP_TIMEOUT=30000 claude

    ```

    ### 2. 优化查询

    ```bash
    # 只查询需要的数据
    查询用户表的 ID 和姓名
    # 使用过滤条件
    查询用户表中活跃的用户
    # 限制结果数量
    查询用户表的前 100 条记录

    ```

    ### 3. 使用分页

    ```bash
    # 使用分页处理大数据
    查询用户表,每页 100 条

    ```

    ### 4. 启用缓存

    ```bash
    # 启用缓存减少重复查询
    启用用户表缓存

    ```

    ### 5. 监控输出

    ```bash
    # 定期监控输出统计
    显示 MCP 输出统计

    # 识别超限情况
    显示超限次数

    ```

    ## 故障排除

    ### 输出超限

    > **问题**: 输出超过限制

    > **解决方案**:

    ```bash
    # 1. 增加限制
    MAX_MCP_OUTPUT_TOKENS=50000 claude
    # 2. 优化查询
    只查询需要的列
    # 3. 使用分页
    分页查询数据
    # 4. 使用流式输出
    流式输出数据

    ```

    ### 响应超时

    > **问题**: 响应超时

    > **解决方案**:

    ```bash
    # 1. 增加超时
    MCP_TIMEOUT=60000 claude

    # 2. 优化查询
    使用索引优化查询

    # 3. 减少数据量
    限制查询结果数量

    # 4. 使用后台任务
    在后台运行长时间查询

    ```

    ### 输出截断

    > **问题**: 输出被截断

    > **解决方案**:

    ```bash
    # 1. 使用分页
    分页查询数据
    # 2. 使用流式输出
    流式输出数据
    # 3. 保存到文件
    将数据保存到文件
    # 4. 增加限制
    MAX_MCP_OUTPUT_TOKENS=100000 claude

    ```

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