Zacznij terazZacznij za darmo

Bazy danych jako zasoby

Czas pobrać dane z bazy i udostępnić je jako zasób w serwerze MCP. Można to później wykorzystać do weryfikacji, czy model LLM żąda obsługiwanych kodów walut – albo nawet w interfejsie użytkownika, aby kod waluty był wybierany z listy rozwijanej lub z podpowiedziami autouzupełniania.

Baza danych jest nadal dostępna jako currencies.db, a kod inicjujący serwer został już dla ciebie przygotowany.

To ćwiczenie jest częścią kursu

Wprowadzenie do Model Context Protocol (MCP)

Zobacz kurs

Instrukcje do ćwiczenia

  • Nawiąż połączenie z bazą danych (currencies.db).
  • Utwórz nowy zasób serwera MCP dla tego połączenia z bazą danych.
  • Wykonaj zapytanie do bazy danych tak, aby funkcja get_currencies() zwracała jej zawartość.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod