csharp-scripts
Run file-based C# apps with the .NET CLI when the user explicitly wants C#/.NET code without creating a project. Use for C#…
Diagnose dotnet-msbuild binlog MCP startup failures. USE FOR: CONNECTION_CLOSED, binlog server won't connect, missing binlog tools, Microsoft.AITools.BinlogMcp not found, dnx launch errors. Checks workspace SDK, feeds, and source mapping without bypassing policy. DO NOT USE FOR:
$ npx -y skills add dotnet/skills --skill troubleshoot-binlog-mcp --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/troubleshoot-binlog-mcpContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnose dotnet-msbuild binlog MCP startup failures. USE FOR: CONNECTION_CLOSED, binlog server won't connect, missing binlog tools, Microsoft.AITools.BinlogMcp not found, dnx launch errors. Checks workspace SDK, feeds, and source mapping without bypassing policy. DO NOT USE FOR:
name: troubleshoot-binlog-mcp description: "Diagnose dotnet-msbuild binlog MCP startup failures. USE FOR: CONNECTION_CLOSED, binlog server won't connect, missing binlog tools, Microsoft.AITools.BinlogMcp not found, dnx launch errors. Checks workspace SDK, feeds, and source mapping without bypassing policy. DO NOT USE FOR: errors inside a binlog (use binlog-failure-analysis), capturing binlogs (use binlog-generation), unrelated MCP servers." license: MIT
Explain why the plugin's binlog MCP server cannot connect and give an evidence-based, policy-safe recovery. This diagnoses the **server launch**, not failures recorded in a build. No binlog file or project build is needed.
This skill runs on demand. It cannot see a host error that was never exposed to the agent, inject session-start context, or guarantee activation merely because a plugin was installed.
Use the user's error and any host MCP status or startup logs already available. `CONNECTION_CLOSED` alone says that the transport closed, not why. Do not translate it directly into "package missing."
Continue the original binlog analysis; do not change a working setup.
configuration first. Do not diagnose NuGet package resolution without a launch attempt.
the user to run. Never claim to have inspected logs or repaired a connection.
Discover the affected workspace directory and the host's actual MCP command, arguments, and environment from available configuration. The shipped command is:
dotnet dnx Microsoft.AITools.BinlogMcp --yes --prerelease
Run diagnostics from that workspace with the host's environment, not from the plugin directory or a temporary directory with different NuGet settings. Inspect:
dotnet --info dotnet --version dotnet nuget list source
Check the applicable `global.json` and inherited NuGet configuration, including parent/user configuration, `clear`, disabled sources, and `packageSourceMapping`. A workspace `clear` can replace the default nuget.org source with a private mirror that lacks this package. An installed SDK is not necessarily the SDK selected in this directory. The shipped `dotnet dnx` command requires a .NET 10+ SDK.
Do not dump credential settings, private feed URLs, tokens, or credential-provider output into the answer. Inspect locally as needed and report a redacted source label and relevant error.
Prefer an existing startup log from the failing host. Otherwise reproduce its **unchanged** launch command once, from the affected workspace, capturing both stdout and stderr plus the exit code. Do not initially add `--source`, replace the configuration, remove `global.json`, clear caches, or install another copy: those change the conditions being diagnosed.
A stdio MCP server may remain running waiting for protocol input. Keep stdin open while observing startup and use a bounded execution (for example, 30 seconds) with cleanup of only the diagnostic process tree, including credential-provider children. Use the host's supported timeout/cancellation facility; if it cannot safely clean up, ask the user to run the command locally instead. Do not leave a background server running or kill unrelated `dotnet` processes. A timeout, silence, or an open process is **not** proof that MCP initialized.
Only if package availability remains unclear, run this supporting probe under the same workspace settings with a bounded execution:
dotnet package search Microsoft.AITools.BinlogMcp --exact-match --prerelease --format json
Inspect the exact package ID and version in `searchResult[].packages`, and check both top-level and per-source `problems`. Exit code zero alone does not establish a successful search.
| Observed evidence | Diagnosis and next action | |-------------------|---------------------------| | `dnx` reports no matching version in the configured feeds | Those settings did not resolve the package. Check whether the approved mirror provides prerelease versions of this exact package. | | Search returns no packages and no source problems | Only the searched feeds lack a listed match. This is not proof that `dnx` must fail: a cached tool or unlisted version may still work. | | Search has top-level/per-source problems, HTTP 401/403, TLS, network, or credential-provider errors | Availability is unverified, not "package missing." Address the specific feed/access failure first, even if search exited zero. | | Search finds the package but `dnx` fails | Follow the launch error. Search does not apply package source mapping; check mapping, restore/download access, and runtime requirements. Do not declare the connection healthy. | | Missing `dotnet`, unrecognized `dnx`, or SDK selection error | Fix the host's PATH/SDK selection. Account for `global.json`; do not silently upgrade the repository or remove its SDK pin. | | Timeout, unsupported search command, or malformed/non-JSON output | Report an inconclusive probe. Use launch logs or a user-run diagnostic; do not infer absence or success. | | Launch succeeds but host connection still fails | Investigate the host's actual command/environment and MCP initialization logs; package discovery is no longer the demonstrated failure. |
Do not repeat expensive probes once the evidence establishes the next action.
Recommend the smallest change supported by the observed failure:
into an appro
This repository contains the .NET team's curated set of portable skills and host-specific custom agents for coding agents. For information about the Agent Skills standard, see agentskills.io.
Run file-based C# apps with the .NET CLI when the user explicitly wants C#/.NET code without creating a project. Use for C#…
Correctly call native (C/C++) libraries from .NET using P/Invoke and LibraryImport. Covers function signatures, string…
Set up NuGet trusted publishing (OIDC) on a GitHub Actions repo — replaces long-lived API keys with short-lived tokens. USE FOR:…
Design, implement, optimize, and review SIMD code in .NET. USE FOR: vectorizing scalar loops with TensorPrimitives,…
Guides technology selection and implementation of AI and ML features in .NET 8+ applications using ML.NET,…
Guides conversion of a pre-.NET 8 Blazor Server app into a .NET 8+ Blazor Web App. USE FOR: migrating apps that use…