Fix dotnet-msbuild Codex plugin install by externalizing mcpServers#740
Conversation
Skill Coverage Report
Uncovered:
|
There was a problem hiding this comment.
Pull request overview
This PR updates the dotnet-msbuild plugin manifests to match the Codex plugin spec by externalizing the MCP server configuration into a dedicated .mcp.json file, fixing marketplace installation failures caused by an invalid inline mcpServers shape.
Changes:
- Added
plugins/dotnet-msbuild/.mcp.jsoncontaining thebinlogMCP server definition. - Updated
plugins/dotnet-msbuild/plugin.jsonto referencemcpServersvia./.mcp.json(string path) instead of an inline object. - Updated
plugins/dotnet-msbuild/.codex-plugin/plugin.jsonsimilarly.
Show a summary per file
| File | Description |
|---|---|
| plugins/dotnet-msbuild/plugin.json | Switches mcpServers from inline object to external file reference for Codex compatibility. |
| plugins/dotnet-msbuild/.mcp.json | Introduces the externalized MCP server configuration payload. |
| plugins/dotnet-msbuild/.codex-plugin/plugin.json | Mirrors the external mcpServers reference for the Codex-specific manifest. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/3 changed files
- Comments generated: 1
ad6e5da to
084f874
Compare
Move the inline mcpServers configuration to a separate .mcp.json file inside .codex-plugin/, and update .codex-plugin/plugin.json to reference it via a relative path string. This matches the Codex plugin spec which requires mcpServers to be a path reference to a .mcp.json file rather than an embedded object. The root plugin.json retains the inline mcpServers format for the skill-validator. Both validator methods (FindPluginMcpServers and ExternalDependencyChecker.CheckPlugin) are updated to also handle the Codex string path format for forward compatibility. Fixes #738 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
084f874 to
c47aa13
Compare
- Reject rooted paths and paths with '..' segments to prevent directory traversal when resolving mcpServers string references. - Log parse errors in ResolveMcpFile to stderr (consistent with plugin.json parse error handling) instead of silently swallowing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/evaluate |
Skill Validation Results
[1] (Isolated) Quality unchanged but weighted score is -24.5% due to: judgment, quality, tokens (13416 → 29254), tool calls (0 → 1)
Model: claude-opus-4.6 | Judge: claude-opus-4.6 🔍 Full Results - additional metrics and failure investigation steps
▶ Sessions Visualisation -- interactive replay of all evaluation sessions |
Summary
Fixes #738 — thanks @grevgeny for filing this with a clear repro and root cause analysis!
The
dotnet-msbuildCodex plugin fails to install because themcpServersconfiguration is embedded inline inplugin.jsonas an object. Per the Codex plugin spec,mcpServersshould be a string path pointing to an external.mcp.jsonfile.Changes
plugins/dotnet-msbuild/.codex-plugin/.mcp.jsoncontaining the MCP server configurationplugins/dotnet-msbuild/.codex-plugin/plugin.jsonto reference./.mcp.jsoninstead of embedding the config inlineplugins/dotnet-msbuild/plugin.jsonretains inlinemcpServersfor the skill-validatorFindPluginMcpServersandExternalDependencyChecker.CheckPlugin) to also handle the Codex string path format for forward compatibilityVerification
This matches the fix verified locally by the issue reporter, and aligns with the Codex plugin-json-spec which states: