Class McpToolProvider

java.lang.Object
dev.langchain4j.mcp.McpToolProvider
All Implemented Interfaces:
ToolProvider

public class McpToolProvider extends Object implements ToolProvider
A tool provider backed by one or more MCP clients.
  • Constructor Details

  • Method Details

    • addMcpClient

      public void addMcpClient(McpClient client)
      Adds a new MCP client to the list of clients.
      Parameters:
      client - the MCP client to add
    • removeMcpClient

      public void removeMcpClient(McpClient client)
      Removes an MCP client from the list of clients.
      Parameters:
      client - the MCP client to remove
    • addFilter

      public void addFilter(BiPredicate<McpClient, dev.langchain4j.agent.tool.ToolSpecification> filter)
      Adds a tools filter that will act in conjunction (AND) with the eventually existing ones.
      Parameters:
      filter - the filter to add
    • setFilter

      public void setFilter(BiPredicate<McpClient, dev.langchain4j.agent.tool.ToolSpecification> filter)
      Sets the tools filter overriding the eventually existing ones.
      Parameters:
      filter - the filter to add
    • setToolNameMapper

      public void setToolNameMapper(BiFunction<McpClient, dev.langchain4j.agent.tool.ToolSpecification, String> toolNameMapper)
      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, dev.langchain4j.agent.tool.ToolSpecification, dev.langchain4j.agent.tool.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

      public ToolProviderResult provideTools(ToolProviderRequest request)
      Specified by:
      provideTools in interface ToolProvider
    • provideTools

      protected ToolProviderResult provideTools(ToolProviderRequest request, BiPredicate<McpClient, dev.langchain4j.agent.tool.ToolSpecification> mcpToolsFilter)
    • builder

      public static McpToolProvider.Builder builder()