Skip to main content
Glama

Currency Converter MCP

by wesbos
get_latest_rates.ts1.52 kB
import { z } from "zod"; import { FRANKFURTER_API_BASE, type ExchangeRateResponse, type ToolResponse, } from "../types"; export const getLatestRatesSchema = { base: z .string() .length(3) .optional() .describe("Base currency code (default: EUR)"), symbols: z .string() .optional() .describe( "Comma-separated currency codes to limit results (e.g., USD,GBP,JPY)", ), }; export type GetLatestRatesInput = { base?: string; symbols?: string; }; export type GetLatestRatesOutput = ExchangeRateResponse; export async function getLatestRates( input: GetLatestRatesInput, ): Promise<ToolResponse> { const { base, symbols } = input; try { const params = new URLSearchParams(); if (base) params.append("base", base.toUpperCase()); if (symbols) params.append("symbols", symbols.toUpperCase()); const url = `${FRANKFURTER_API_BASE}/latest${params.toString() ? `?${params.toString()}` : ""}`; const response = await fetch(url); if (!response.ok) { return { content: [ { type: "text", text: `Error: Unable to fetch exchange rates. Status: ${response.status}`, }, ], }; } const data = (await response.json()) as ExchangeRateResponse; return { content: [ { type: "text", text: JSON.stringify(data), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error: Failed to fetch exchange rates - ${error instanceof Error ? error.message : "Unknown error"}`, }, ], }; } }

Implementation Reference

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wesbos/currency-conversion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server