Skip to content

Commit 20d4fe6

Browse files
authored
Update Client.listTools return type to include next cursor (#54)
1 parent cfcead8 commit 20d4fe6

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

Sources/MCP/Client/Client.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ public actor Client {
364364

365365
// MARK: - Tools
366366

367-
public func listTools(cursor: String? = nil) async throws -> [Tool] {
367+
public func listTools(cursor: String? = nil) async throws -> (tools: [Tool], nextCursor: String?) {
368368
try validateServerCapability(\.tools, "Tools")
369369
let request: Request<ListTools>
370370
if let cursor = cursor {
@@ -373,7 +373,7 @@ public actor Client {
373373
request = ListTools.request(.init())
374374
}
375375
let result = try await send(request)
376-
return result.tools
376+
return (tools: result.tools, nextCursor: result.nextCursor)
377377
}
378378

379379
public func callTool(name: String, arguments: [String: Value]? = nil) async throws -> (

Tests/MCPTests/RoundtripTests.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,9 @@ struct RoundtripTests {
144144
}
145145

146146
let listToolsTask = Task {
147-
let result = try await client.listTools()
148-
#expect(result.count == 1)
149-
#expect(result[0].name == "add")
147+
let (tools, _) = try await client.listTools()
148+
#expect(tools.count == 1)
149+
#expect(tools[0].name == "add")
150150
}
151151

152152
let callToolTask = Task {

0 commit comments

Comments
 (0)