ADK for TypeScript: API Reference
    Preparing search index...

    Class MCPTool

    Represents a tool exposed via the Model Context Protocol (MCP).

    This class acts as a wrapper around a tool definition received from an MCP server. It translates the MCP tool's schema into a format compatible with the Gemini AI platform (FunctionDeclaration) and handles the remote execution of the tool by communicating with the MCP server through an MCPSessionManager.

    When an LLM decides to call this tool, the runAsync method will be invoked, which in turn establishes an MCP session, sends a callTool request with the provided arguments, and returns the result from the remote tool.

    The originalName parameter allows the tool to track the native tool name exposed by the MCP server. This is critical when the toolset applies a prefix to tool names (e.g., for LLM namespace disambiguation), ensuring the correct original name is used when executing on the server.

    Hierarchy (View Summary)

    Constructors

    Properties

    "[BASE_TOOL_SIGNATURE_SYMBOL]": true

    A unique symbol to identify ADK base tool class.

    description: string
    isLongRunning: boolean
    name: string

    Accessors

    Methods

    • Gets the OpenAPI specification of this tool in the form of a FunctionDeclaration.

      NOTE

      • Required if subclass uses the default implementation of processLlmRequest to add function declaration to LLM request.
      • Otherwise, can be skipped, e.g. for a built-in GoogleSearch tool for Gemini.

      Returns FunctionDeclaration

      The FunctionDeclaration of this tool, or undefined if it doesn't need to be added to LlmRequest.config.

    • Whether this tool needs a human to approve args before it runs.

      The gate itself lives in the tool that owns it (see FunctionTool), but the resume path has to ask the same question a turn later, to check that an approval it is about to honour belongs to a tool that gates at all. A tool that never gates returns false here, which is the safe default: an approval naming it is meaningless and gets rejected rather than executed. Mirrors Python's BaseTool.check_require_confirmation.

      Parameters

      • _args: Record<string, unknown>

        The arguments the tool would run with.

      • Optional_toolContext: Context

        The context of the call, when there is one.

      Returns Promise<boolean>

      Whether the call requires confirmation.

    • Runs the tool with the given arguments and context.

      NOTE

      • Required if this tool needs to run at the client side.
      • Otherwise, can be skipped, e.g. for a built-in GoogleSearch tool for Gemini.

      Parameters

      Returns Promise<unknown>

      A promise that resolves to the tool response.