CommencerCommencez gratuitement

Bases de données comme ressources

Vous allez maintenant rendre ces informations issues de la base de données disponibles comme ressource dans le serveur MCP. Cela pourra servir ensuite à vérifier que le LLM demande des codes de devise pris en charge, ou même côté interface utilisateur pour proposer les codes sous forme de liste déroulante ou de saisie semi-automatique.

La base de données est toujours disponible sous le nom currencies.db, et le code d'initialisation d'un serveur vous est fourni.

Cet exercice fait partie du cours

<cours>Introduction au Model Context Protocol (MCP)</cours>
Voir le cours

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 afin que la fonction get_currencies() renvoie le contenu de la base de données.

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)
Modifier et exécuter le code