CommencezCommencez gratuitement

Votre premier serveur MCP

Passez à la pratique avec votre premier serveur MCP! Nous avons tout le code pour vous ici, que nous expliquerons dans la prochaine vidéo, mais jetez d'abord un coup d'œil au déroulement du code :

  1. Une instance de serveur MCP est définie avec FastMCP()
  2. Une fonction d'outil (convert_currency()) est écrite pour effectuer une action; dans ce cas-ci, récupérer des informations de devises à partir de l'API Frankfurter.
  3. Cette fonction est convertie en outil MCP à l'aide du décorateur @mcp.tool().

Cette activité fait partie du cours

Introduction au Model Context Protocol (MCP)

Voir le cours

Instructions de l’exercice

  • Parcourez le code fourni pour voir comment une fonction est transformée en outil pour un serveur MCP.
  • À la ligne 43, testez l'outil MCP avec un montant et les devises de votre choix pour la conversion (de et vers).

Remarque : vous devrez utiliser les codes de devises officiels, comme GBP pour la livre sterling britannique.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)
Modifier et exécuter le code