From 0664faf8bdf18e3ed2e74a67778225046a71a8b9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Dec 2025 00:55:36 +0000 Subject: [PATCH 1/2] Initial plan From 173508298a6447ac85b7644cdf8b6f4eb0fb4536 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Dec 2025 01:02:53 +0000 Subject: [PATCH 2/2] Add WithCertificateTrustConfiguration for Node.js dev cert trust in MCP Inspector Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com> --- .../McpInspectorResourceBuilderExtensions.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/CommunityToolkit.Aspire.Hosting.McpInspector/McpInspectorResourceBuilderExtensions.cs b/src/CommunityToolkit.Aspire.Hosting.McpInspector/McpInspectorResourceBuilderExtensions.cs index 2a939fe35..6142d494f 100644 --- a/src/CommunityToolkit.Aspire.Hosting.McpInspector/McpInspectorResourceBuilderExtensions.cs +++ b/src/CommunityToolkit.Aspire.Hosting.McpInspector/McpInspectorResourceBuilderExtensions.cs @@ -48,6 +48,32 @@ public static IResourceBuilder AddMcpInspector(this IDistr .WithNpm(install: true, installArgs: ["-y", $"@modelcontextprotocol/inspector@{options.InspectorVersion}", "--no-save", "--no-package-lock"]) .WithCommand("npx") .WithArgs(["-y", $"@modelcontextprotocol/inspector@{options.InspectorVersion}"]) + .WithCertificateTrustConfiguration(ctx => + { + if (ctx.Scope == CertificateTrustScope.Append) + { + ctx.EnvironmentVariables["NODE_EXTRA_CA_CERTS"] = ctx.CertificateBundlePath; + } + else + { + if (ctx.EnvironmentVariables.TryGetValue("NODE_OPTIONS", out var existingOptionsObj)) + { + ctx.EnvironmentVariables["NODE_OPTIONS"] = existingOptionsObj switch + { + // Attempt to append to existing NODE_OPTIONS if possible, otherwise overwrite + string s when !string.IsNullOrEmpty(s) => $"{s} --use-openssl-ca", + ReferenceExpression re => ReferenceExpression.Create($"{re} --use-openssl-ca"), + _ => "--use-openssl-ca", + }; + } + else + { + ctx.EnvironmentVariables["NODE_OPTIONS"] = "--use-openssl-ca"; + } + } + + return Task.CompletedTask; + }) .ExcludeFromManifest() .WithHttpEndpoint(isProxied: false, port: options.ClientPort, env: "CLIENT_PORT", name: McpInspectorResource.ClientEndpointName) .WithHttpEndpoint(isProxied: false, port: options.ServerPort, env: "SERVER_PORT", name: McpInspectorResource.ServerProxyEndpointName)