Khám Phá Model Context Protocol (MCP) và Xây Dựng MCP Server Đơn Giản với Python
Tóm tắt nội dung chính
- Định nghĩa MCP: Model Context Protocol (MCP) là một giao thức mạnh mẽ, cho phép kết nối các ứng dụng trí tuệ nhân tạo (AI) với các nguồn dữ liệu bên ngoài và đóng vai trò là cầu nối giữa các mô hình ngôn ngữ lớn (LLM) với các công cụ, dữ liệu cần thiết để thực hiện tác vụ phức tạp.
- Lý do cần MCP: MCP giải quyết sự phức tạp trong việc quản lý tài nguyên (prompt, tool, dữ liệu) cho ứng dụng AI, đặc biệt là chatbot và agent, bằng cách đóng gói chúng vào một server riêng biệt.
- Lợi ích của MCP: Mang lại các lợi ích chính như: tổ chức và quản lý tập trung tài nguyên, khả năng mở rộng dễ dàng (thêm, sửa, xóa tool/prompt không cần thay đổi code agent), bảo mật (kiểm soát truy cập), tái sử dụng cho nhiều ứng dụng AI khác và đang dần trở thành chuẩn giao tiếp giữa LLM và các công cụ được hỗ trợ bởi các ông lớn.
- Kiến trúc MCP: Hoạt động theo mô hình client-server, bao gồm: MCP Server (chứa tool, prompt, dữ liệu và cung cấp API) và MCP Client (thường là agent/ứng dụng AI, sử dụng API của server để yêu cầu tài nguyên).
- Hướng dẫn xây dựng MCP Server đơn giản bằng Python: Bao gồm các bước: cài đặt thư viện (
fastmcp
,mcp-cli
), viết code (server.py
vớiFastMCP
và@mcp.tool
), chạy server (mcp run server.py
hoặcpython server.py
) và debug/kiểm tra qua giao diện webhttp://localhost:6274
(List Tool, Get Tool, Call Tool). - Tích hợp MCP Server với Agent: Agent sẽ sử dụng API của MCP Server để yêu cầu tool và dữ liệu, ví dụ minh họa cách tích hợp với OpenAI thông qua việc định nghĩa URL server và gọi tool.
- Kết luận: MCP là một giao thức hữu ích giúp đơn giản hóa việc phát triển ứng dụng AI, đặc biệt là agent, bằng cách đóng gói tài nguyên vào server, giúp code gọn gàng, dễ bảo trì và mở rộng.
Model Context Protocol (MCP) là một giao thức mạnh mẽ, cho phép kết nối các ứng dụng trí tuệ nhân tạo (AI) với các nguồn dữ liệu bên ngoài. Nó đóng vai trò như cầu nối giữa các mô hình ngôn ngữ lớn (LLM) và các công cụ, dữ liệu cần thiết để thực hiện các tác vụ phức tạp. Bài viết này sẽ giới thiệu chi tiết về MCP và hướng dẫn bạn xây dựng một MCP Server đơn giản bằng Python.
Tại sao cần MCP?
Trong quá trình phát triển ứng dụng AI, đặc biệt là chatbot và agent, việc quản lý các tài nguyên như prompt, tool, và dữ liệu trở nên phức tạp. MCP giải quyết vấn đề này bằng cách đóng gói tất cả tài nguyên vào một server riêng biệt. Điều này mang lại nhiều lợi ích:
- Tổ chức: MCP Server giúp tổ chức và quản lý tập trung các tài nguyên, giúp code gọn gàng và dễ bảo trì hơn.
- Khả năng mở rộng: Dễ dàng thêm, sửa, xóa tool và prompt mà không cần thay đổi code của agent.
- Bảo mật: Kiểm soát truy cập của agent vào các tài nguyên cụ thể trên server.
- Tái sử dụng: MCP Server có thể được tái sử dụng cho nhiều ứng dụng AI khác nhau.
- Chuẩn hóa: MCP đang dần trở thành chuẩn giao tiếp giữa LLM và các công cụ, được hỗ trợ bởi các ông lớn như Google, OpenAI, Anthropic.
Kiến trúc của MCP
MCP hoạt động theo mô hình client-server:
- MCP Server: Chứa các tool, prompt, dữ liệu và cung cấp API để client truy cập.
- MCP Client: Thường là agent hoặc ứng dụng AI, sử dụng API của server để yêu cầu tool, prompt và dữ liệu.
Xây dựng MCP Server đơn giản với Python
Dưới đây là các bước để xây dựng một MCP Server đơn giản bằng Python:
Bước 1: Cài đặt các thư viện cần thiết
Sử dụng uv
(khuyến nghị) hoặc pip
để cài đặt fastmcp
và mcp-cli
:
“`bash
uv add fastmcp mcp-cli
Hoặc
pip install fastmcp mcp-cli
“`
Bước 2: Viết code cho MCP Server
Tạo file server.py
với nội dung sau:
“`python
from fastmcp import FastMCP
mcp = FastMCP(name=”My First MCP Server”)
@mcp.tool
def hello(name: str):
“””
A simple tool that returns a greeting.
“””
return f”Hello, {name}!”
if name == “main“:
mcp.run()
“`
Bước 3: Chạy MCP Server
“`bash
mcp run server.py
hoặc
python server.py
“`
Bước 4: Debug và kiểm tra
Truy cập http://localhost:6274
trên trình duyệt để mở giao diện debug của MCP. Tại đây, bạn có thể:
- List Tool: Liệt kê tất cả các tool có sẵn trên server.
- Get Tool: Xem chi tiết về một tool cụ thể (input, output).
- Call Tool: Gọi và kiểm tra hoạt động của tool.
Tích hợp MCP Server với Agent
Sau khi xây dựng MCP Server, bạn có thể tích hợp nó với agent của mình. Agent sẽ sử dụng API của server để yêu cầu tool và dữ liệu. Ví dụ với OpenAI:
“`python
from openai import OpenAI
client = OpenAI()
Định nghĩa MCP server URL
mcp_server_url = “http://localhost:6274”
… (Code của agent) …
Gọi tool từ MCP server
response = client.beta.chat.completions.create(
model=”gpt-3.5-turbo-0613″,
messages=[
{“role”: “user”, “content”: “What’s my name?”}
],
tools=[
{
“type”: “function”,
“function”: {
“name”: “hello”,
“description”: “A simple tool that returns a greeting.”,
“parameters”: {
“type”: “object”,
“properties”: {
“name”: {
“type”: “string”,
“description”: “Your name”
}
},
“required”: [“name”]
}
}
}
],
tool_choice=”auto”, # hoặc {“type”: “function”, “function”: {“name”: “hello”}}
)
“`
Kết luận
MCP là một giao thức hữu ích giúp đơn giản hóa việc phát triển ứng dụng AI, đặc biệt là agent. Bằng cách đóng gói tài nguyên vào server, MCP giúp code gọn gàng, dễ bảo trì và mở rộng. Bài viết này đã cung cấp kiến thức cơ bản và hướng dẫn xây dựng MCP Server đơn giản. Hy vọng bài viết này sẽ giúp bạn bắt đầu hành trình khám phá MCP và ứng dụng nó vào các dự án AI của mình.
Tham khảo video gốc tại:
Các câu hỏi thường gặp (FAQ)
Model Context Protocol (MCP) là gì?
Tại sao việc sử dụng MCP lại cần thiết trong phát triển ứng dụng AI?
Kiến trúc hoạt động của MCP như thế nào?
Để xây dựng một MCP Server đơn giản bằng Python, cần cài đặt những thư viện nào?
fastmcp
và mcp-cli
.Làm thế nào để chạy và kiểm tra một MCP Server sau khi đã viết code?
mcp run server.py
hoặc python server.py
. Để kiểm tra, truy cập http://localhost:6274
trên trình duyệt để mở giao diện debug, nơi bạn có thể List Tool, Get Tool và Call Tool.