Currency Agent MCP Server

Currency Agent MCP Server

MCP server for currency conversion with real-time exchange rates via the Frankfurter API. Enables agents to retrieve latest currency data and perform conversions.

Category
Visit Server

README

Currency Agent

An AI agent implementation built on Google Cloud, featuring MCP (Model Context Protocol) for tool integration, ADK (Agent Development Kit) for orchestration, and A2A (Agent-to-Agent) protocol for inter-agent communication.


Setup & Google Cloud Configuration

1. Authenticate & Verify Project

Open the Cloud Shell and verify your active account:

gcloud auth list

Display the active Google Cloud project ID:

gcloud config list project

2. Configure Environment Variables

Export your Project ID to an environment variable and configure gcloud:

export PROJECT_ID="<YOUR_PROJECT_ID>"
gcloud config set project $PROJECT_ID

3. Enable Required Google Cloud APIs

Enable all required Google Cloud service APIs for the project:

gcloud services enable \
  cloudresourcemanager.googleapis.com \
  servicenetworking.googleapis.com \
  run.googleapis.com \
  cloudbuild.googleapis.com \
  artifactregistry.googleapis.com \
  aiplatform.googleapis.com \
  compute.googleapis.com

Installation & Local Setup

This project requires Python 3.10+. Verify your Python version in Cloud Shell:

python3 --version

1. Clone the Repository

Clone the repository to your environment:

git clone https://github.com/jackwotherspoon/currency-agent.git
cd currency-agent

2. Install Dependency Manager (uv)

This project uses uv to manage Python dependencies. Install uv using the following curl command:

curl -LsSf https://astral.sh/uv/install.sh | bash

To verify the installation in a new terminal, check the version and executable location:

uv --version
which uv

3. Configure Environment Variables

Create and configure your .env file to supply the necessary variables:

echo "GOOGLE_GEN_AI_USE_VERTEXAI=True" >> .env \
  && echo "GOOGLE_CLOUD_LOCATION=us-central1" >> .env \
  && echo "GOOGLE_CLOUD_PROJECT=$PROJECT_ID" >> .env

Verify that the .env file has been populated correctly:

cat .env

Running and Testing the Server Locally

1. Start the MCP Server

Run the following command in your Cloud Shell terminal to start the server:

uv run mcp-server/server.py

2. Test the MCP Server

Open a new Cloud Shell terminal and run the test script. This will query the server's API and output the result:

uv run mcp-server/test_server.py

Deployment to Google Cloud Run

To make the tool permanent, reliable, and benefit from automatic scaling, deploy the MCP server to Google Cloud Run.

1. Deploy the Service

Stop the local server and run the following deployment command from within the mcp-server directory:

gcloud run deploy mcp-server \
  --no-allow-unauthenticated \
  --region=us-central1 \
  --source .

[!IMPORTANT] The --no-allow-unauthenticated flag is critical for security. It ensures that only authorized accounts can access the deployed server.

2. Authenticate and Proxy Deployed Calls

To securely access and test the live Cloud Run service locally, start a local proxy tunnel:

gcloud run services proxy mcp-server --region=us-central1

This establishes a secure tunnel between your local machine (or Cloud Shell) and the Cloud Run service.

alt text

3. Test the Deployed Service

With the proxy running, open a new Cloud Shell terminal and run the test script:

uv run mcp-server/test_server.py

4. View Deployment Logs

To monitor the service and verify requests, stream the logs from the command line:

gcloud run services logs read mcp-server --region=us-central1 --limit=5

alt text

You are now ready to build and run agents interacting with your deployed tools!


External APIs & Data Sources

Currency Converter Endpoint

The agent utilizes the Frankfurter API for real-time exchange rates:

  • Endpoint: https://api.frankfurter.dev/v2/latest
  • Sample Request:
    GET https://api.frankfurter.dev/v2/latest?base=USD&symbols=INR,EUR
    

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured