From 20d4fe6f5ae0dd628e135b6b05a9bb51a1b09089 Mon Sep 17 00:00:00 2001 From: Mattt Date: Wed, 9 Apr 2025 16:20:55 -0700 Subject: [PATCH] Update Client.listTools return type to include next cursor (#54) --- Sources/MCP/Client/Client.swift | 4 ++-- Tests/MCPTests/RoundtripTests.swift | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Sources/MCP/Client/Client.swift b/Sources/MCP/Client/Client.swift index 50de056..19c6029 100644 --- a/Sources/MCP/Client/Client.swift +++ b/Sources/MCP/Client/Client.swift @@ -364,7 +364,7 @@ public actor Client { // MARK: - Tools - public func listTools(cursor: String? = nil) async throws -> [Tool] { + public func listTools(cursor: String? = nil) async throws -> (tools: [Tool], nextCursor: String?) { try validateServerCapability(\.tools, "Tools") let request: Request if let cursor = cursor { @@ -373,7 +373,7 @@ public actor Client { request = ListTools.request(.init()) } let result = try await send(request) - return result.tools + return (tools: result.tools, nextCursor: result.nextCursor) } public func callTool(name: String, arguments: [String: Value]? = nil) async throws -> ( diff --git a/Tests/MCPTests/RoundtripTests.swift b/Tests/MCPTests/RoundtripTests.swift index e8bccb9..39abda3 100644 --- a/Tests/MCPTests/RoundtripTests.swift +++ b/Tests/MCPTests/RoundtripTests.swift @@ -144,9 +144,9 @@ struct RoundtripTests { } let listToolsTask = Task { - let result = try await client.listTools() - #expect(result.count == 1) - #expect(result[0].name == "add") + let (tools, _) = try await client.listTools() + #expect(tools.count == 1) + #expect(tools[0].name == "add") } let callToolTask = Task {