From 52dc886c666122f9eb746d5e547f24e6365c9c62 Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" Date: Fri, 7 Aug 2026 10:46:49 +0000 Subject: [PATCH] fix: mcp.json server-path gate selects the PLUGIN_ROOT arg instead of joining args Joining every arg made an empty args list resolve to the repo root (gate passed on a manifest naming no server file) and made a legitimate multi-arg invocation resolve to a bogus path. --- bin/check.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/check.js b/bin/check.js index d6db136..ecb7c5b 100644 --- a/bin/check.js +++ b/bin/check.js @@ -402,8 +402,10 @@ if (apMcp.$schema !== AP_MCP_SCHEMA) { } } const ingest = apServers['fdeops-ingest'] - const target = ingest && (ingest.args || []).join(' ').replace('${PLUGIN_ROOT}/', '') + const rootArg = ingest && (ingest.args || []).find(a => String(a).startsWith('${PLUGIN_ROOT}/')) + const target = rootArg && String(rootArg).replace('${PLUGIN_ROOT}/', '') if (!ingest) fail('mcp.json must declare the fdeops-ingest stdio server') + else if (!target) fail('mcp.json fdeops-ingest must pass a ${PLUGIN_ROOT}-relative server path in args') else if (!fs.existsSync(path.join(root, target))) fail(`mcp.json fdeops-ingest points at missing ${target}`) else ok('agent plugins mcp config') }