Skip to main content
Glama
adem1409

Currency Exchange MCP Server

by adem1409

Currency Exchange MCP Server

A Model Context Protocol (MCP) server that provides real-time currency exchange rates and conversions for 200+ currencies. Built with FastMCP 2.0, designed for remote deployment, and optimized for use with Claude Desktop and other MCP clients.

Available Tools

  • get_available_currencies - Get a list of all supported currencies with their full names.

  • get_exchange_rate - Get the current exchange rate between two currencies.

    • Required arguments:

      • from_currency (required): Source currency code (e.g., 'usd', 'eur')

      • to_currency (required): Target currency code (e.g., 'gbp', 'jpy')

      • date (optional): Date in YYYY-MM-DD format (defaults to latest)

  • convert_currency - Convert an amount from one currency to another.

    • Required arguments:

      • amount (required): Amount to convert

      • from_currency (required): Source currency code

      • to_currency (required): Target currency code

      • date (optional): Date in YYYY-MM-DD format

  • get_all_rates - Get all exchange rates for a base currency.

    • Required arguments:

      • base_currency (required): Base currency code

      • date (optional): Date in YYYY-MM-DD format

  • compare_rates - Compare exchange rates between a base currency and multiple target currencies.

    • Required arguments:

      • base_currency (required): Base currency code

      • target_currencies (required): Comma-separated currency codes

      • date (optional): Date in YYYY-MM-DD format

Source

Deployment

This project is deployed to Google Cloud Run using GitLab CI/CD.

The deployment job uses source-based deployment:

  • gcloud run deploy ... --source .

The Cloud Run service name is:

  • currency-exchange-mcp-server

Default deployment region in the pipeline:

  • europe-west1

Related MCP server: Frankfurter MCP

DevOps Pipeline (GitLab CI/CD)

Pipeline definition files:

  • .gitlab-ci.yml

  • infra/.gitlab-ci-terraform.yml

Stages

  1. test

  2. terraform

  3. deploy

What Happens in Each Stage

  1. Test (run_test)

  • Runs when Python source or dependency files change.

  • Uses uv and executes pytest.

  1. Terraform (terraform_validate, terraform_plan, terraform_apply)

  • Initializes Terraform in infra/.

  • Uses GitLab HTTP backend for remote Terraform state.

  • Validates, plans, and applies infrastructure.

  • Exports GITLAB_DEPLOYER_SA_EMAIL from Terraform output as a dotenv artifact.

  1. Deploy (deploy-to-cloud-run)

  • Depends on terraform_apply output.

  • Authenticates to GCP using a service account key from CI variables.

  • Deploys the current source to Cloud Run.

Terraform Infrastructure

Terraform files:

  • infra/main.tf

  • infra/variables.tf

  • infra/terraform.tfvars

Current Terraform provisions:

  • A GitLab deployer service account.

  • IAM roles required for Cloud Run deployment and build operations.

  • A proxy service account with Cloud Run invoker permissions.

  • Required Google APIs:

    • Cloud Build API

    • Cloud Run API

    • Artifact Registry API

    • Cloud Storage API

Local Terraform Commands

Run from infra/:

terraform init
terraform validate
terraform plan
terraform apply

Required GitLab CI/CD Variables

Set these variables in GitLab project settings:

  • GCP_PROJECT_ID: Target Google Cloud project ID.

  • GCP_SERVICE_ACCOUNT_KEY: Base64-encoded JSON key used by the deploy job.

  • TERRAFORM_SERVICE_ACCOUNT_KEY: Base64-encoded JSON key used by Terraform jobs.

Variables used internally by the Terraform pipeline include:

  • TF_STATE_ADRESS (as defined in pipeline file): GitLab Terraform state endpoint.

  • TF_HTTP_USERNAME: gitlab-ci-token.

  • TF_HTTP_PASSWORD: $CI_JOB_TOKEN.

End-to-End Flow

  1. Commit changes on main (or open a merge request for test stage evaluation).

  2. Tests run when application code or Python dependencies change.

  3. Terraform jobs run when files in infra/ change.

  4. Terraform apply publishes the deployer service account email as pipeline artifact.

  5. Cloud Run deployment runs when app-related files change and uses the Terraform output service account.

Notes

  • Workload Identity Federation resources are present in infra/main.tf but currently commented out.

  • Current pipeline uses service account keys from GitLab CI variables.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables currency conversion between 161+ currencies using real-time exchange rates from ExchangeRate-API. Provides a simple tool to convert amounts between different currencies with error handling for invalid inputs and API issues.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    Provides access to currency exchange rates and conversion tools using the Frankfurter API, including latest rates, historical data, and time series from sources like the European Central Bank.
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time and historical foreign exchange rates for 31+ currencies, enabling currency conversion, historical rate lookups, and time series analysis using data from the Frankfurter API.
    -
  • F
    license
    C
    quality
    D
    maintenance
    Enables real-time currency exchange rate queries between any two currencies using ExchangeRate API, with automatic triggering by AI models through the MCP protocol.
    1
    1
    -