Бази даних як ресурси
Тепер зробімо інформацію з бази даних доступною як ресурс у сервері MCP. Це можна використати далі, щоб перевіряти, чи LLM запитує підтримувані коди валют, або навіть у користувацькому інтерфейсі — щоб зробити вибір коду валюти випадним списком або автозаповненням.
База даних досі доступна як currencies.db, а код для створення сервера вже надано.
Ця вправа є частиною курсу
Вступ до Model Context Protocol (MCP)
Інструкції до вправи
- Встановіть з'єднання з базою даних (
currencies.db). - Створіть новий ресурс сервера MCP для з'єднання з базою даних.
- Виконайте запит до бази, щоб функція
get_currencies()повертала вміст бази даних.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)