Skip to main content
Give Google ADK agents real-time web data by connecting to the Nimble MCP server. No extra SDK wiring needed. Google ADK (Agent Development Kit) uses the Model Context Protocol to connect agents to external tools. Since Nimble provides a hosted MCP server, ADK agents can discover and use all Nimble tools automatically.

Prerequisites

Set environment variables:
Get a Nimble API key from the dashboard (free trial available). The MCP examples pass an X-Client-Source: google-adk header, and the SDK example sets the Nimble client’s client_source to google-adk, so requests are attributed to this integration.

Quick Start

Connect an ADK agent to the Nimble MCP server using McpToolset with StreamableHTTPConnectionParams. ADK auto-discovers all available Nimble tools: search, extraction, mapping, crawling, Extract Templates, and Web Search Agents.
Python

Run the Agent

Python

Filter Tools

By default, ADK discovers all Nimble MCP tools. Use tool_filter to expose only the tools the agent needs:
Python

Agent API V2: autonomous research tool

The hosted MCP tools above (nimble_search, nimble_extract, nimble_map, nimble_crawl_run, and nimble_extract_templates_run) are synchronous and single-shot. One call returns data directly, and the ADK model does the reasoning. Agent API V2 is different. It exposes an asynchronous research agent that plans, searches across many sources, and returns a synthesized answer with a per-claim trust report. The lifecycle is create a run → poll to a terminal state → retrieve the result. The Nimble MCP server exposes Agent API V2 too (creating a run, polling its status, and fetching the result), so an MCP-connected ADK agent can call these tools directly. Because a V2 run is asynchronous, you can also wrap the Nimble SDK lifecycle in a single Python function. The model then calls one synchronous “deep research” tool, and the create-poll-retrieve loop stays in your code. Register it as an ADK callable tool alongside the MCP toolset shown above.

1. Wrap the run lifecycle

This helper uses a stable agent_name, so every call — from this process or any other — reuses the same agent and its memory instead of spinning up a fresh one each time. It creates the run, polls until terminal, handles failed and cancelled runs, and returns the answer plus its trust and citation metadata. Errors return a safe message, so no API key or raw exception is surfaced.
Python
Pass an output_schema to agents.run (or agents.runs.create) to get structured JSON in result.output instead of prose. Trust is then keyed by JSON path. See Dataset Building.

2. Register it as an ADK tool

Pass the function straight into LlmAgent. ADK auto-wraps it as a FunctionTool, reading the signature and docstring for the schema. The model calls one tool; the async run loop stays hidden.
Python
Run it with the same Runner setup shown in the Quick Start. The tool returns the synthesized answer, an overall confidence grade (high, medium, or low), and the source URLs behind it, so the model can weigh how much to trust each claim. See Trust for the full report structure.

Available Tools

ADK auto-discovers these tools from the Nimble MCP server:
The tool names above are a curated subset. See the Nimble MCP Server docs for setup details and the full tool list.

Next Steps

Nimble MCP Server

Full MCP server setup for Cursor, Claude Desktop, and other clients

Web Search Agent

Agent API V2: autonomous research runs with per-claim trust

OpenAI

Use Nimble with OpenAI function calling and the Agents SDK

Anthropic

Use Nimble with Claude’s tool-use API and Tool Runner