// Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI.Foundry.Hosting; /// /// Options for Foundry Toolbox MCP integration. /// [Experimental(DiagnosticIds.Experiments.AIOpenAIResponses)] public sealed class FoundryToolboxOptions { /// /// Gets the list of toolbox names to connect to at startup. /// Each name corresponds to a toolbox registered in the Foundry project. /// The platform proxy URL is constructed as: /// {FOUNDRY_PROJECT_ENDPOINT}/toolboxes/{toolboxName}/mcp?api-version={ApiVersion} /// per tools-integration-spec.md §2–§3. /// public IList ToolboxNames { get; } = []; /// /// Gets or sets the Toolboxes API version to use when constructing proxy URLs. /// public string ApiVersion { get; set; } = "v1"; /// /// Gets or sets a value indicating whether per-request toolbox markers (referenced via /// foundry-toolbox:// on the wire) are restricted to toolboxes pre-registered /// via . When (the default), a request /// that references an unknown toolbox is rejected. When , the /// server lazily opens an MCP connection for the referenced toolbox on first use and /// caches it. /// public bool StrictMode { get; set; } = true; /// /// For testing only: overrides the toolbox proxy base URL (skipping the /// FOUNDRY_PROJECT_ENDPOINT-derived default). When set, the proxy URL /// becomes {EndpointOverride}/toolboxes/{toolboxName}/mcp?api-version={ApiVersion}. /// Not part of the public API. /// internal string? EndpointOverride { get; set; } }