mcpField
T
troubleshoot-binlog-mcp

troubleshoot-binlog-mcp

github.com/dotnet开发5.8k399 次安装1 天前更新
代码仓库

关于 troubleshoot-binlog-mcp

用于诊断插件的 binlog MCP 服务为何无法启动或连接。它指导检查宿主的 .NET 与 NuGet 环境,并依据证据提出合规恢复方案,未经批准不更改配置。

主要功能

  1. 01判读启动与连接证据
  2. 02检查工作区 SDK 和 NuGet 源
  3. 03保持原条件采集启动错误
  4. 04提出符合策略的恢复方案
  5. 05验证 MCP 工具发现

适用场景

  1. 01排查 binlog 服务启动失败
  2. 02区分源访问问题与 SDK 错误
  3. 03按企业源策略选择恢复方案

MCP 相关

指导排查和验证 binlog MCP 服务,包括确认宿主能发现其工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dotnet/skills --skill troubleshoot-binlog-mcp

安装后在 Claude Code 中输入/troubleshoot-binlog-mcp确认已加载。

详细介绍

排查 Binlog MCP 启动问题

说明插件的 binlog MCP 服务无法连接的原因,并给出有证据依据且符合安全策略的恢复方案。此处排查的是服务启动,而非构建中记录的故障。 无需 binlog 文件或项目构建。

此技能按需运行。它无法查看未向 Agent 暴露的主机错误,无法注入会话启动上下文,也无法保证仅因安装了插件就会激活。

1. 确定故障原因

使用用户提供的错误,以及当前可用的任何主机 MCP 状态或启动日志。 CONNECTION_CLOSED 仅说明传输已关闭,并未说明原因。不要直接将其解读为“缺少程序包”。

  • 如果 binlog 服务已连接且可发现其工具,请停止排查启动问题。 继续原始 binlog 分析;不要更改正常工作的配置。
  • 如果插件技能已加载,但其 binlog 服务未加载,请继续执行下文步骤。
  • 如果插件本身未安装或未启用,或者未注册任何服务,请先处理主机配置。未尝试启动前,不要排查 NuGet 程序包解析问题。
  • 如果无法获取执行记录或主机日志,请说明这一限制,并提供下一条由用户运行的命令。绝不要声称自己检查过日志或修复了连接。

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、令牌或凭据提供程序输出。根据需要在本地检查,并报告经过脱敏的源标签和相关错误。

3. 捕获实际启动错误

优先使用发生故障的宿主已有的启动日志。否则,从受影响的工作区执行一次未更改的启动命令,并捕获标准输出、标准错误和退出代码。最初不要添加 --source、替换配置、移除 global.json、清除缓存或安装另一个副本:这些操作会改变诊断条件。

stdio MCP 服务可能会保持运行,等待协议输入。观察启动情况时,请保持 stdin 打开,并使用有时限的执行(例如 30 秒),且只清理诊断进程树,包括凭据提供程序的子进程。使用宿主支持的超时/取消机制;如果无法安全清理,请让用户在本地运行命令。不要让后台服务继续运行,也不要终止无关的 dotnet 进程。超时、无输出或进程仍在运行,都不能证明 MCP 已初始化。

只有在包是否可用仍不明确时,才在相同的工作区设置下运行以下辅助探测,并设置执行时限:

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

检查 searchResult[].packages 中的确切包 ID 和版本,并检查顶层及各来源的 problems。仅凭退出代码为零,不能证明搜索成功。

观察到的证据诊断和下一步
dnx 报告配置的软件源中没有匹配的版本这些设置未能解析该包。检查获准的镜像是否提供此确切包的预发布版本。
搜索未返回任何包,也没有来源问题只有已搜索的软件源没有列出匹配项。这不能证明 dnx 一定会失败:缓存中的工具或未列出的版本仍可能可用。
搜索出现顶层/来源问题、HTTP 401/403、TLS、网络或凭据提供程序错误可用性尚未验证,不能据此认定“缺少包”。先解决具体的软件源/访问故障,即使搜索以零退出也一样。
搜索找到了包,但 dnx 失败根据启动错误继续排查。搜索不会应用包源映射;请检查映射、还原/下载访问权限和运行时要求。不要宣称连接正常。
缺少 dotnet、无法识别 dnx,或 SDK 选择错误修复宿主的 PATH/SDK 选择。考虑 global.json;不要悄悄升级存储库或移除其 SDK 固定版本。
超时、不支持搜索命令,或输出格式错误/非 JSON报告探测结果不确定。使用启动日志或让用户运行诊断;不要推断包不存在或搜索成功。
启动成功,但宿主连接仍失败调查宿主实际使用的命令/环境和 MCP 初始化日志;此时,已证明的问题不再是包发现。

一旦证据足以确定下一步,就不要重复运行耗时的探测。

4. 选择符合策略的恢复方案

根据观察到的故障,建议最小的变更:

  • 请源的所有者将 Microsoft.AITools.BinlogMcp 及其所需版本和依赖项镜像到获批源,或修正排除该包的获批映射。
  • 如果观察到的问题是获批源的身份验证、连接或证书配置,请修复相应配置。切勿建议禁用证书验证。
  • 仅在组织策略允许且用户批准变更时,才添加 nuget.org。不要移除 clear、禁用源映射或覆盖源来绕过企业策略。
  • 如果合适且获得批准,请从获批源安装该工具,并向宿主注册其 binlog-mcp 可执行文件,将其作为替代 MCP 服务。确认可执行文件的路径,并避免注册重复的服务。仅安装并不能恢复连接。
  • 对于 SDK/PATH 问题,请确保宿主可以使用所需的 SDK,或采用经过明确配置的替代启动方式。更改仓库的 SDK 选择前,请先征求批准。

未经用户批准,不要编辑 NuGet 设置、宿主注册或 SDK 固定版本。 如果策略阻止恢复,请如实说明。对于现有的 binlog,请提供 binlog-failure-analysis 中的文本日志回放备用方案,不要因修复 MCP 而阻碍构建诊断。

5. 验证并报告

获批变更后,使用宿主支持的控件重新连接/重启服务。 确认 MCP 初始化成功,且工具列表中包含 binlog_overview 等 binlog 工具。如果有 binlog,请继续原始分析。

报告观察到的原因(或仍未知的部分)、相关的脱敏证据、最小恢复措施,以及实际验证的内容。最后以一行状态结束:

MCP status: connected

仅当宿主发现该服务的工具后,才使用 connected;观察到启动/连接故障时使用 failed;仅有探测结果或建议时使用 unverified。 切勿用“找到包”或“工具已安装”替代经验证的 MCP 连接。

评论

支持 Markdown