Files
dotnet__skills/eng/skill-validator/tests/Check/CheckCommandTests.cs
YuliiaKovalova be7b56028c Fix Codex discovery of the dotnet-msbuild binlog MCP server (#1070)
* Fix Codex discovery of the dotnet-msbuild binlog MCP server

.codex-plugin/plugin.json declared "mcpServers": "./.mcp.json", but the file
was packaged at .codex-plugin/.mcp.json. Codex resolves manifest resource
paths against the plugin root, so it looked for
plugins/dotnet-msbuild/.mcp.json and never found the binlog server.

Declare the server inline in .codex-plugin/plugin.json, matching the root
plugin.json and .claude-plugin/plugin.json, and drop the unreachable file.

Add a packaging regression check to skill-validator: every companion manifest
must declare the same MCP servers as the root plugin.json, and a manifest
referencing an external .mcp.json must resolve it from the plugin root the way
hosts do. skill-check.yml already runs `skill-validator check` over plugins/*
on every PR, so this now blocks in CI. A test also loads the shipped
dotnet-msbuild manifests and asserts binlog is present in each.

Fixes #1069

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Report non-object JSON roots as validation errors

JsonElement.TryGetProperty throws InvalidOperationException when the root
value is not an object, so a manifest or referenced .mcp.json that is valid
JSON but not an object (null, array, string) crashed skill-validator instead
of producing a validation error.

Check the root kind while reading and surface it as a structured error.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-27 17:58:26 +00:00

22 KiB