SuperAPI AI 工具集

troubleshoot-binlog-mcp

部署与运维

查看项目

更新于 10-28 01:58

技能介绍

用途

该技能用于诊断 dotnet-msbuild binlog MCP 服务器的启动失败问题,例如 CONNECTION_CLOSED、binlog 服务器无法连接、缺少 binlog 工具、Microsoft.AITools.BinlogMcp 相关错误等。它解释插件 binlog MCP 服务器为何无法连接,并给出基于证据、符合策略的恢复方案。它诊断的是服务器启动,而不是构建中记录的错误,因此不需要 binlog 文件或项目构建。

该技能按需运行。它无法看到从未暴露给代理的宿主错误,不能注入会话启动上下文,也不能仅因插件已安装就保证激活。

主要能力

  1. 确定失败点:使用用户错误以及已有的宿主 MCP 状态或启动日志。CONNECTION_CLOSED 仅表示传输关闭,并不说明原因,不能直接等同于“包缺失”。如果 binlog 服务器已连接且工具可发现,则停止启动排查,继续原有 binlog 分析。如果插件技能已加载但 binlog 服务器未加载,则继续排查。如果插件本身未安装/启用或未注册服务器,应先处理宿主配置。如果执行或宿主日志不可用,说明该限制并给出用户可运行的下一步命令,绝不声称已检查日志或修复连接。

  2. 匹配宿主工作区与 SDK:从可用配置中发现受影响的工作区目录以及宿主实际的 MCP 命令、参数和环境。随附命令为:

dotnet dnx Microsoft.AITools.BinlogMcp --yes --prerelease

应在该工作区使用宿主环境运行诊断,而不是在插件目录或具有不同 NuGet 设置的临时目录中运行。检查:

dotnet --info dotnet --version dotnet nuget list source

检查适用的 global.json 和继承的 NuGet 配置,包括父级/用户配置、clear、禁用的源以及 packageSourceMapping。工作区 clear 可能将默认 nuget.org 源替换为缺少此包的私有镜像。已安装的 SDK 不一定是此目录中选定的 SDK。随附的 dotnet dnx 命令需要 .NET 10+ SDK。不要将凭据设置、私有源 URL、令牌或凭据提供程序输出转储到答案中。

  1. 捕获真实启动错误:优先使用失败宿主已有的启动日志。否则从受影响工作区原样复现其启动命令一次,捕获 stdout 和 stderr 以及退出代码。最初不要添加 --source、替换配置、移除 global.json、清除缓存或安装另一副本。stdio MCP 服务器可能保持运行等待协议输入。观察启动时保持 stdin 打开,并使用有界执行(例如 30 秒),仅清理诊断进程树。使用宿主支持的超时/取消机制;如果无法安全清理,请用户本地运行命令。不要留下后台服务器运行,也不要杀死无关的 dotnet 进程。超时、静默或进程打开并不证明 MCP 已初始化。

仅在包可用性仍不明确时,在同一工作区设置下运行以下支持性探测,并使用有界执行:

dotnet package search Microsoft.AITools.BinlogMcp --exact-match --prerelease --format json

检查 searchResult[].packages 中的确切包 ID 和版本,并检查顶层和每个源的问题。退出代码为零本身并不表示搜索成功。

观察到的证据与诊断及下一步行动对应关系: dnx 报告配置的源中没有匹配版本——这些设置未解析该包,检查已批准的镜像是否提供此确切包的预发布版本。 搜索返回无包且无源问题——仅表示搜索的源缺少列出的匹配项,不能证明 dnx 必然失败。 搜索有顶层/每源问题、HTTP 401/403、TLS、网络或凭据提供程序错误——可用性未验证,而非“包缺失”,先解决具体的源/访问失败。 搜索找到包但 dnx 失败——遵循启动错误,搜索不应用 package source mapping,检查映射、还原/下载访问和运行时要求。 缺少 dotnet、无法识别 dnx 或 SDK 选择错误——修复宿主的 PATH/SDK 选择,考虑 global.json,不要静默升级仓库或移除其 SDK 固定。 超时、不支持的搜索命令或格式错误/非 JSON 输出——报告不确定的探测,使用启动日志或用户运行的诊断。 启动成功但宿主连接仍失败——调查宿主实际命令/环境和 MCP 初始化日志。 一旦证据确定下一步行动,不要重复昂贵的探测。

  1. 选择符合策略的恢复方案:推荐由观察到的失败支持的最小更改。让源所有者将 Microsoft.AITools.BinlogMcp 及其所需版本/依赖项镜像到已批准的源,或更正排除它的已批准映射。当观察到的问題是已批准源的认证、连接或证书配置时,修复它。绝不要建议禁用证书验证。仅在组织策略允许且用户批准时添加 nuget.org。不要移除 clear、禁用源映射或覆盖源以绕过企业策略。如果适当且已批准,从已批准的源安装工具并将其 binlog-mcp 可执行文件注册为宿主的替代 MCP 服务器。确认可执行文件路径并避免注册重复服务器。仅安装本身不是连接恢复。对于 SDK/PATH 问题,使所需 SDK 对宿主可用或使用故意配置的替代启动。在更改仓库 SDK 选择前询问。未经用户批准,不要编辑 NuGet 设置、宿主注册或 SDK 固定。如果策略阻止恢复,请说明。对于现有 binlog,提供 binlog-failure-analysis 中的文本日志重放回退,而不是因 MCP 修复而阻塞构建诊断。

  2. 验证并报告:在批准的更改后,使用宿主支持的控制重新连接/重启服务器。确认 MCP 初始化以及包含 binlog 工具(如 binlog_overview)的工具列表。如果有 binlog 可用,恢复原始分析。报告观察到的原因(或仍未知的内容)、相关的脱敏证据、最小恢复方案以及实际验证的内容。以一行状态结束:

MCP status: connected

仅在宿主发现服务器工具后使用 connected,在观察到启动/连接失败时使用 failed,在仅有探测或建议时使用 unverified。绝不要用“找到包”或“已安装工具”代替已验证的 MCP 连接。

使用方式

该技能按需运行,通过用户提供的错误、宿主 MCP 状态或启动日志来定位失败原因。它匹配宿主工作区与 SDK,捕获真实启动错误,并在符合策略的前提下给出最小化的恢复建议,最后验证 MCP 是否真正连接成功。

适用场景

适用于诊断 dotnet-msbuild binlog MCP 服务器的启动失败,例如 CONNECTION_CLOSED、binlog 服务器无法连接、缺少 binlog 工具、Microsoft.AITools.BinlogMcp 相关错误等。

限制

该技能无法看到从未暴露给代理的宿主错误,不能注入会话启动上下文,也不能仅因插件已安装就保证激活。它诊断的是服务器启动,而不是构建中记录的错误,因此不需要 binlog 文件或项目构建。