Featured image of post MCP (Model Context Protocol): Mô hình tư duy 'Cổng USB cho AI'

MCP (Model Context Protocol): Mô hình tư duy 'Cổng USB cho AI'

MCP là gì và tại sao mọi công cụ AI đều đang áp dụng nó trong 2026? Hướng dẫn chuyên sâu về chuẩn mở của Anthropic để kết nối AI với thế giới thực.

Trước USB, mỗi thiết bị cần một cáp riêng — bàn phím dùng cổng PS/2, chuột dùng cổng serial, máy in dùng cổng parallel. Thật hỗn loạn.

USB chuẩn hóa tất cả: một giao thức, mọi thiết bị.

Trước MCP (Model Context Protocol), mỗi AI model cần code tích hợp riêng để kết nối với mỗi công cụ — Slack, GitHub, Notion, database của bạn. Plugin riêng cho từng cặp. Ác mộng N×M tích hợp.

MCP là Cổng USB cho AI. Một chuẩn mở. Bất kỳ AI model nào. Bất kỳ nguồn dữ liệu hay công cụ nào.


Phần 1: Nền tảng (Mô hình tư duy)

Vấn đề N×M Tích hợp

Không có MCP:

1
2
3
4
5
Claude ←→ [code riêng] ←→ GitHub
Claude ←→ [code riêng] ←→ Notion
Claude ←→ [code riêng] ←→ PostgreSQL
GPT-4 ←→ [code riêng] ←→ GitHub   (code riêng khác!)
GPT-4 ←→ [code riêng] ←→ Notion   (lại code riêng nữa...)

Với N model và M công cụ, cần N×M tích hợp riêng.

MCP = Chuẩn Phổ quát

Với MCP:

1
2
3
4
Claude ──┐
GPT-4o ──┤── Giao thức MCP ──► GitHub MCP Server
Gemini ──┘                ──► Notion MCP Server
                          ──► PostgreSQL MCP Server
  • MCP Host: Ứng dụng AI (Claude Desktop, agent tùy chỉnh của bạn).
  • MCP Client: Sống trong host; quản lý kết nối đến server.
  • MCP Server: Server nhỏ gọn expose tool, resource và prompt.

Bất kỳ model nào tương thích MCP đều dùng được bất kỳ server nào tương thích MCP. Viết server một lần. Mọi AI model đều hưởng lợi.


Phần 2: Điều tra (MCP Expose những gì?)

Một MCP Server expose ba loại khả năng:

1. Tools (Hàm AI có thể gọi)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
    "name": "execute_sql",
    "description": "Thực thi truy vấn SQL read-only trên database production",
    "inputSchema": {
        "type": "object",
        "properties": {
            "query": {"type": "string", "description": "Câu truy vấn SQL cần thực thi"}
        },
        "required": ["query"]
    }
}

2. Resources (Dữ liệu AI có thể đọc)

Resources là nguồn dữ liệu AI có thể truy cập — như file, bản ghi DB, hoặc response API.

1
2
# AI có thể request: mcp://postgres/tables/orders
# Server trả về: schema và sample data của bảng orders

3. Prompts (Template Prompt tái sử dụng)

Templates prompt có sẵn mà user có thể gọi. Ví dụ: “Phân tích doanh số Q4” → kích hoạt prompt phân tích được dựng sẵn với dữ liệu thực được nhúng vào.


Phần 3: Chẩn đoán (Xây MCP Server của riêng bạn)

Dùng Python SDK mcp:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from mcp.server.fastmcp import FastMCP
import psycopg2

mcp = FastMCP("Company Data Server")

@mcp.tool()
def get_recent_orders(limit: int = 10) -> list[dict]:
    """Lấy các đơn hàng gần nhất từ database."""
    conn = psycopg2.connect("postgresql://...")
    cur = conn.cursor()
    cur.execute("SELECT id, customer, total, status FROM orders ORDER BY created_at DESC LIMIT %s", (limit,))
    return [{"id": r[0], "customer": r[1], "total": r[2], "status": r[3]} for r in cur.fetchall()]

@mcp.resource("company://docs/{filename}")
def get_document(filename: str) -> str:
    """Lấy tài liệu công ty theo tên file."""
    with open(f"/company_docs/{filename}") as f:
        return f.read()

if __name__ == "__main__":
    mcp.run(transport="stdio")

Kết nối với Claude Desktop

1
2
3
4
5
6
7
8
9
// ~/.config/claude/config.json
{
    "mcpServers": {
        "company-data": {
            "command": "python",
            "args": ["/path/to/my_mcp_server.py"]
        }
    }
}

Giờ Claude Desktop có thể truy cập database công ty bạn qua ngôn ngữ tự nhiên!


Phần 4: Giải pháp (MCP trong Production)

Bảo mật: Các quy tắc Bắt buộc

  • Không expose thao tác ghi mà không cần xác nhận: Read-only theo mặc định.
  • Xác thực mọi request: JWT token hoặc API key cho mỗi MCP server.
  • Phân quyền theo client: AI client khác nhau có quyền truy cập tool khác nhau.

Hệ sinh thái MCP (2026)

Các MCP server lớn đã có sẵn:

  • GitHub MCP: Đọc repo, issue, PR, lịch sử commit.
  • Postgres MCP: Truy vấn database của bạn.
  • Slack MCP: Đọc tin nhắn, gửi thông báo.
  • Google Drive MCP: Đọc/ghi tài liệu và sheets.
  • Filesystem MCP: Đọc file cục bộ (có sandbox).

Dùng MCP Server với LangChain

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from langchain_mcp_adapters.tools import load_mcp_tools
from langgraph.prebuilt import create_react_agent
from mcp import StdioServerParameters

server_params = StdioServerParameters(command="python", args=["my_mcp_server.py"])

async def run_agent():
    async with load_mcp_tools(server_params) as tools:
        agent = create_react_agent("openai:gpt-4o", tools)
        result = await agent.ainvoke({"messages": [
            {"role": "user", "content": "Cho tôi xem 5 đơn hàng hôm nay."}
        ]})
        print(result["messages"][-1].content)

Mô hình tư duy chốt hạ

1
2
3
4
5
6
7
8
9
Trước MCP  → N model × M công cụ = N×M tích hợp riêng. Hỗn loạn.
MCP        → Một giao thức. Mọi model, mọi công cụ. Như USB.

MCP Tool      → Hàm AI có thể gọi (execute_sql, send_slack_message).
MCP Resource  → Dữ liệu AI có thể đọc (file, DB schema, tài liệu).
MCP Prompt    → Template prompt có sẵn AI có thể gọi.
MCP Server    → Tích hợp tùy chỉnh của bạn. Viết một lần, mọi model dùng được.

Quy tắc bảo mật → Read-only theo mặc định. Xác thực mọi thứ.

MCP là tầng hạ tầng còn thiếu giữa AI model và thế giới thực. Trong 2026, mọi ứng dụng AI nghiêm túc đều đang xây dựng trên MCP hoặc đang tiến về phía đó.

Được tạo với sự lười biếng tình yêu 🦥

Subscribe to My Newsletter