MCP (Model Context Protocol) là giao thức mở do Anthropic phát triển, giúp các ứng dụng AI kết nối với dữ liệu, công cụ và dịch vụ bên ngoài theo cách thống nhất. Thay vì mỗi nhà phát triển phải xây dựng kết nối riêng biệt cho từng nguồn dữ liệu, MCP cung cấp một chuẩn chung để AI có thể tương tác với mọi thứ từ Google Drive đến cơ sở dữ liệu SQL hay hệ thống quản lý dự án.

Bài viết này sẽ giải thích cách MCP hoạt động, phân biệt với các phương pháp truyền thống như API và plugin, đi sâu vào các thành phần cốt lõi, và hướng dẫn áp dụng thực tế với các ví dụ cụ thể. Cuối cùng, bạn sẽ hiểu rõ khi nào nên sử dụng MCP và cách bảo mật khi triển khai.

MCP khác gì so với API truyền thống và plugin?

So sánh kiến trúc MCP với API truyền thống và plugin
MCP tạo lớp trung gian thống nhất, giảm số lượng kết nối riêng lẻ cần xây dựng

API truyền thống: Mỗi kết nối là một dự án riêng

Khi AI cần lấy dữ liệu từ hệ thống bên ngoài qua API, nhà phát triển phải:

  • Nghiên cứu tài liệu API của từng dịch vụ
  • Xử lý xác thực (OAuth, API key) theo cách riêng của mỗi nhà cung cấp
  • Chuyển đổi định dạng dữ liệu đầu ra cho phù hợp với AI
  • Duy trì code khi API thay đổi

Ví dụ: Để AI đọc file từ Google Drive, bạn phải tích hợp Google Drive API. Muốn thêm Dropbox? Lặp lại toàn bộ quy trình với Dropbox API. Mỗi kết nối thêm là một lớp phức tạp mới.

Plugin: Giải pháp riêng lẻ cho từng nền tảng

Plugin của ChatGPT hay extension của Claude hoạt động tốt trong hệ sinh thái riêng, nhưng:

  • Chỉ chạy trên nền tảng đó (plugin OpenAI không dùng được cho Claude)
  • Nhà phát triển phải xây dựng và duy trì nhiều phiên bản
  • Người dùng bị khóa vào một nhà cung cấp AI duy nhất

MCP: Một chuẩn cho mọi kết nối

MCP giải quyết bài toán này bằng cách đặt lớp trung gian thống nhất. AI giao tiếp với MCP client, client này kết nối với các MCP server. Mỗi MCP server chịu trách nhiệm dịch chuẩn MCP sang ngôn ngữ của dịch vụ cụ thể.

Kết quả: Một khi AI hỗ trợ MCP, nó có thể sử dụng mọi MCP server có sẵn mà không cần code thêm.

Tiêu chí API truyền thống Plugin MCP
Tính thống nhất Mỗi API có cách triển khai riêng Phụ thuộc nền tảng AI Một chuẩn cho mọi kết nối
Khả chuyển Cần viết lại cho từng dự án Không thể chuyển nền tảng Dùng được trên mọi AI hỗ trợ MCP
Chi phí bảo trì Cao, tăng theo số lượng kết nối Trung bình, phân tán theo nền tảng Thấp, tập trung vào MCP server
Trải nghiệm người dùng Không nhất quán Tốt trong hệ sinh thái riêng Nhất quán trên mọi ứng dụng

Các thành phần cốt lõi của MCP

Sơ đồ kiến trúc MCP với client, server, tools, resources và prompts
MCP hoạt động qua mô hình client-server với 3 loại khả năng chính

MCP Client: Điểm tiếp xúc của AI

MCP client là thành phần tích hợp trong ứng dụng AI (Claude Desktop, IDE như Cursor, hoặc các công cụ tự động hóa). Client chịu trách nhiệm:

  • Khám phá các MCP server có sẵn
  • Quản lý kết nối đến server
  • Chuyển tiếp yêu cầu từ AI đến server phù hợp
  • Xử lý phản hồi và trả về cho AI

Ví dụ thực tế: Trong Claude Desktop, bạn cấu hình MCP server trong file claude_desktop_config.json. Khi khởi động, Claude tự động phát hiện các server này và hiển thị khả năng của chúng.

MCP Server: Cầu nối đến thế giới bên ngoài

MCP server là chương trình độc lập triển khai giao thức MCP ở một phía, và giao tiếp với dịch vụ cụ thể ở phía còn lại. Server có thể được viết bằng Python, TypeScript, Go hoặc ngôn ngữ khác.

Một MCP server cung cấp ba loại khả năng chính cho AI:

Loại khả năng Mô tả Ví dụ
Tools Hành động AI có thể thực hiện Gửi email, tạo file, chạy query SQL
Resources Dữ liệu AI có thể đọc Nội dung file, cấu trúc database, danh sách task
Prompts Template hướng dẫn AI Cách phân tích log, format báo cáo, xử lý dữ liệu

Tools: Khi AI cần hành động

Tools là các hàm có thể thực thi mà AI có thể gọi. Khác với việc AI chỉ trả lời bằng text, tools cho phép AI tác động lên hệ thống.

Ví dụ cụ thể: MCP server cho PostgreSQL có thể cung cấp tool execute_query. Khi người dùng hỏi “Doanh thu tháng 3 là bao nhiêu?”, AI nhận ra cần dữ liệu từ database, gọi tool với query phù hợp, nhận kết quả và tổng hợp câu trả lời.

Resources: Dữ liệu AI có thể truy cập

Resources là các nguồn dữ liệu chỉ đọc mà AI có thể tham khảo. Khác với tools, resources không thay đổi trạng thái hệ thống.

Ví dụ: MCP server kết nối Google Drive expose resource dạng gdrive://{file_id}. AI có thể đọc nội dung file mà không cần người dùng copy-paste. Điều này đặc biệt hữu ích khi làm việc với tài liệu dài hoặc nhiều file.

Prompts: Hướng dẫn có cấu trúc

Prompts trong MCP là các template được định nghĩa trước, giúp AI xử lý tác vụ theo cách nhất quán. Đây khác với prompt thông thường ở chỗ chúng được version control và chia sẻ qua MCP server.

Ví dụ: MCP server cho hệ thống monitoring có thể cung cấp prompt “Phân tích log lỗi” với hướng dẫn cụ thể về cách nhóm lỗi, xác định nguyên nhân gốc và đề xuất fix.

Ví dụ thực tế: AI đọc và phân tích dữ liệu từ Google Drive

Minh họa AI truy cập file Google Drive qua MCP server
Với MCP, AI có thể đọc trực tiếp nội dung file từ Google Drive mà không cần người dùng upload thủ công

Tình huống

Bạn là quản lý marketing cần tóm tắt báo cáo hiệu suất quý 3. File nằm trong Google Drive, dung lượng 50 trang, có nhiều bảng biểu.

Cách làm truyền thống

  1. Mở Google Drive, tìm file
  2. Download hoặc mở file
  3. Copy nội dung quan trọng
  4. Paste vào chat AI
  5. Vượt quá context limit, phải chia nhỏ
  6. Mất 15-20 phút chỉ để chuẩn bị dữ liệu

Cách làm với MCP

  1. Cấu hình MCP server Google Drive một lần
  2. Trong Claude Desktop, hỏi: “Tóm tắt báo cáo Q3 trong thư mục Marketing, tập trung vào chỉ số conversion rate và chi phí acquisition”
  3. AI tự động:
  • Liệt kê file trong thư mục Marketing qua resource
  • Đọc nội dung file báo cáo Q3
  • Trích xuất dữ liệu conversion rate và CAC
  • Tạo tóm tắt có cấu trúc

Thời gian: 30 giây đặt câu hỏi, 10-15 giây chờ AI xử lý.

Chi tiết kỹ thuật

MCP server Google Drive hoạt động như sau:

  • Resource: gdrive://folder/{folder_id} liệt kê file, gdrive://file/{file_id} đọc nội dung
  • Tool: search_files tìm kiếm theo tên hoặc nội dung
  • Prompt: Có thể định nghĩa sẵn cách format tóm tắt báo cáo marketing

Khi AI quyết định cần dữ liệu, nó gọi MCP client, client gọi MCP server, server gọi Google Drive API và trả ngược dữ liệu về.

Ví dụ thực tế: AI truy vấn database và tạo báo cáo

AI thực hiện truy vấn SQL và tạo báo cáo tự động qua MCP
MCP cho phép AI truy vấn database trực tiếp và tạo phân tích từ dữ liệu thực

Tình huống

Bạn cần phân tích xu hướng doanh thu theo vùng miền. Dữ liệu nằm trong PostgreSQL, bạn biết SQL cơ bản nhưng viết query phức tạp mất thời gian.

Quy trình với MCP

Bước 1: Cấu hình MCP server PostgreSQL

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://user:pass@localhost:5432/sales_db"
      }
    }
  }
}

Bước 2: Tương tác tự nhiên

Người dùng: “So sánh doanh thu theo vùng miền tháng 3 với tháng 2, chỉ rõ vùng nào tăng trưởng mạnh nhất”

AI thực hiện:

  1. Gọi tool list_tables để xem cấu trúc database
  2. Gọi tool describe_table cho bảng ordersregions
  3. Tự động viết query SQL:
SELECT 
    r.region_name,
    SUM(CASE WHEN o.order_date >= '2024-03-01' 
         AND o.order_date < '2024-04-01' 
         THEN o.amount ELSE 0 END) as march_revenue,
    SUM(CASE WHEN o.order_date >= '2024-02-01' 
         AND o.order_date < '2024-03-01' 
         THEN o.amount ELSE 0 END) as feb_revenue
FROM orders o
JOIN regions r ON o.region_id = r.id
GROUP BY r.region_name
  1. Gọi execute_query với câu lệnh trên
  2. Phân tích kết quả, tính % tăng trưởng, xác định vùng dẫn đầu
  3. Trình bày kết luận dạng bảng so sánh

Lợi ích so với cách truyền thống

Khía cạnh Cách cũ Với MCP
Thời gian chuẩn bị 10-15 phút viết query 0, chỉ cần đặt câu hỏi
Độ chính xác Phụ thuộc kỹ năng SQL AI tự tối ưu query
Khả năng lặp lại Lưu query riêng, dễ thất lạc Lịch sử chat lưu ngữ cảnh
Chia sẻ Gửi file SQL hoặc screenshot Người khác dùng cùng MCP server

Bảo mật và quyền truy cập: Những điều cần biết

Biểu tượng cảnh báo bảo mật với các mức quyền truy cập MCP
MCP yêu cầu cân nhắc kỹ về phạm vi quyền truy cập để tránh rủi ro bảo mật

Nguyên tắc cơ bản: MCP server chạy local

Điều quan trọng cần hiểu: MCP server thường chạy trên máy local của bạn, không phải trên cloud. Điều này có nghĩa:

  • Ưu điểm: Dữ liệu nhạy cảm không rời khỏi máy, credential lưu local
  • Rủi ro: Nếu máy bị xâm nhập, attacker có quyền MCP server đó

Không nên cấp quyền quá rộng

Lỗi phổ biến nhất khi cấu hình MCP server là dùng account có quyền cao hơn cần thiết.

Ví dụ sai lầm:

Cấu hình MCP server PostgreSQL với user postgres (superuser) thay vì tạo user chỉ có quyền SELECT trên bảng cần thiết. Nếu AI bị lừa thực thi lệnh nguy hại, toàn bộ database có nguy cơ bị xóa.

Cách làm đúng:

MCP Server Quyền tối thiểu cần thiết Quyền không nên cấp
PostgreSQL SELECT trên bảng cụ thể DROP, DELETE, UPDATE nếu chỉ đọc
Google Drive Quyền đọc thư mục cụ thể Quyền xóa, quyền truy cập toàn bộ Drive
Slack Quyền đọc kênh cụ thể Quyền gửi tin nhắn, quyền admin workspace
GitHub Quyền đọc repo cụ thể Quyền push, quyền xóa repo

Xác thực và credential

MCP server lưu credential theo các cách:

  • Biến môi trường: An toàn nhất, không lộ trong config file
  • File config: Tiện nhưng cần đặt quyền read-only (chmod 600)
  • Keychain/Secret manager: Lý tưởng nếu MCP server hỗ trợ

Không bao giờ commit file config chứa credential vào git.

Kiểm soát từng lần gọi tool

Một số MCP client (như Claude Desktop) yêu cầu xác nhận người dùng trước khi thực thi tool. Tính năng này nên bật cho các tool có thể thay đổi dữ liệu:

  • execute_query với INSERT/UPDATE/DELETE
  • send_email
  • create_file/delete_file

Ví dụ cấu hình bảo mật tốt

{
  "mcpServers": {
    "postgres_readonly": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://analytics_read:{{DB_PASSWORD}}@localhost:5432/prod_db"
      }
    }
  }
}

Với user analytics_read trong PostgreSQL chỉ có:

GRANT SELECT ON TABLE sales.orders TO analytics_read;
GRANT SELECT ON TABLE sales.customers TO analytics_read;
-- Không có quyền trên bảng users, payments, admin tables

Khi nào nên sử dụng MCP?

Quyết định sử dụng MCP dựa trên nhu cầu kết nối AI với hệ thống
MCP phù hợp khi cần kết nối AI với nhiều nguồn dữ liệu một cách nhất quán

Trường hợp MCP mang lại giá trị cao

Làm việc với nhiều nguồn dữ liệu

Khi AI cần kết hợp thông tin từ Google Drive, Slack, GitHub và database nội bộ. Thay vì 4 integration riêng biệt, một MCP client xử lý tất cả.

Tự động hóa workflow phức tạp

Ví dụ: Hệ thống tự động đọc email support → truy vấn database lịch sử khách hàng → tạo draft trả lời → gửi Slack cho team lead duyệt. MCP cho phép AI điều phối chuỗi này qua nhiều tool.

Xây dựng công cụ nội bộ

Công ty có hệ thống CRM tự phát triển. Viết MCP server một lần, toàn bộ team dùng AI tương tác với CRM mà không cần training riêng.

Trường hợp MCP có thể không cần thiết

Chỉ một kết nối đơn giản

Nếu chỉ cần AI gọi một API cố định, viết trực tiếp có thể nhẹ hơn. MCP thêm lớp abstraction không cần thiết.

Yêu cầu latency cực thấp

MCP thêm một hop (AI → MCP client → MCP server → dịch vụ). Với ứng dụng real-time như giao dịch tài chính, kết nối trực tiếp có thể tốt hơn.

Hệ sinh thái đóng

Nếu toàn bộ chạy trong một nền tảng (chỉ dùng OpenAI với plugin của họ), MCP không mang lại lợi ích thêm.

Các MCP server phổ biến và cách bắt đầu

Bộ sưu tập các MCP server phổ biến cho nhiều nền tảng
Cộng đồng đã phát triển MCP server cho hầu hết các dịch vụ phổ biến

MCP server chính thức từ Anthropic

Server Chức năng Ngôn ngữ
server-filesystem Đọc/ghi file local TypeScript
server-postgres Truy vấn PostgreSQL TypeScript
server-sqlite Làm việc với SQLite Python
server-github Tương tác GitHub TypeScript

MCP server từ cộng đồng

Cộng đồng đóng góp nhiều server cho dịch vụ phổ biến:

  • Google Drive: Đọc file, tìm kiếm, quản lý thư mục
  • Slack: Đọc tin nhắn, gửi thông báo
  • Notion: Truy cập database, tạo page
  • Brave Search: Tìm kiếm web thay vì dùng Bing API
  • Puppeteer: Điều khiển browser để scrape hoặc test

Bước đầu tiên để thử MCP

Với Claude Desktop (khuyên dùng cho người mới):

  1. Cài đặt Claude Desktop
  2. Tạo file ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) hoặc %APPDATA%\Claude\claude_desktop_config.json (Windows)
  3. Thêm MCP server đầu tiên, ví dụ filesystem:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
    }
  }
}
  1. Khởi động lại Claude, kiểm tra biểu tượng 🔨 (tools) xuất hiện

Với IDE như Cursor:

Cursor hỗ trợ MCP từ phiên bản 0.40+. Vào Settings → MCP, thêm server tương tự như trên.

Tự xây dựng MCP server

Nếu cần kết nối hệ thống nội bộ, có thể viết MCP server riêng:

# Ví dụ đơn giản với Python SDK
from mcp.server import Server
from mcp.types import Tool, TextContent

app = Server("my-custom-server")

@app.list_tools()
async def list_tools():
    return [
        Tool(
            name="query_internal_api",
            description="Truy vấn API nội bộ",
            inputSchema={"type": "object", "properties": {"endpoint": {"type": "string"}}}
        )
    ]

@app.call_tool()
async def call_tool(name, arguments):
    if name == "query_internal_api":
        # Gọi API nội bộ
        result = await internal_api_call(arguments["endpoint"])
        return [TextContent(type="text", text=result)]

Hạn chế và hướng phát triển của MCP

Hạn chế hiện tại

Phụ thuộc vào client hỗ trợ

Không phải mọi ứng dụng AI đều hỗ trợ MCP. Tính đến đầu 2025, chủ yếu Claude Desktop, Cursor, và một số công cụ chuyên biệt hỗ trợ đầy đủ.

Chưa có registry chính thức

Tìm MCP server còn phụ thuộc GitHub search hoặc community curation. Chưa có npm/pip-style registry để khám phá và cài đặt dễ dàng.

Version và compatibility

MCP đang phát triển nhanh, các server cũ có thể không tương thích với client mới. Cần theo dõi changelog khi upgrade.

Xu hướng phát triển

MCP cho agent tự chủ

Hiện tại MCP chủ yếu dùng cho AI hỗ trợ người dùng. Tương lai gần sẽ thấy MCP cho autonomous agent tự đưa ra quyết định và thực thi chuỗi hành động phức tạp.

Remote MCP server

Hiện tại MCP server chạy local. Anthropic đang phát triển chuẩn cho remote MCP server, cho phép SaaS cung cấp MCP endpoint mà người dùng chỉ cần kết nối.

Tích hợp sâu hơn với enterprise

Các công cụ quản lý MCP server ở quy mô doanh nghiệp: audit log, role-based access control, centralized credential management.

Câu hỏi thường gặp về MCP

MCP có miễn phí không?

Giao thức MCP là mở và miễn phí. Tuy nhiên, việc chạy MCP server có thể tốn phí nếu server gọi dịch vụ trả phí (như Google Drive API với quota cao).

MCP có an toàn hơn kết nối trực tiếp không?

Không tự động an toàn hơn. MCP là chuẩn giao tiếp, bảo mật phụ thuộc cách cấu hình: quyền truy cập hợp lý, credential bảo vệ, và kiểm soát người dùng.

Có thể dùng MCP với ChatGPT không?

ChatGPT chính thức chưa hỗ trợ MCP. Có thể dùng workaround qua API với custom client, nhưng không phải trải nghiệm native như Claude Desktop.

MCP thay thế API không?

Không. MCP sử dụng API bên dưới. Nó là lớp abstraction giúp AI dùng API dễ hơn, không thay thế bản thân API.

Làm sao biết MCP server nào đáng tin cậy?

Ưu tiên: (1) Server chính thức từ Anthropic, (2) Server có nhiều star/fork trên GitHub với maintenance active, (3) Review code trước khi chạy server từ nguồn không quen thuộc.

Kết luận

MCP (Model Context Protocol) mở ra cách tiếp cận mới để AI tương tác với thế giới bên ngoài: thống nhất, có cấu trúc, và dễ mở rộng. Thay vì xây dựng integration riêng cho từng dịch vụ, nhà phát triển tập trung vào MCP server, người dùng tận hưởng trải nghiệm nhất quán trên mọi AI client.

Điểm mấu chốt khi áp dụng: bắt đầu với một use case cụ thể (đọc Google Drive hoặc truy vấn database), cấu hình quyền truy cập tối thiểu cần thiết, và mở rộng dần khi quen thuộc với mô hình.

Nếu đang xây dựng hệ thống AI cho team hoặc doanh nghiệp, việc đánh giá MCP sớm sẽ giúp tránh nợ kỹ thuật khi chuẩn này trở thành mặc định trong ngành.