CommencerCommencez gratuitement

Bases de données comme ressources

Il est temps de prendre ces informations de base de données et de les exposer comme une ressource dans le serveur MCP. Cela pourra ensuite servir à vérifier que le LLM demande des codes de devises pris en charge, ou même dans l'interface pour proposer les codes de devises sous forme de menu déroulant ou de saisie semi-automatique.

La base de données est toujours disponible sous le nom currencies.db, et le code pour instancier un serveur vous a été 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 de 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