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: