WIBLOG · Technological & Life

聊技术,也聊那些值得认真琢磨的生活小事。

377篇文章6个内容分类
RECENT NOTES

最近更新

查看归档

MCP 工具结果的 isError 语义:业务失败与协议错误混用为何让 Agent 误判重试

远程 MCP Server 执行查询工具时,把参数校验失败、业务空结果和传输异常都塞进 isError 或 content 文本,会让客户端与模型无法区分可重试与不可重试。本文拆解 CallToolResult 中 isError 的定位、错误分类混用的失效机制,对比结构化错误码方案,并给出校验点与可观测指标。

MCP stdio 传输的 stderr 阻塞:服务端写满标准错误缓冲区为何让工具调用挂起

本地 MCP Server 用 stdout 传 JSON-RPC、用 stderr 写日志时,客户端若不读取 stderr,管道缓冲区写满后服务端会阻塞在写日志调用上,工具调用随之无响应。本文从管道缓冲机制出发,解释阻塞的形成过程、日志级别与异步写入的缓解效果,并给出可观测指标和部署边界。

MCP 提示模板参数校验:为什么客户端按 prompts/get 传入的参数会被服务端拒绝

远程 MCP Server 暴露带必填参数的提示模板时,客户端常因参数名大小写、缺失或类型不符收到 -32602 错误。本文沿 prompts/list 的 arguments 声明到 prompts/get 校验链路,解释服务端如何判定参数合法,对比客户端预校验与服务端宽松解析的取舍,并给出可观测指标与部署边界。

查看全部文章 ↗