Resolve binlog MCP from the dnceng dotnet-public feed - #49
Merged
Conversation
The `binlog` server ran `dnx --yes Microsoft.AITools.BinlogMcp` with no feed pinned, so it resolved via whatever ambient NuGet configuration applied — the repo NuGet.config only takes effect when the agent's working directory is inside this repo. Pin it to the dnceng dotnet-public feed with `--source` so the server resolves deterministically regardless of working directory. The nuget.org source stays, since `hlx` (lewing.helix.mcp) and `maestro` (lewing.maestro.mcp) still resolve from it; the NuGet.config comment is updated to reflect that. Verified: `dnx --yes --source <dotnet-public> Microsoft.AITools.BinlogMcp` starts aitools-binlog-mcp 2.0.1 and completes an MCP initialize handshake. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eef3a5cc-7c9b-41b2-88e5-fbc7e786f3f2
Warnings (11)
|
Contributor
There was a problem hiding this comment.
Pull request overview
Pins the binlog MCP server package restore to a specific NuGet feed so Microsoft.AITools.BinlogMcp resolves deterministically regardless of the agent’s working directory (e.g., when analyzing another repo).
Changes:
- Update
plugins/dotnet-dnceng/plugin.jsonto pass--source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.jsonwhen launching thebinlogserver viadotnet dnx. - Update the
NuGet.configcomment to clarify thatnuget.orgis retained for thehlx/maestroservers and is no longer relied on bybinlog.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| plugins/dotnet-dnceng/plugin.json | Pins Microsoft.AITools.BinlogMcp resolution to the dnceng dotnet-public feed via --source. |
| NuGet.config | Updates comment to reflect current source usage (nuget.org for hlx/maestro, not binlog). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Evangelink
approved these changes
Jul 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
binlogMCP server was declared asdnx --yes Microsoft.AITools.BinlogMcpwith no feed pinned, soMicrosoft.AITools.BinlogMcpresolved through ambient NuGet configuration. The repo-rootNuGet.configonly applies when the agent's working directory is inside this repo — and for a binlog-analysis workflow the working directory is usually the repo being investigated, notarcade-skills. So the documented intent ("this source hosts BinlogMcp") did not actually hold in the common case.This pins the server to the dnceng dotnet-public feed via
--source, making resolution deterministic regardless of working directory:--source(rather than--add-source) replaces all sources. That is safe here because .NET tool packages bundle their dependencies — only the single package needs to be restored.The existing argument order is preserved (options first, package ID last), matching the neighbouring
hlxandmaestroservers, so the change is a pure insertion.dnxisdotnet tool execand uses System.CommandLine, so known options are matched regardless of position; both orderings were verified to start the server successfully.Files changed
plugins/dotnet-dnceng/plugin.json— pin thebinlogserver to dotnet-public.NuGet.config— thenuget.orgsource stays (it is still needed by thehlx/maestroservers, which resolvelewing.helix.mcpandlewing.maestro.mcpfrom nuget.org). Only the comment is updated, since it previously attributed the source solely toMicrosoft.AITools.BinlogMcp.Validation
Package availability confirmed on dotnet-public: versions
1.0.0,2.0.0,2.0.1(all stable, so--prereleaseis not needed).lewing.helix.mcpconfirmed still present on nuget.org, so keeping that source is correct.End-to-end server start against the pinned feed, piping an MCP
initializerequest into the server:NuGet.configre-validated as well-formed XML (note: the comment deliberately avoids writing the literal--source, since--is illegal inside an XML comment), andplugins/dotnet-dnceng/plugin.jsonas valid JSON.No
eng/known-domains.txtchange needed: the existingdev.azure.comentry matches all subdomains, which coverspkgs.dev.azure.com.Related
Companion PR: dotnet/skills#969 makes the same change for the
dotnet-msbuildplugin, which publishes abinlogserver under the same name.