server.py•1.1 kB
from mcp.server.fastmcp import FastMCP
import requests
import os
from dotenv import load_dotenv
load_dotenv()
# Create an MCP server
mcp = FastMCP("Demo", host="0.0.0.0", port=int(os.getenv("PORT", 8000)))
# Add Tool
@mcp.tool()
def sum(a: int, b: int) -> int:
"""Suma dos números."""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Optiene un saludo personalizado por el nombre."""
return f"Hola, {name}!"
@mcp.tool()
def get_exchange_rate(from_currency: str, to_currency: str) -> float | None:
"""Obtiene la cotización entre dos monedas. Devuelve None si hay error."""
try:
response = requests.get(f"https://api.exchangerate-api.com/v4/latest/{from_currency}", timeout=5)
response.raise_for_status()
data = response.json()
return data.get("rates", {}).get(to_currency)
except Exception as e:
print(f"Error al obtener cotización: {e}")
return None
# Start the server
if __name__ == "__main__":
mcp.run(transport="streamable-http")