Bases de données comme ressources
Vous allez maintenant prendre l'information de la base de données et la rendre disponible comme ressource dans le serveur MCP. Cela peut servir ensuite à valider que le LLM demande des codes de devise pris en charge, ou même dans l'interface utilisateur pour proposer les codes de devise sous forme de liste déroulante ou de saisie semi-automatique.
La base de données est toujours accessible sous currencies.db, et le code pour instancier un serveur vous est fourni.
Cette activité fait partie du cours
Introduction au Model Context Protocol (MCP)
Instructions de l’exercice
- Établissez une connexion à la base de données (
currencies.db). - Créez une nouvelle ressource du serveur MCP pour la connexion à la base de données.
- Exécutez la requête à la base de données afin que la fonction
get_currencies()renvoie le contenu de la base.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)