Class DefaultMcpClient.Builder

java.lang.Object
dev.langchain4j.mcp.client.DefaultMcpClient.Builder
Enclosing class:
DefaultMcpClient

public static class DefaultMcpClient.Builder extends Object
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • transport

      public DefaultMcpClient.Builder transport(McpTransport transport)
      Sets the transport protocol to use for communicating with the MCP server. This is a mandatory parameter. A successfully constructed DefaultMcpClient takes over the resource ownership of this transport and will close it when it itself is closed.
    • key

      public DefaultMcpClient.Builder key(String key)
      Sets a unique identifier for the client. If none is provided, a UUID will be automatically generated.
    • clientName

      public DefaultMcpClient.Builder clientName(String clientName)
      Sets the name that the client will use to identify itself to the MCP server in the initialization message. The default value is "langchain4j".
    • clientVersion

      public DefaultMcpClient.Builder clientVersion(String clientVersion)
      Sets the version string that the client will use to identify itself to the MCP server in the initialization message. The default value is "1.0".
    • protocolVersion

      public DefaultMcpClient.Builder protocolVersion(String protocolVersion)
      Sets the protocol version that the client will advertise in the initialization message. The default value right now is "2024-11-05", but will change over time in later langchain4j versions.
    • initializationTimeout

      public DefaultMcpClient.Builder initializationTimeout(Duration initializationTimeout)
      Sets the timeout for initializing the client. The default value is 30 seconds.
    • toolExecutionTimeout

      public DefaultMcpClient.Builder toolExecutionTimeout(Duration toolExecutionTimeout)
      Sets the timeout for tool execution. This value applies to each tool execution individually. The default value is 60 seconds. A value of zero means no timeout.
    • resourcesTimeout

      public DefaultMcpClient.Builder resourcesTimeout(Duration resourcesTimeout)
      Sets the timeout for resource-related operations (listing resources as well as reading the contents of a resource). The default value is 60 seconds. A value of zero means no timeout.
    • promptsTimeout

      public DefaultMcpClient.Builder promptsTimeout(Duration promptsTimeout)
      Sets the timeout for prompt-related operations (listing prompts as well as rendering the contents of a prompt). The default value is 60 seconds. A value of zero means no timeout.
    • toolExecutionTimeoutErrorMessage

      public DefaultMcpClient.Builder toolExecutionTimeoutErrorMessage(String toolExecutionTimeoutErrorMessage)
      Sets the error message to return when a tool execution times out. The default value is "There was a timeout executing the tool".
    • logHandler

      public DefaultMcpClient.Builder logHandler(McpLogMessageHandler logHandler)
      Sets the log message handler for the client.
    • pingTimeout

      public DefaultMcpClient.Builder pingTimeout(Duration pingTimeout)
      The timeout to apply when waiting for a ping response. Currently, this is only used in the health check - if the server does not send a pong within this timeframe, the health check will fail. The timeout is 10 seconds.
    • reconnectInterval

      public DefaultMcpClient.Builder reconnectInterval(Duration reconnectInterval)
      The delay before attempting to reconnect after a failed connection. The default is 5 seconds.
    • autoHealthCheck

      public DefaultMcpClient.Builder autoHealthCheck(boolean autoHealthCheck)
      Enables or disables the automatic health check feature. When enabled, the client will periodically send ping messages to the server to ensure the connection is alive, and will attempt to reconnect if it's not. The default is enabled
    • autoHealthCheckInterval

      public DefaultMcpClient.Builder autoHealthCheckInterval(Duration interval)
      Sets the interval for the automatic health checks. This is only used when the auto health check feature is enabled. The default is 30 seconds
    • roots

      public DefaultMcpClient.Builder roots(List<McpRoot> roots)
      Specify the initial set of roots that are available to the server upon its request.
    • cacheToolList

      public DefaultMcpClient.Builder cacheToolList(boolean cacheToolList)
      If set to true, the client will cache the tool list obtained from the server until it's notified by the server that the tools have changed or until the cache is evicted. If set to false, there is no tool caching and the client will always fetch the tool list from the server. The default is true.
    • cacheResourceList

      public DefaultMcpClient.Builder cacheResourceList(boolean cacheResourceList)
      If set to true, the client will cache the resource and resource template lists obtained from the server until it's notified by the server that the resources have changed. If set to false, there is no caching and the client will always fetch the resource list from the server. The default is true.
    • cachePromptList

      public DefaultMcpClient.Builder cachePromptList(boolean cachePromptList)
      If set to true, the client will cache the prompt list obtained from the server until it's notified by the server that the prompts have changed. If set to false, there is no caching and the client will always fetch the prompt list from the server. The default is true.
    • listener

      public DefaultMcpClient.Builder listener(McpClientListener listener)
      Sets a listener to receive MCP client events. A listener is notified before and after each call to the MCP server. Currently, this applies to tool calls, resource retrievals, and prompt retrievals.
    • progressHandler

      public DefaultMcpClient.Builder progressHandler(McpProgressHandler progressHandler)
      Sets the progress handler for the client. When set, the client will include a progress token in tool execution requests, and progress notifications received from the server will be forwarded to this handler.
    • metaSupplier

      public DefaultMcpClient.Builder metaSupplier(McpMetaSupplier metaSupplier)
      Sets a supplier of _meta fields for MCP client requests and notifications. The supplier is called before every request or notification sent to the server. Unlike HTTP headers, this applies to all transports.
    • onResourceUpdated

      public DefaultMcpClient.Builder onResourceUpdated(BiConsumer<McpClient, String> onResourceUpdated)
      Sets a callback to be invoked when the server sends a notifications/resources/updated notification for a subscribed resource. The callback receives the instance of the affected MCP client and the URI of the updated resource.
    • build

      public DefaultMcpClient build()