ฐานข้อมูลในรูปแบบ Resource
ถึงเวลานำข้อมูลจากฐานข้อมูลมาเปิดเผยเป็น resource ใน MCP server แล้ว ซึ่งสามารถนำไปใช้ต่อได้หลายรูปแบบ เช่น ตรวจสอบว่า LLM ร้องขอรหัสสกุลเงินที่รองรับหรือไม่ หรือแสดงรหัสสกุลเงินเป็น dropdown หรือตัวเลือกแบบ autocomplete ในส่วนติดต่อผู้ใช้
ฐานข้อมูลยังคงอยู่ที่ currencies.db และโค้ดสำหรับสร้าง server ได้เตรียมไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Model Context Protocol (MCP) เบื้องต้น
คำแนะนำการฝึกหัด
- เชื่อมต่อกับฐานข้อมูล (
currencies.db) - สร้าง MCP server resource ใหม่สำหรับการเชื่อมต่อฐานข้อมูล
- รันคิวรีฐานข้อมูล เพื่อให้ฟังก์ชัน
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)