Class McpToolProvider
java.lang.Object
dev.langchain4j.mcp.McpToolProvider
- All Implemented Interfaces:
ToolProvider
A tool provider backed by one or more MCP clients.
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
McpToolProvider
(List<McpClient> mcpClients, boolean failIfOneServerFails, BiPredicate<McpClient, ToolSpecification> mcpToolsFilter, Function<ToolExecutor, ToolExecutor> toolWrapper, McpResourcesAsToolsPresenter resourcesAsToolsPresenter, BiFunction<McpClient, ToolSpecification, String> toolNameMapper, BiFunction<McpClient, ToolSpecification, ToolSpecification> toolSpecificationMapper) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addFilter
(BiPredicate<McpClient, ToolSpecification> filter) Adds a tools filter that will act in conjunction (AND) with the eventually existing ones.void
addMcpClient
(McpClient client) Adds a new MCP client to the list of clients.static McpToolProvider.Builder
builder()
provideTools
(ToolProviderRequest request) Provides tools for the request to the LLM.protected ToolProviderResult
provideTools
(ToolProviderRequest request, BiPredicate<McpClient, ToolSpecification> mcpToolsFilter) void
removeMcpClient
(McpClient client) Removes an MCP client from the list of clients.void
Resets the all the eventually existing tools filters.void
setFilter
(BiPredicate<McpClient, ToolSpecification> filter) Sets the tools filter overriding the eventually existing ones.void
setToolNameMapper
(BiFunction<McpClient, ToolSpecification, String> toolNameMapper) Sets the tool name mapper overriding the current one.void
setToolSpecificationMapper
(BiFunction<McpClient, ToolSpecification, ToolSpecification> toolSpecificationMapper) Sets the tool specification mapper overriding the current one.
-
Constructor Details
-
McpToolProvider
protected McpToolProvider(List<McpClient> mcpClients, boolean failIfOneServerFails, BiPredicate<McpClient, ToolSpecification> mcpToolsFilter, Function<ToolExecutor, ToolExecutor> toolWrapper, McpResourcesAsToolsPresenter resourcesAsToolsPresenter, BiFunction<McpClient, ToolSpecification, String> toolNameMapper, BiFunction<McpClient, ToolSpecification, ToolSpecification> toolSpecificationMapper)
-
-
Method Details
-
addMcpClient
Adds a new MCP client to the list of clients.- Parameters:
client
- the MCP client to add
-
removeMcpClient
Removes an MCP client from the list of clients.- Parameters:
client
- the MCP client to remove
-
addFilter
Adds a tools filter that will act in conjunction (AND) with the eventually existing ones.- Parameters:
filter
- the filter to add
-
setFilter
Sets the tools filter overriding the eventually existing ones.- Parameters:
filter
- the filter to add
-
setToolNameMapper
Sets the tool name mapper overriding the current one. The mapper can be null, in which case the tool names will be used as-is. -
setToolSpecificationMapper
public void setToolSpecificationMapper(BiFunction<McpClient, ToolSpecification, ToolSpecification> toolSpecificationMapper) Sets the tool specification mapper overriding the current one. The mapper can be null, in which case the tool specifications will be used as-is. -
resetFilters
public void resetFilters()Resets the all the eventually existing tools filters. -
provideTools
Description copied from interface:ToolProvider
Provides tools for the request to the LLM.- Specified by:
provideTools
in interfaceToolProvider
- Parameters:
request
- theToolProviderRequest
, containsUserMessage
,ChatMemory
ID (seeMemoryId
) andInvocationParameters
.- Returns:
ToolProviderResult
contains tools that should be included in the request to the LLM.
-
provideTools
protected ToolProviderResult provideTools(ToolProviderRequest request, BiPredicate<McpClient, ToolSpecification> mcpToolsFilter) -
builder
-