Skip to main content

Crate adk_tool

Crate adk_tool 

Source
Expand description

§adk-tool

Tool system for ADK agents (FunctionTool, MCP, Google Search, AgentTool).

§Overview

This crate provides the tool infrastructure for ADK agents:

§Quick Start

use adk_tool::FunctionTool;
use adk_core::{ToolContext, Result};
use serde_json::{json, Value};
use std::sync::Arc;

async fn get_weather(ctx: Arc<dyn ToolContext>, args: Value) -> Result<Value> {
    let city = args["city"].as_str().unwrap_or("Unknown");
    Ok(json!({
        "city": city,
        "temperature": 72,
        "condition": "sunny"
    }))
}

let tool = FunctionTool::new(
    "get_weather",
    "Get current weather for a city",
    get_weather,
);

§MCP Integration

Connect to MCP servers for external tools:

use adk_tool::McpToolset;
use rmcp::{ServiceExt, transport::TokioChildProcess};

let client = ().serve(TokioChildProcess::new(
    Command::new("npx")
        .arg("-y")
        .arg("@modelcontextprotocol/server-filesystem")
        .arg("/path/to/files")
)?).await?;

let toolset = McpToolset::new(client);

Re-exports§

pub use builtin::AnthropicBashTool20241022;
pub use builtin::AnthropicBashTool20250124;
pub use builtin::AnthropicTextEditorTool20250124;
pub use builtin::AnthropicTextEditorTool20250429;
pub use builtin::AnthropicTextEditorTool20250728;
pub use builtin::ExitLoopTool;
pub use builtin::GeminiCodeExecutionTool;
pub use builtin::GeminiComputerEnvironment;
pub use builtin::GeminiComputerUseTool;
pub use builtin::GeminiFileSearchTool;
pub use builtin::GoogleMapsContext;
pub use builtin::GoogleMapsTool;
pub use builtin::GoogleSearchTool;
pub use builtin::LoadArtifactsTool;
pub use builtin::OpenAIApplyPatchTool;
pub use builtin::OpenAIApproximateLocation;
pub use builtin::OpenAICodeInterpreterTool;
pub use builtin::OpenAIComputerEnvironment;
pub use builtin::OpenAIComputerUseTool;
pub use builtin::OpenAIFileSearchTool;
pub use builtin::OpenAIImageGenerationTool;
pub use builtin::OpenAILocalShellTool;
pub use builtin::OpenAIMcpTool;
pub use builtin::OpenAIShellTool;
pub use builtin::OpenAIWebSearchTool;
pub use builtin::UrlContextTool;
pub use builtin::WebSearchTool;
pub use builtin::WebSearchUserLocation;
pub use mcp::AutoDeclineElicitationHandler;
pub use mcp::ElicitationHandler;
pub use mcp::McpAuth;
pub use mcp::McpHttpClientBuilder;
pub use mcp::McpTaskConfig;
pub use mcp::McpToolset;
pub use mcp::OAuth2Config;
pub use toolset::BasicToolset;
pub use toolset::FilteredToolset;
pub use toolset::MergedToolset;
pub use toolset::PrefixedToolset;
pub use toolset::string_predicate;

Modules§

builtin
mcp
toolset

Structs§

AdkError
Unified structured error type for all ADK-Rust operations.
AgentTool
AgentTool wraps an Agent to make it callable as a Tool.
AgentToolConfig
Configuration options for AgentTool behavior.
FunctionTool

Enums§

ResourceContents

Traits§

Tool
ToolContext
Toolset

Type Aliases§

Resource
ResourceTemplate
Result
Convenience alias used throughout ADK crates.

Attribute Macros§

async_trait
tool
Attribute macro that generates a Tool implementation from an async function.