Skip to content

Resolve binlog MCP from the dnceng dotnet-public feed - #49

Merged
Evangelink merged 1 commit into
mainfrom
binlog-mcp-dotnet-public-feed
Jul 30, 2026
Merged

Resolve binlog MCP from the dnceng dotnet-public feed#49
Evangelink merged 1 commit into
mainfrom
binlog-mcp-dotnet-public-feed

Conversation

@YuliiaKovalova

@YuliiaKovalova YuliiaKovalova commented Jul 30, 2026

Copy link
Copy Markdown
Member

Summary

The binlog MCP server was declared as dnx --yes Microsoft.AITools.BinlogMcp with no feed pinned, so Microsoft.AITools.BinlogMcp resolved through ambient NuGet configuration. The repo-root NuGet.config only 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, not arcade-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:

"binlog": {
  "command": "dotnet",
  "args": [
    "dnx",
    "--yes",
    "--source",
    "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json",
    "Microsoft.AITools.BinlogMcp"
  ]
}

--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 hlx and maestro servers, so the change is a pure insertion. dnx is dotnet tool exec and 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 the binlog server to dotnet-public.
  • NuGet.config — the nuget.org source stays (it is still needed by the hlx / maestro servers, which resolve lewing.helix.mcp and lewing.maestro.mcp from nuget.org). Only the comment is updated, since it previously attributed the source solely to Microsoft.AITools.BinlogMcp.

Validation

  • Package availability confirmed on dotnet-public: versions 1.0.0, 2.0.0, 2.0.1 (all stable, so --prerelease is not needed).

  • lewing.helix.mcp confirmed still present on nuget.org, so keeping that source is correct.

  • End-to-end server start against the pinned feed, piping an MCP initialize request into the server:

    Server (aitools-binlog-mcp 2.0.1) method 'initialize' request handler called.
    Server (aitools-binlog-mcp 2.0.1), Client (probe 1.0) method 'initialize' request handler completed in 21.5654ms.
    
  • NuGet.config re-validated as well-formed XML (note: the comment deliberately avoids writing the literal --source, since -- is illegal inside an XML comment), and plugins/dotnet-dnceng/plugin.json as valid JSON.

  • No eng/known-domains.txt change needed: the existing dev.azure.com entry matches all subdomains, which covers pkgs.dev.azure.com.

Related

Companion PR: dotnet/skills#969 makes the same change for the dotnet-msbuild plugin, which publishes a binlog server under the same name.

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
Copilot AI review requested due to automatic review settings July 30, 2026 16:22
@github-actions

Copy link
Copy Markdown

Warnings (11)

  • plugins/dotnet-compliance/skills/binskim-analysis — ~4491 tokens (chars/4) — approaching 'comprehensive' range where gains diminish.
  • plugins/dotnet-compliance/skills/binskim-scan — ~3779 tokens (chars/4) — approaching 'comprehensive' range where gains diminish.
  • plugins/dotnet-dnceng/skills/binlog-failure-analysis — ~4105 tokens (chars/4) — approaching 'comprehensive' range where gains diminish.
  • plugins/dotnet-dnceng/skills/ci-analysis — ~2736 tokens (chars/4) — approaching 'comprehensive' range where gains diminish.
  • plugins/dotnet-dnceng/skills/ci-analysis — no code blocks — agents perform better with concrete snippets and commands.
  • plugins/dotnet-dnceng/skills/ci-crash-dump — ~3892 tokens (chars/4) — approaching 'comprehensive' range where gains diminish.
  • plugins/dotnet-dnceng/skills/ci-crash-dump — no numbered workflow steps — agents follow sequenced procedures more reliably.
  • plugins/dotnet-dnceng/skills/flow-analysis — ~5452 tokens (chars/4) — 'comprehensive' skills hurt performance. Consider splitting into 2-3 focused skills.
  • plugins/dotnet-dnceng/skills/helix-investigation — ~4534 tokens (chars/4) — approaching 'comprehensive' range where gains diminish.
  • plugins/dotnet-dnceng/skills/pipeline-investigation — ~4464 tokens (chars/4) — approaching 'comprehensive' range where gains diminish.
  • plugins/dotnet-dnceng/skills/test-arcade — ~2628 tokens (chars/4) — approaching 'comprehensive' range where gains diminish.

View workflow run

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.json to pass --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json when launching the binlog server via dotnet dnx.
  • Update the NuGet.config comment to clarify that nuget.org is retained for the hlx / maestro servers and is no longer relied on by binlog.

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
Evangelink merged commit 7b63bbd into main Jul 30, 2026
4 checks passed
@Evangelink
Evangelink deleted the binlog-mcp-dotnet-public-feed branch July 30, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants