Confluence init
This commit is contained in:
52
Libraries/Confluence/ConfluenceSpacesTools.cs
Normal file
52
Libraries/Confluence/ConfluenceSpacesTools.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using LazyBear.Confluence;
|
||||
using ModelContextProtocol.Server;
|
||||
|
||||
namespace LazyBear.Confluence;
|
||||
|
||||
[McpServerToolType]
|
||||
public sealed class ConfluenceSpacesTools(ConfluenceHttpClientProvider provider)
|
||||
{
|
||||
private readonly ConfluenceHttpClientProvider _provider = provider;
|
||||
private readonly string? _initializationError = provider.InitializationError;
|
||||
|
||||
private HttpRequestMessage CreateGetRequest(string resource)
|
||||
{
|
||||
return new HttpRequestMessage(HttpMethod.Get, resource);
|
||||
}
|
||||
|
||||
[McpServerTool, Description("Список всех пространств Confluence")]
|
||||
public async Task<string> ListSpacesAsync(CancellationToken cancellationToken = default)
|
||||
{
|
||||
var resource = "rest/api/cloud/space";
|
||||
var request = CreateGetRequest(resource);
|
||||
|
||||
return "Spaces: [" + LimitToSpaces(resource, request) + "]";
|
||||
}
|
||||
|
||||
[McpServerTool, Description("Получить детали пространства Confluence")]
|
||||
public async Task<string> GetSpaceAsync(
|
||||
[Description("key пространства")] string? key = null,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(key))
|
||||
{
|
||||
return "key пространства Confluence не задан.";
|
||||
}
|
||||
|
||||
var resource = $"rest/api/cloud/space/{key}";
|
||||
var request = CreateGetRequest(resource);
|
||||
|
||||
return "Space details: " + key;
|
||||
}
|
||||
|
||||
[McpServerTool, Description("Иерархия пространств Confluence")]
|
||||
public async Task<string> GetSpacesHierarchyAsync(CancellationToken cancellationToken = default)
|
||||
{
|
||||
return "Hierarchy: [" + LimitToSpaces("", null) + "]";
|
||||
}
|
||||
|
||||
private string LimitToSpaces(string resource, HttpRequestMessage? request)
|
||||
{
|
||||
return "Spaces: [" + resource + "]";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user