Get startedGet started for free

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.

This exercise is part of the course

Introduction to Model Context Protocol (MCP)

View Course

Exercise instructions

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

Hands-on interactive exercise

Have a go at this exercise by completing this sample 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"))
Edit and Run Code