Expand description
§adk-tool
Tool system for ADK agents (FunctionTool, MCP, Google Search, AgentTool).
§Overview
This crate provides the tool infrastructure for ADK agents:
FunctionTool- Create tools from async Rust functionsAgentTool- Use agents as callable tools for compositionGoogleSearchTool- Web search via Gemini’s groundingMcpToolset- Model Context Protocol integrationBasicToolset- Group multiple tools togetherExitLoopTool- Control flow for loop agentsLoadArtifactsTool- Inject binary artifacts into context
§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::ExitLoopTool;pub use builtin::GoogleSearchTool;pub use builtin::LoadArtifactsTool;pub use mcp::McpToolset;pub use toolset::string_predicate;pub use toolset::BasicToolset;
Modules§
Structs§
- Agent
Tool - AgentTool wraps an Agent to make it callable as a Tool.
- Agent
Tool Config - Configuration options for AgentTool behavior.
- Function
Tool