Skip to content
This repository was archived by the owner on Feb 14, 2025. It is now read-only.

Commit e9bafe9

Browse files
committed
feat(client): add convenience methods for listing operations without cursor
Add overloaded methods for list operations (tools, resources, templates, prompts) that don't require a cursor parameter. This simplifies the API for cases where pagination is not needed.
1 parent 972519b commit e9bafe9

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

spring-ai-mcp-core/src/main/java/org/springframework/ai/mcp/client/McpAsyncClient.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,15 @@ public Mono<McpSchema.CallToolResult> callTool(McpSchema.CallToolRequest callToo
132132
* Send a tools/list request.
133133
* @return the list of tools result.
134134
*/
135+
public Mono<McpSchema.ListToolsResult> listTools() {
136+
return this.listTools(null);
137+
}
138+
139+
/**
140+
* Send a tools/list request.
141+
* @param cursor the cursor
142+
* @return the list of tools result.
143+
*/
135144
public Mono<McpSchema.ListToolsResult> listTools(String cursor) {
136145
return this.sendRequest("tools/list", new McpSchema.PaginatedRequest(cursor), LIST_TOOLS_RESULT_TYPE_REF);
137146
}
@@ -149,6 +158,14 @@ public Mono<McpSchema.ListToolsResult> listTools(String cursor) {
149158
private static TypeReference<McpSchema.ListResourceTemplatesResult> LIST_RESOURCE_TEMPLATES_RESULT_TYPE_REF = new TypeReference<McpSchema.ListResourceTemplatesResult>() {
150159
};
151160

161+
/**
162+
* Send a resources/list request.
163+
* @return the list of resources result.
164+
*/
165+
public Mono<McpSchema.ListResourcesResult> listResources() {
166+
return this.listResources(null);
167+
}
168+
152169
/**
153170
* Send a resources/list request.
154171
* @param cursor the cursor
@@ -177,6 +194,17 @@ public Mono<McpSchema.ReadResourceResult> readResource(McpSchema.ReadResourceReq
177194
return this.sendRequest("resources/read", readResourceRequest, READ_RESOURCE_RESULT_TYPE_REF);
178195
}
179196

197+
/**
198+
* Resource templates allow servers to expose parameterized resources using URI
199+
* templates. Arguments may be auto-completed through the completion API.
200+
*
201+
* Request a list of resource templates the server has.
202+
* @return the list of resource templates result.
203+
*/
204+
public Mono<McpSchema.ListResourceTemplatesResult> listResourceTemplates() {
205+
return this.listResourceTemplates(null);
206+
}
207+
180208
/**
181209
* Resource templates allow servers to expose parameterized resources using URI
182210
* templates. Arguments may be auto-completed through the completion API.
@@ -229,10 +257,28 @@ public Mono<Void> unsubscribeResource(McpSchema.UnsubscribeRequest unsubscribeRe
229257
private static TypeReference<McpSchema.GetPromptResult> GET_PROMPT_RESULT_TYPE_REF = new TypeReference<McpSchema.GetPromptResult>() {
230258
};
231259

260+
/**
261+
* List all available prompts.
262+
* @return the list of prompts result.
263+
*/
264+
public Mono<ListPromptsResult> listPrompts() {
265+
return this.listPrompts(null);
266+
}
267+
268+
/**
269+
* List all available prompts.
270+
* @param cursor the cursor
271+
* @return the list of prompts result.
272+
*/
232273
public Mono<ListPromptsResult> listPrompts(String cursor) {
233274
return this.sendRequest("prompts/list", new PaginatedRequest(cursor), LIST_PROMPTS_RESULT_TYPE_REF);
234275
}
235276

277+
/**
278+
* Get a prompt by its id.
279+
* @param getPromptRequest the get prompt request.
280+
* @return the get prompt result.
281+
*/
236282
public Mono<GetPromptResult> getPrompt(GetPromptRequest getPromptRequest) {
237283
return this.sendRequest("prompts/get", getPromptRequest, GET_PROMPT_RESULT_TYPE_REF);
238284
}

0 commit comments

Comments
 (0)