Get the FREE Ultimate OpenClaw Setup Guide →

adk -a2a-crash-course

This project demonstrates a multi-agent system using Google's Agent Development Kit (ADK), Agent2Agent (A2A) and Model Context Protocol (MCP). that integrates Notion for information retrieval and ElevenLabs for text-to-speech conversion.

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio chongdashu-adk-mcp-a2a-crash-course uvx adk-a2a-mcp \
  --env NOTION_API_KEY="your_notion_api_key_here" \
  --env ANTHROPIC_API_KEY="your_anthropic_api_key_here" \
  --env ELEVENLABS_API_KEY="your_elevenlabs_api_key_here" \
  --env HOST_AGENT_A2A_URL="http://localhost:8001" \
  --env NOTION_AGENT_A2A_URL="http://localhost:8002" \
  --env ELEVENLABS_AGENT_A2A_URL="http://localhost:8003"

How to use

This MCP server is a Python-based multi-agent system built with Google's ADK that integrates Notion for information retrieval and ElevenLabs for text-to-speech. The architecture orchestrates three worker agents (NotionAgent, ElevenLabsAgent) and a HostAgent that coordinates tasks between them, facilitated by Streamlit UIs to demonstrate A2A patterns. To experience the complete flow, start the ADK MCP environment, configure your API keys, and run the provided start script to launch all services. You can then interact via the embedded UI or the decoupled A2A UI to trigger information retrieval from Notion and convert retrieved text to speech using ElevenLabs. The system also includes standalone test clients for each agent to help you verify connectivity and behavior in isolation.

How to install

Prerequisites:

  • Python 3.13+ installed on your system
  • uv package manager installed (recommended) or pip
  • Notion API key and an ElevenLabs API key
  • Optional: Anthropic API key for some agents

Installation steps:

  1. Clone the repository and navigate into it: git clone <repository-url> cd adk-a2a-mcp

  2. Create and activate a virtual environment: python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate

  3. Install dependencies using uv (single source of truth in pyproject.toml): uv pip install -e ".[dev]"

  4. Create a local environment file from the example and add your keys: cp .env.example .env

    Edit .env and fill in your keys

  5. Run the full system (see Running section below) to start all services: python scripts/start_agents.py

Prerequisites note:

  • Ensure Python 3.13+ is available and that uv is installed to manage dependencies and virtual environments.

Additional notes

Environment variables and configuration tips:

  • NOTION_API_KEY, ELEVENLABS_API_KEY, and ANTHROPIC_API_KEY must be defined in .env (or through the environment) for the agents to authenticate with their respective services.
  • The A2A service URLs can be customized by editing HOST_AGENT_A2A_URL, NOTION_AGENT_A2A_URL, and ELEVENLABS_AGENT_A2A_URL in the environment file. The defaults are http://localhost:8001, http://localhost:8002, and http://localhost:8003 respectively.
  • Logs from all agents are stored under the logs/ directory. If you experience issues, check the log files for runtime errors.
  • To stop all services, you can terminate the agent processes or use pkill -f "_agent" on Unix-like systems.
  • The UI can be launched in two modes: Embedded Runner UI or Decoupled A2A Client UI. Use the instructions under Running the Full System to start the appropriate UI.
  • If you modify the code, run pytest -v to ensure integration tests pass and that agents communicate correctly.

Related MCP Servers

Sponsor this space

Reach thousands of developers