Datenbanken als Ressourcen
Jetzt sollst du die Datenbankinformationen als Ressource im MCP-Server verfügbar machen. So kann weiter unten geprüft werden, ob das LLM nur unterstützte Währungscodes anfragt, oder du kannst im User Interface den Währungscode als Dropdown oder Autovervollständigung anbieten.
Die Datenbank ist weiterhin als currencies.db verfügbar, und der Code zum Instanziieren eines Servers wurde dir bereitgestellt.
Diese Übung ist Teil des Kurses
<Kurs>Einführung in das Model Context Protocol (MCP)</Kurs>Übungsanweisungen
- Stelle eine Verbindung zur Datenbank (
currencies.db) her. - Erstelle eine neue MCP-Server-Ressource für die Datenbankverbindung.
- Führe die Datenbankabfrage aus, sodass die Funktion
get_currencies()den Inhalt der Datenbank zurückgibt.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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)