НачатьНачать бесплатно

Базы данных как ресурсы

Теперь нужно взять данные из базы и сделать их доступными в качестве ресурса MCP-сервера. В дальнейшем это можно использовать для проверки того, что языковая модель запрашивает поддерживаемые коды валют, — или, например, для отображения кодов валют в виде выпадающего списка или поля с автодополнением в пользовательском интерфейсе.

База данных по-прежнему доступна как 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)
Редактировать и запускать код