Giải thích về Model Context Protocol (MCP)
Đừng viết đi viết lại cùng một đoạn mã tích hợp nữa.
Nếu bạn kết nối một LLM với một cơ sở dữ liệu hoặc một API, bạn thường phải viết mã kết nối (glue code) tùy chỉnh cho mỗi mô hình mới. Điều này tạo ra một sự hỗn loạn. Cuối cùng, bạn phải quản lý quá nhiều kết nối cho quá nhiều công cụ.
Model Context Protocol (MCP) giải quyết vấn đề này. Nó hoạt động giống như một cổng USB-C dành cho AI. Bạn chỉ cần xây dựng một công cụ một lần, và bất kỳ mô hình nào cũng có thể sử dụng nó.
Kiến trúc này gồm ba phần:
• Host: Ứng dụng bạn sử dụng, chẳng hạn như Claude Code hoặc một IDE. • Client: Bộ kết nối nằm bên trong host. • Server: Chương trình bạn xây dựng để cung cấp dữ liệu hoặc công cụ.
Bạn có thể xây dựng một MCP server bằng cách sử dụng ba thành phần cơ bản:
- Tools: Các hàm mà mô hình gọi để thực hiện công việc, chẳng hạn như gửi email.
- Resources: Dữ liệu chỉ đọc mà ứng dụng lấy vào, chẳng hạn như một tệp nhật ký (log file).
- Prompts: Các mẫu (template) có thể tái sử dụng cho các tác vụ cụ thể.
Dưới đây là cách xây dựng một server cơ bản bằng Python sử dụng FastMCP SDK:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count words in a text."""
return len(text.split())
@mcp.resource("notes://team")
def team_notes() -> str:
"""Expose team notes."""
return "Release freeze starts Friday."
@mcp.prompt()
def code_review(language: str, code: str) -> str:
"""Template for code reviews."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
Đoạn mã này xử lý các giao tiếp phức tạp thay cho bạn. Các docstring của bạn sẽ trở thành hướng dẫn cho mô hình.
Ba lời khuyên khi triển khai thực tế (production):
- Bảo mật: Luôn yêu cầu sự chấp thuận của người dùng trước khi chạy một công cụ làm thay đổi dữ liệu.
- Ngữ cảnh: Giữ cho mô tả công cụ ngắn gọn. Mô tả quá dài sẽ gây lãng phí token.
- Lỗi: Trả về các thông báo rõ ràng. Một mô hình có thể sửa lỗi "User not found", nhưng nó không thể sửa được một lỗi crash mã nguồn thô.
Đừng xây dựng các bộ kết nối thiết kế riêng biệt nữa. Hãy xây dựng một MCP server một lần và để mọi mô hình cùng sử dụng.
Nguồn: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian