How to integrate Composio search MCP with Google ADK

Connect Google ADK to Composio search MCP. Find recent news about electric vehicles, search for top-rated hotels in paris, and more using natural language, with authentication handled for you.

Composio search logoComposio search
No Auth

Composio search is a unified web search toolkit spanning travel, e-commerce, news, financial markets, images, and more. It lets you and your apps tap into up-to-date web data from a single, easy-to-integrate service.

21 Tools

Introduction

This guide walks you through connecting Composio search to Google ADK using the Composio tool router. By the end, you'll have a working Composio search agent that can search the web and news, find flights and hotels, search shopping results, look up SEC filings, and fetch URL content through natural language commands.

This guide will help you understand how to give your Google ADK agent real control over a Composio search account through Composio's Composio search MCP server.

Before we dive in, let's take a quick look at the key ideas and tools involved.

For exact tool slugs and parameter tables, see the tool catalog in the Composio docs.

Also integrate Composio search with

TL;DR

Here's what you'll learn:
  • Get a Composio search account set up and connected to Composio
  • Install the Google ADK and Composio packages
  • Create a Composio Tool Router session for Composio search
  • Build an agent that connects to Composio search through MCP
  • Interact with Composio search using natural language

What is Google ADK?

Google ADK (Agents Development Kit) is Google's framework for building AI agents powered by Gemini models. It provides tools for creating agents that can use external services through the Model Context Protocol.

Key features include:

  • Gemini Integration: Native support for Google's Gemini models
  • MCP Toolset: Built-in support for Model Context Protocol tools
  • Streamable HTTP: Connect to external services through streamable HTTP
  • CLI and Web UI: Run agents via command line or web interface

What is the Composio search MCP server, and what's possible with it?

The Composio Search MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to Composio Search. It provides structured and secure access to web, travel, shopping, financial, news, and public filing search, so your agent can find flights and hotels, compare products, track markets, research current events, and retrieve public web content on your behalf.

  • Travel planning: Have your agent search flights, hotels, vacation rentals, and TripAdvisor recommendations for your next trip.
  • Product and deal discovery: Let the agent search Amazon and other shopping sources, compare prices, apply location preferences, and find deals.
  • Market and company research: Direct your agent to retrieve stock prices, market data, financial news, company information, and historical analysis.
  • News and web research: Instruct your agent to search current news and the wider web for relevant articles, sources, and information.
  • Filings and page retrieval: Have your agent find SEC filings such as annual, quarterly, and current reports, or extract readable text from public web pages.

What is the Composio tool router, and how does it fit here?

What is Composio SDK?

Composio's Composio SDK helps agents find the right tools for a task at runtime. You can plug in multiple toolkits (like Gmail, HubSpot, and GitHub), and the agent will identify the relevant app and action to complete multi-step workflows. This can reduce token usage and improve the reliability of tool calls. Read more here: Getting started with Composio SDK

The tool router generates a secure MCP URL that your agents can access to perform actions.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step09 STEPS
1

Prerequisites

Before starting, make sure you have:
  • A Google API key for Gemini models
  • A Composio account and API key
  • Python 3.9 or later installed
  • Basic familiarity with Python
2

Getting API Keys for Google and Composio

Google API Key
  • Go to Google AI Studio and create an API key.
  • Copy the key and keep it safe. You will put this in GOOGLE_API_KEY.
Composio API Key and User ID
  • Log in to the Composio dashboard.
  • Go to Settings → API Keys and copy your Composio API key. Use this for COMPOSIO_API_KEY.
  • Decide on a stable user identifier to scope sessions, often your email or a user ID. Use this for COMPOSIO_USER_ID.
3

Install dependencies

bash
pip install google-adk composio python-dotenv

Inside your virtual environment, install the required packages.

What's happening:

  • google-adk is Google's Agents Development Kit
  • composio connects your agent to Composio search via MCP
  • python-dotenv loads environment variables
4

Set up ADK project

bash
adk create my_agent

Set up a new Google ADK project.

What's happening:

  • This creates an agent folder with a root agent file and .env file
5

Set environment variables

bash
GOOGLE_API_KEY=your-google-api-key
COMPOSIO_API_KEY=your-composio-api-key
COMPOSIO_USER_ID=your-user-id-or-email

Save all your credentials in the .env file.

What's happening:

  • GOOGLE_API_KEY authenticates with Google's Gemini models
  • COMPOSIO_API_KEY authenticates with Composio
  • COMPOSIO_USER_ID identifies the user for session management
6

Import modules and validate environment

python
import os
import warnings

from composio import Composio
from dotenv import load_dotenv
from google.adk.agents.llm_agent import Agent
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset

load_dotenv()

warnings.filterwarnings("ignore", message=".*BaseAuthenticatedTool.*")

GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
COMPOSIO_USER_ID = os.getenv("COMPOSIO_USER_ID")

if not GOOGLE_API_KEY:
    raise ValueError("GOOGLE_API_KEY is not set in the environment.")
if not COMPOSIO_API_KEY:
    raise ValueError("COMPOSIO_API_KEY is not set in the environment.")
if not COMPOSIO_USER_ID:
    raise ValueError("COMPOSIO_USER_ID is not set in the environment.")
What's happening:
  • os reads environment variables
  • Composio is the main Composio SDK client
  • GoogleProvider declares that you are using Google ADK as the agent runtime
  • Agent is the Google ADK LLM agent class
  • McpToolset lets the ADK agent call MCP tools over HTTP
7

Create Composio client and Tool Router session

python
composio_client = Composio(api_key=COMPOSIO_API_KEY)

composio_session = composio_client.create(
    user_id=COMPOSIO_USER_ID,
    toolkits=["composio_search"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url,
print(f"Composio MCP URL: {COMPOSIO_MCP_URL}")
What's happening:
  • Authenticates to Composio with your API key
  • Declares Google ADK as the provider
  • Spins up a short-lived MCP endpoint for your user and selected toolkit
  • Stores the MCP HTTP URL for the ADK MCP integration
8

Set up the McpToolset and create the Agent

python
composio_toolset = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url=COMPOSIO_MCP_URL,
        headers={"x-api-key": COMPOSIO_API_KEY}
    )
)

root_agent = Agent(
    model="gemini-2.5-flash",
    name="composio_agent",
    description="An agent that uses Composio tools to perform actions.",
    instruction=(
        "You are a helpful assistant connected to Composio. "
        "You have the following tools available: "
        "COMPOSIO_SEARCH_TOOLS, COMPOSIO_MULTI_EXECUTE_TOOL, "
        "COMPOSIO_MANAGE_CONNECTIONS, COMPOSIO_REMOTE_BASH_TOOL, COMPOSIO_REMOTE_WORKBENCH. "
        "Use these tools to help users with Composio search operations."
    ),
    tools=[composio_toolset],
)

print("\nAgent setup complete. You can now run this agent directly ;)")
What's happening:
  • Connects the ADK agent to the Composio MCP endpoint through McpToolset
  • Uses Gemini as the model powering the agent
  • Lists exact tool names in instruction to reduce misnamed tool calls
9

Run the agent

bash
# Run in CLI mode
adk run my_agent

# Or run in web UI mode
adk web

Execute the agent from the project root. The web command opens a web portal where you can chat with the agent.

What's happening:

  • adk run runs the agent in CLI mode
  • adk web . opens a web UI for interactive testing

Complete Code

Here's the complete code to get you started with Composio search and Google ADK:

python
import os
import warnings

from composio import Composio
from composio_google import GoogleProvider
from dotenv import load_dotenv
from google.adk.agents.llm_agent import Agent
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset

load_dotenv()
warnings.filterwarnings("ignore", message=".*BaseAuthenticatedTool.*")

GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
COMPOSIO_USER_ID = os.getenv("COMPOSIO_USER_ID")

if not GOOGLE_API_KEY:
    raise ValueError("GOOGLE_API_KEY is not set in the environment.")
if not COMPOSIO_API_KEY:
    raise ValueError("COMPOSIO_API_KEY is not set in the environment.")
if not COMPOSIO_USER_ID:
    raise ValueError("COMPOSIO_USER_ID is not set in the environment.")

composio_client = Composio(api_key=COMPOSIO_API_KEY, provider=GoogleProvider())

composio_session = composio_client.create(
    user_id=COMPOSIO_USER_ID,
    toolkits=["composio_search"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url


composio_toolset = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url=COMPOSIO_MCP_URL,
        headers={"x-api-key": COMPOSIO_API_KEY}
    )
)

root_agent = Agent(
    model="gemini-2.5-flash",
    name="composio_agent",
    description="An agent that uses Composio tools to perform actions.",
    instruction=(
        "You are a helpful assistant connected to Composio. "
        "You have the following tools available: "
        "COMPOSIO_SEARCH_TOOLS, COMPOSIO_MULTI_EXECUTE_TOOL, "
        "COMPOSIO_MANAGE_CONNECTIONS, COMPOSIO_REMOTE_BASH_TOOL, COMPOSIO_REMOTE_WORKBENCH. "
        "Use these tools to help users with Composio search operations."
    ),  
    tools=[composio_toolset],
)

print("\nAgent setup complete. You can now run this agent directly ;)")

Conclusion

You've successfully integrated Composio search with the Google ADK through Composio's MCP Tool Router. Your agent can now interact with Composio search using natural language commands.

Key takeaways:

  • The Tool Router approach dynamically routes requests to the appropriate Composio search tools
  • Environment variables keep your credentials secure and separate from code
  • Clear agent instructions reduce tool calling errors
  • The ADK web UI provides an interactive interface for testing and development

You can extend this setup by adding more toolkits to the toolkits array in your session configuration.

TOOLS

Supported Tools

Every Composio search action and event your agent gets out of the box.

Amazon Product Search

Search Amazon products across international marketplaces.

Composio DuckDuckGo Search

The DuckDuckGoSearch class utilizes the Composio DuckDuckGo Search API to perform searches, focusing on web information and details.

Composio Google Events Search

Search for upcoming events, concerts, festivals, conferences, and other activities.

Composio Similarlinks

Find links similar to a supplied URL using Exa, with optional domain, date, category and result-count filters.

Fetch URL Content

Fetch and extract clean, readable page text (markdown) from public web pages (HTML content) using the Exa API.

Composio Finance Search

Search Google Finance for stock quotes, indices, cryptocurrency prices, exchange rates, company financials and related news.

Flight Search

Search flights using a natural-language route or structured airport codes and dates.

Composio Google Maps Search

Search Google Maps for places by query, optionally using map coordinates and a pagination offset.

Groq Chat Completion

Generate chat completions using Groq models for tasks such as question answering, content generation, coding, summarization and translation.

Hotel Search

Search hotels and vacation rentals by location and stay dates, with price, class, cancellation and localization filters.

Composio Image Search

Search Google Images for image metadata and URLs, including original and thumbnail links.

Composio News Search

Search Google News results by query, time window, country and language.

NPPES NPI Registry Lookup

Lookup US healthcare provider details from the CMS NPI Registry (NPPES) using an NPI number or search filters.

Composio Scholar Search

Search Google Scholar for scholarly articles.

Composio SEC EDGAR Filings Search

Retrieve recent SEC EDGAR filing metadata for a company by ticker or CIK, optionally filtering by form type and constructing primary document and index URLs.

Composio Shopping Search

Search for products with advanced price filtering, location targeting, and deal discovery.

Composio LLM Search

Search a broad range of content using the Tavily API, with options for search depth, images, direct answers, domain filters, and the number of results.

Composio Trends Search

Search Google Trends for interest over time, regional comparisons, related topics, and related queries.

TripAdvisor Travel Search

Search TripAdvisor for attractions, restaurants, hotels, tours, and other travel information without a connected TripAdvisor account.

Walmart Product Search

Search Walmart products with optional minimum and maximum price filters.

Composio Web Search

Search the web using Exa's answer API, returning an AI-generated answer and source citations.

FAQ

Frequently asked questions

Start with Composio search.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Composio search tool your agent needs.Free to start.

Start building