Cơ sở dữ liệu dưới dạng Tài nguyên
Giờ hãy lấy thông tin cơ sở dữ liệu đó và cung cấp nó như một tài nguyên trong máy chủ MCP. Việc này có thể được dùng ở các bước sau để xác thực rằng LLM đang yêu cầu các mã tiền tệ được hỗ trợ, hoặc thậm chí trong giao diện người dùng để biến mã tiền tệ thành danh sách thả xuống hoặc lựa chọn tự động hoàn thành.
Cơ sở dữ liệu vẫn có sẵn dưới tên currencies.db, và mã để khởi tạo một máy chủ đã được cung cấp cho bạn.
Bài tập này là một phần của khóa học
Giới thiệu về Model Context Protocol (MCP)
Hướng dẫn bài tập
- Thiết lập kết nối tới cơ sở dữ liệu (
currencies.db). - Tạo một tài nguyên máy chủ MCP mới cho kết nối cơ sở dữ liệu.
- Thực thi truy vấn cơ sở dữ liệu để hàm
get_currencies()trả về nội dung của cơ sở dữ liệu.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)