Databases als resources
We gaan de database-informatie beschikbaar maken als resource in de MCP-server. Dit kun je vervolgens gebruiken om te controleren dat het LLM alleen ondersteunde valutacodes opvraagt, of zelfs in de gebruikersinterface om van de valutacode een dropdown of een automatisch aanvullen-veld te maken.
De database is nog steeds beschikbaar als currencies.db, en de code om een server te starten is al voor je klaargezet.
Deze oefening maakt deel uit van de cursus
Introductie tot Model Context Protocol (MCP)
Oefeninstructies
- Maak een verbinding met de database (
currencies.db). - Maak een nieuwe MCP-serverresource voor de databaseverbinding.
- Voer de databasequery uit zodat de functie
get_currencies()de inhoud van de database teruggeeft.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Currency Converter")
# Connect to the database on startup
conn = sqlite3.____("____")
conn.row_factory = sqlite3.Row
# Create an MCP resource
@mcp.____("db://currencies")
def get_currencies() -> str:
"""
Get the list of currency names published by the European Central Bank for currency conversion.
Returns:
One line per currency (code - name), from the database.
"""
try:
# Query the database
cursor = conn.____("SELECT code, name FROM currencies")
rows = cursor.fetchall()
return "\n".join(f"{row['code']} - {row['name']}" for row in rows)
except sqlite3.Error as e: return f"Error: {e}"
result = get_currencies()
print(result[:200] + "..." if len(result) > 200 else result)