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
```