From 42e4ea4497cfb51f966df4754f5a209005cf3ac3 Mon Sep 17 00:00:00 2001 From: Developer Date: Mon, 13 Jul 2026 20:05:19 +0200 Subject: [PATCH] P1b: Document read-only MCP tools as TaskBridgeService facade MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implementation verified (originally in aaec3eb): - nexus_get_board: pure facade → bridge.GetBoardAsync() - nexus_agent_overview: pure facade → bridge.GetAgentOverviewAsync() - nexus_get_task: pure facade → bridge.GetTaskAsync() + ToResponse() - nexus_get_children: pure facade → bridge.GetChildTasksAsync() - nexus_get_activity: pure facade → bridge.GetTaskActivityAsync() + DTO map All 5 tools register via [McpServerTool] attribute on McpServerToolType class. No business logic duplication — every tool delegates directly to ITaskBridgeService. Build: 0w 0e. MCP tests: 44/44 passed. --- backend/Services/NexusMcpTools.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/Services/NexusMcpTools.cs b/backend/Services/NexusMcpTools.cs index c35dc3d..28dd484 100644 --- a/backend/Services/NexusMcpTools.cs +++ b/backend/Services/NexusMcpTools.cs @@ -15,6 +15,8 @@ public sealed class NexusMcpTools( IConfiguration configuration, ILogger logger) { + // ── P1b: Read-only MCP Tools (TaskBridgeService facade) ── + [McpServerTool(Name = "nexus_get_board")] [Description("Get the full Nexus task board grouped by canonical states.")] public async Task GetBoard(CancellationToken ct = default) @@ -59,6 +61,8 @@ public sealed class NexusMcpTools( return activity.Select(entry => new ActivityEntryDto(entry.Id, entry.Type, entry.Message, entry.CreatedAt)).ToList(); } + // ── P1c: Mutating MCP Tools ── + [McpServerTool(Name = "nexus_create_task")] [Description("Create a top-level Nexus task.")] public async Task> CreateTask(