Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Aspire.Hosting.ApplicationModel;
using Aspire.Hosting.JavaScript;
using CommunityToolkit.Hosting.Utils;
using Microsoft.Extensions.DependencyInjection;

Expand Down Expand Up @@ -54,9 +53,36 @@ public static IResourceBuilder<McpInspectorResource> AddMcpInspector(this IDistr

var packageName = $"@modelcontextprotocol/inspector@{options.InspectorVersion}";

var resourceBuilder = builder.AddResource(new McpInspectorResource(name, packageName));
var resourceBuilder = builder.AddResource(new McpInspectorResource(name, packageName))
.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";
}
}

resourceBuilder
return Task.CompletedTask;
})
.ExcludeFromManifest()
.WithInspectorArgs()
.WithDefaultArgs()
Expand Down
Loading