McpTool
Turns an MCP Tool into an ADK BaseTool.
The tool holds no session of its own: it fetches the shared session from mcpSessionManager on each call and, on failure, asks the manager to reinitialize it. Because the manager owns the session pool, a reinit is seen by every tool sharing the session and the toolset can close them all via SessionManager.close.
Properties
The MCP tool annotations as an SDK-neutral value, exposed for framework interop.
The custom metadata of the tool.
The description of the tool.
Whether the tool's final result will be delivered out-of-band. When true, the framework marks the call as long-running and uses the tool's return value as the function-response payload. Returning Unit means "no response yet": the FR event is suppressed so the function-call event (which carries the call id in longRunningToolIds and is thus the turn's final response) ends the turn without re-invoking the model. A non-Unit return -- including an explicit empty Map -- is treated as a real response and emitted. (Unit suppression aligns with Python; Java instead always emits {}.) The longRunningToolIds id also drives the resumable-mode pause gate so the invocation can be resumed later via a user-injected function-response.
Functions
Returns a workflow node that runs this tool as a fixed step: the predecessor's output becomes the tool's arguments, and the tool's result becomes the node's output.
Returns the underlying function declaration.
Processes the LLM request before it is sent.