🧠 图解记忆: 大结果应持久化并返回引用,模型按需分块读取,而不是一次塞满上下文。
💡 答案要点
问题背景:
传统MCP工具调用限制:
- 大型工具输出(数据库查询、日志分析)可能被截断
- 默认结果大小限制导致长输出丢失
- 跨多个工具调用的状态难以保持500K永续化解决方案(Claude Code v2.1.89+):
python
# 之前的问题
@mcp.tool()
def analyze_large_log(log_file: str) -> str:
"""分析大型日志文件"""
# 返回100KB+的内容
result = parse_log(log_file)
return result
# ❌ 之前可能被截断,信息丢失
# 现在的解决方案(Claude Code v2.1.89+)
# MCP工具结果支持最大500KB永续化存储
# 大型输出可以完整保留,不会丢失
# 配置MCP Server时的结果大小限制(可按工具定制)
{
"mcpServers": {
"log-analyzer": {
"command": "python",
"args": ["log_server.py"],
"resultSizeLimit": "500kb" # 该Server所有工具最大500KB
},
"quick-search": {
"command": "python",
"args": ["search_server.py"],
"resultSizeLimit": "100kb" # 小工具限制更小
}
}
}Per-tool MCP result-size overrides(Claude Code Week 14新增):
json
// 每个MCP工具可独立设置结果大小限制
{
"mcpServers": {
"database": {
"command": "python",
"args": ["db_server.py"],
"tools": {
"execute_query": {
"resultSizeLimit": "10mb" # 数据库查询可能很大
},
"get_status": {
"resultSizeLimit": "1kb" # 状态查询很小
}
}
}
}
}解决的问题:
| 场景 | 之前 | 现在 |
|---|---|---|
| 大型SQL查询结果 | 截断丢失 | 500KB完整保留 |
| 日志分析 | 被截断 | 完整分析 |
| 多文件批处理 | 上下文溢出 | 不再截断 |
| 数据库全表导出 | OOM | 正常处理 |
面试话术:
"Claude Code v2.1.89+的500K永续化解决了MCP工具返回数据量不可控的问题。之前大查询结果会被截断,现在500KB内的结果可以完整保留。Per-tool result-size overrides让不同工具可以设置不同的限制——数据库查询可以到10MB,状态查询限制1KB,企业可以精细控制每个工具的资源消耗。"
