Files
LazyBearWorks/Libraries/Confluence/Program.cs
2026-04-13 13:40:32 +03:00

73 lines
2.2 KiB
C#

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<WebApplication>();
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";
});