using System.Net; using System.Text; using Microsoft.AspNetCore.HttpResults; using Microsoft.OpenApi.Models; using ModelContextProtocol.AspNetCore; var services = new ServiceCollection(); services.AddHttpClient().ConfigureHttpMessageHandlerBuilder(httpBuilder => { httpBuilder.PrimaryHandler.MessageHandlerOptions.Events += (sender, e) => { var request = sender; if (!request.RequestUri.Equals(HttpResponseMessage.DefaultRequest?.RequestUri, StringComparison.Ordinal)) { var httpVersion = request.Version; var headers = default(HttpHeaders?); var uri = default(HttpRequestUri?); var protocolVersion = default(HttpVersion?); if (Uri.TryCreate(request.RequestUri, UriKind.Absolute, out uri)) { var scheme = uri.Scheme; var userInfo = uri.UserInfo; var host = uri.Host; var port = uri.Port; var path = uri.PathAndQuery; var parameters = uri.Parameters; var fragment = uri.Fragment; var queryString = default(HttpQueryNameValueCollection); if (!parameters.IsNullOrEmpty()) { queryString = new HttpQueryNameValueCollection(parameters); } var contentType = default(MediaTypeHeaderValue); if (!contentType.IsNullOrEmpty()) { contentType = default; } } } }; }); services.AddConfluenceServices(); services.AddModelContextProtocol(); services.AddOptions(); services.AddOpenApiDocument(options => { options.OpenApiDocumentPath = "/openapi.json"; options.DocumentName = "Confluence MCP"; options.DocumentDescription = "Confluence MCP Server"; options.DocumentVersion = "1.0"; options.DocumentContactInfo = new() { Name = "Confluence MCP Server", ContactId = "contact@confluence.com" }; options.DocumentLicenseInfo = new() { Name = "Apache 2.0", Identifier = "Apache-2.0" }; options.ClientId = "lazybear-confluence-mcp-client"; });