Inizia subitoInizia gratis

Il tuo primo server MCP

È il momento di mettere le mani in pasta con il tuo primo server MCP! Qui ti forniamo già tutto il codice, che spiegheremo nel prossimo video, ma intanto dai un'occhiata al flusso del codice:

  1. Si definisce un'istanza di server MCP con FastMCP()
  2. Si scrive una funzione tool (convert_currency()) per eseguire un'azione; in questo caso, recuperare informazioni sulle valute dalla Frankfurter API.
  3. Questa funzione viene trasformata in un tool MCP usando il decorator @mcp.tool().

Questo esercizio fa parte del corso

Introduzione al Model Context Protocol (MCP)

Visualizza corso

Istruzioni dell'esercizio

  • Dai un'occhiata al codice fornito per vedere come una funzione viene convertita in un tool per un server MCP.
  • Alla riga 43, testa il tool MCP con un importo e le valute di tua scelta per la conversione (da e verso).

Nota: dovrai usare i codici valuta ufficiali, come GBP per la sterlina britannica.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# Create an MCP server instance
mcp = FastMCP("Currency Converter")

@mcp.tool()
def convert_currency(amount: float, from_currency: str, to_currency: str) -> str:
    """
    Convert an amount from one currency to another using current exchange rates.

    Args:
        amount: The amount to convert
        from_currency: Source currency code (e.g., 'USD', 'EUR', 'GBP')
        to_currency: Target currency code (e.g., 'USD', 'EUR', 'GBP')

    Returns:
        A string with the conversion result and exchange rate
    """
    # API endpoint for Frankfurter
    url = f"https://api.frankfurter.dev/v1/latest?base={from_currency}&symbols={to_currency}"

    try:
        # Make the API request
        response = requests.get(url)
        response.raise_for_status()

        # Parse the response
        data = response.json()

        # Get the exchange rate
        rate = data['rates'].get(to_currency)

        if rate is None:
            return f"Could not find exchange rate for {from_currency} to {to_currency}"

        # Calculate the converted amount
        converted_amount = amount * rate

        return f"{amount} {from_currency} = {converted_amount:.2f} {to_currency} (Rate: {rate})"

    except requests.exceptions.RequestException as e:
        return f"Error converting currency: {str(e)}"

print("Testing Currency Converter:")
result = convert_currency(amount=100, from_currency="USD", to_currency="EUR")
print(result)
Modifica ed esegui il codice