Databaser som resurser
Nu är det dags att hämta informationen från databasen och göra den tillgänglig som en resurs i MCP-servern. Detta kan sedan användas för att kontrollera att LLM:en efterfrågar valutakoder som stöds – eller till och med i användargränssnittet för att göra valutakoden till en rullgardinsmeny eller ett autokompletteringsfält.
Databasen är fortfarande tillgänglig som currencies.db, och koden för att skapa en serverinstans är redan angiven.
Den här övningen är en del av kursen
Introduktion till Model Context Protocol (MCP)
Övningsinstruktioner
- Upprätta en anslutning till databasen (
currencies.db). - Skapa en ny MCP-serverresurs för databasanslutningen.
- Kör databasfrågan så att funktionen
get_currencies()returnerar databasens innehåll.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)