Build a Multi-Agent System with Google's Agent Development Kit

A single LLM agent works well until the job spans several distinct skills. The proven pattern is a coordinator agent that delegates to specialized sub-agents — much like a manager routing work to departments. Google’s Agent Development Kit (ADK) is a code-first Python framework built for exactly this: you define agents and plain-Python tools, wire specialists under a coordinator, and ADK handles the LLM-driven delegation between them. In this tutorial you will build a travel concierge: a coordinator agent that routes weather questions to a weather specialist and currency questions to a currency specialist, each backed by its own tool. You will run it in the terminal and the ADK web UI, then cover the deterministic parts (the tools and the agent wiring) with pytest, no API key required. ...

13 min

Build an MCP Client with FastMCP and Python

A Model Context Protocol (MCP) server exposes tools, resources, and prompts; an MCP client is what connects to that server, discovers those capabilities, and calls them. Clients are usually embedded in an AI application (Claude Desktop, Claude Code, or your own agent), but writing a standalone client is the clearest way to understand the protocol and to script, test, or debug a server. In this tutorial you will build a command-line MCP client with FastMCP. It connects to any MCP server over stdio, prints the server’s advertised tools, resources, and prompts, and calls a tool with JSON arguments. You will run it against a small demo server, then cover it with pytest using FastMCP’s in-memory transport — no subprocess required. ...

13 min

Build an MCP Server with FastMCP and Python

The Model Context Protocol (MCP) is an open standard that lets AI clients (such as Claude Desktop, Claude Code, or your own agent) call tools, read resources, and load prompts from an external server over a well-defined wire protocol. FastMCP is a Python framework that hides the protocol plumbing behind plain decorators, so you write ordinary typed functions and FastMCP turns them into a compliant server. In this tutorial you will build a small but realistic “notes” MCP server: it exposes tools to create and search notes, a resource to read a single note by URI, and a prompt that asks the model to summarize a note. You will run it over stdio, inspect it interactively, and cover it with pytest using FastMCP’s in-memory client. ...

13 min