MCP ExplorerExplorer

Currency Agent

@jackwotherspoonon 19 days ago
1 Apache-2.0
FreeCommunity
AI Systems
#a2a#adk#mcp
A sample agent demonstrating A2A + ADK + MCP working together.

Overview

What is Currency Agent

Currency-agent is a sample agent that demonstrates the integration of A2A (Application-to-Application), ADK (Application Development Kit), and MCP (Multi-Cloud Platform) working together seamlessly.

Use cases

Use cases for currency-agent include real-time currency conversion for online shopping, automated transaction processing in financial applications, and integration with payment gateways.

How to use

To use currency-agent, clone the repository from GitHub, install the necessary dependencies, and run the agent using Python. Detailed instructions can be found in the README file.

Key features

Key features of currency-agent include seamless integration with A2A and ADK, support for multiple currencies, and the ability to handle transactions efficiently across different platforms.

Where to use

Currency-agent can be used in financial services, e-commerce platforms, and any application requiring currency conversion and transaction management.

Content

💵💱💶 Currency Agent (A2A + ADK + MCP)

Open In Codelab
Python
Framework
License

A sample agent demonstrating A2A + ADK + MCP working together. It leverages the new Agent2Agent (A2A) Python SDK (a2a-sdk) and v1.0.0+ of Google’s Agent Development Kit (ADK), google-adk.

Both were announced at Google I/O 2025.

Architecture Overview

Overview

The sample aims at laying out a foundation and showcasing the capabilities
of A2A + ADK + MCP. It is a currency converter agent that can convert between different
countries’ currencies.

MCP Logo Model Context Protocol (MCP)

MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools. - Anthropic

The MCP server in this example exposes a tool get_exchange_rate that can be used to get the exchange rate between two currencies such as USD and EUR. It leverages the Frankfurter API to get the currency exchange rate. Our agent uses an MCP client to invoke this tool when needed.

ADK Logo Agent Development Kit (ADK)

ADK is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. - ADK

ADK (v1.0.0) is used as the orchestration framework for creating our currency agent in this sample. It handles the conversation with the user and invokes our MCP tool when needed.

A2A Logo Agent2Agent (A2A)

Agent2Agent (A2A) protocol addresses a critical challenge in the AI landscape: enabling gen AI agents, built on diverse frameworks by different companies running on separate servers, to communicate and collaborate effectively - as agents, not just as tools. A2A aims to provide a common language for agents, fostering a more interconnected, powerful, and innovative AI ecosystem. - A2A

The new A2A Python SDK is used to create an A2A server that advertises and executes our ADK agent. We then run an A2A client that connects to our A2A server and invokes our ADK agent.

Getting Started

Prerequisites

  • Python 3.10+
  • Git, for cloning the repository.

Installation

  1. Clone the repository:
git clone https://github.com/jackwotherspoon/currency-agent.git
cd currency-agent
  1. Install uv (used to manage dependencies):
# macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (uncomment below line)
# powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

[!NOTE]
You may need to restart or open a new terminal after installing uv.

  1. Configure environment variables (via .env file):

There are two different ways to call Gemini models:

  • Calling the Gemini API directly using an API key created via Google AI Studio.
  • Calling Gemini models through Vertex AI APIs on Google Cloud.

[!TIP]
An API key from Google AI Studio is the quickest way to get started.

Existing Google Cloud users may want to use Vertex AI.

Gemini API Key

Get an API Key from Google AI Studio: https://aistudio.google.com/apikey

Create a .env file by running the following (replace <your_api_key_here> with your API key):

echo "GOOGLE_API_KEY=<your_api_key_here>" >> .env \
&& echo "GOOGLE_GENAI_USE_VERTEXAI=FALSE" >> .env
Vertex AI

To use Vertex AI, you will need to create a Google Cloud project and enable Vertex AI.

Authenticate and enable Vertex AI API:

gcloud auth login
# Replace <your_project_id> with your project ID
gcloud config set project <your_project_id>
gcloud services enable aiplatform.googleapis.com

Create a .env file by running the following (replace <your_project_id> with your project ID):

echo "GOOGLE_GENAI_USE_VERTEXAI=TRUE" >> .env \
&& echo "GOOGLE_CLOUD_PROJECT=<your_project_id>" >> .env \
&& echo "GOOGLE_CLOUD_LOCATION=us-central1" >> .env

Now you are ready for the fun to begin!

Local Deployment

MCP Server

In a terminal, start the MCP Server (it starts on port 8080):

uv run mcp-server/server.py

A2A Server

In a separate terminal, start the A2A Server (it starts on port 10000):

uv run currency_agent

A2A Client

In a separate terminal, run the A2A Client to run some queries against our A2A server:

uv run currency_agent/test_client.py

🤝 Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues.

📄 License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Tools

No tools

Comments