CommencerCommencer gratuitement

Adding Docstrings and Type Hints

Time to make your convert_currency() tool easier for LLMs to use through docstrings and type hints. Without this, the LLM may not be able to effectively choose which tool to call, or may pass values to the arguments incorrectly—both of which result in unreliable application performance!

An MCP server has already been instantiated using FastMCP and assigned to mcp.

Cet exercice fait partie du cours

Introduction to Model Context Protocol (MCP)

Afficher le cours

Instructions

  • Add appropriate types to the function arguments and return object.
  • Complete the docstring to match the three function arguments with their definitions.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Adding typing to the function arguments and return object
@mcp.tool()
def convert_currency(amount: ____, from_currency: ____, to_currency: ____) -> ____:
    # Complete the docstring with the function arguments
    """
    Convert an amount from one currency to another using current exchange rates.

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

    Returns:
        A string with the conversion result and exchange rate
    """

    url = f"https://api.frankfurter.dev/v1/latest?base={from_currency}&symbols={to_currency}"

    response = requests.get(url)
    data = response.json()
    rate = data['rates'].get(to_currency)

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

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

print(convert_currency(amount=100, from_currency="EUR", to_currency="USD"))
Modifier et exécuter le code