Server MCP Pertama Anda
Saatnya praktik langsung dengan server MCP pertama Anda! Kami telah menyediakan semua kodenya untuk Anda di sini, yang akan kami jelaskan di video berikutnya, tetapi cermati alur kodenya:
- Sebuah instance server MCP didefinisikan dengan
FastMCP() - Sebuah fungsi tool (
convert_currency()) ditulis untuk melakukan suatu aksi; dalam hal ini, mengambil informasi mata uang dari Frankfurter API. - Fungsi ini dikonversi menjadi tool MCP menggunakan dekorator
@mcp.tool().
Latihan ini merupakan bagian dari kursus
Pengantar Model Context Protocol (MCP)
Instruksi latihan
- Tinjau kode yang disediakan untuk melihat bagaimana sebuah fungsi dikonversi menjadi tool untuk server MCP.
- Pada baris 43, uji tool MCP dengan jumlah dan pilihan mata uang yang akan dikonversi dari dan ke.
Catatan: Anda harus menggunakan kode mata uang resmi, seperti GBP untuk pound sterling Britania.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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)