Free

MCP là gì: Kết nối Claude Code với thế giới bên ngoài

Giải thích cách MCP hoạt động và cách cấu hình để Claude Code kết nối với database, GitHub, Slack và các hệ thống bên ngoài khác qua MCP Server.


Claude Code mặc định có giới hạn nhất định: đọc/ghi file cục bộ, chạy lệnh terminal, gọi các công cụ tích hợp sẵn. Nhưng trong dự án thực tế, bạn thường cần nó truy vấn database, đọc tài liệu Notion, tìm kiếm tin nhắn Slack, gọi API nội bộ.

MCP chính là để giải quyết vấn đề đó.

MCP là gì

MCP (Model Context Protocol) là một giao thức mở do Anthropic đề xuất, định nghĩa cách mô hình AI giao tiếp với các công cụ bên ngoài và nguồn dữ liệu. Hãy hiểu nó như cài plugin cho Claude Code — mỗi MCP Server là một dịch vụ độc lập, cung cấp một tập công cụ, Claude có thể gọi trực tiếp trong phiên làm việc.

Khác với Hooks (kích hoạt script khi Claude thực hiện hành động), MCP chủ động mở rộng giới hạn khả năng của Claude: bạn kết nối gì, Claude có thể vận hành thứ đó.

Cách hoạt động

Kiến trúc rất đơn giản:

Claude Code (Client)  ←→  MCP Server  ←→  Hệ thống bên ngoài
  1. Bạn khai báo một MCP Server trong cấu hình (tiến trình cục bộ hoặc dịch vụ remote)
  2. Claude Code khởi động và kết nối đến Server, lấy danh sách công cụ được cung cấp
  3. Trong phiên làm việc, Claude có thể gọi các công cụ đó như gọi Read/Write/Bash tích hợp sẵn
  4. MCP Server xử lý yêu cầu và trả kết quả về cho Claude

Toàn bộ quá trình minh bạch với người dùng. Bạn thấy Claude nói "tôi sẽ kiểm tra database" rồi trả về kết quả — MCP đang chuyển tiếp yêu cầu ở phía sau.

Ba loại khả năng MCP

MCP Server có thể cung cấp ba thứ:

Tools (công cụ)
Các hàm Claude có thể chủ động gọi — "truy vấn bảng users", "tìm kiếm tài liệu", "gửi tin nhắn Slack". Đây là loại được dùng nhiều nhất, chiếm 90% tình huống thực tế.

Resources (tài nguyên)
Dữ liệu có cấu trúc Claude có thể đọc làm ngữ cảnh — schema database, tài liệu API, file cấu hình.

Prompts (mẫu prompt)
Các đoạn prompt được định nghĩa trước, người dùng có thể tham chiếu trực tiếp.

Trong thực tế, bạn sẽ gần như luôn làm việc với Tools.

Bắt đầu nhanh: Thêm MCP Server có sẵn

Lấy Filesystem MCP chính thức làm ví dụ — Server này cho phép Claude truy cập hệ thống file ngoài thư mục làm việc.

Cài đặt

npm install -g @modelcontextprotocol/server-filesystem

Cấu hình

Sửa ~/.claude/settings.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/Documents"
      ]
    }
  }
}

Xác nhận

Khởi động lại Claude Code và thử:

Liệt kê tất cả file PDF trong /Users/yourname/Documents

Nếu Claude trả về kết quả thay vì nói "tôi không thể truy cập hệ thống file", MCP đã hoạt động.

Phân tích cấu trúc cấu hình

{
  "mcpServers": {
    "tên-dịch-vụ": {
      "command": "lệnh khởi động",
      "args": ["danh sách tham số"],
      "env": {
        "API_KEY": "xxx"
      }
    }
  }
}
  • command + args: Claude Code dùng lệnh này để khởi động tiến trình MCP Server
  • Tên dịch vụ chỉ là định danh cục bộ, đặt tùy ý
  • env dùng để truyền API key và cấu hình nhạy cảm; không hardcode trong code

Đặt cấu hình ở đâu

Cấu hình MCP có thể đặt ở ba vị trí, theo thứ tự ưu tiên từ thấp đến cao:

Vị trí File Khi nào dùng
Toàn cục ~/.claude/settings.json Công cụ dùng cho mọi dự án
Cấp dự án .claude/settings.json Dành riêng cho dự án này
Override cục bộ .claude/settings.local.json Cấu hình cá nhân, không commit git

Với kết nối database, API nội bộ — đặt ở cấu hình dự án và commit cùng code. Thành viên team clone về là dùng được ngay.

Tìm MCP Server có sẵn ở đâu

Anthropic cung cấp một bộ server chính thức:

  • @modelcontextprotocol/server-filesystem — truy cập hệ thống file
  • @modelcontextprotocol/server-github — thao tác GitHub (PR, issue, tìm kiếm code)
  • @modelcontextprotocol/server-postgres — truy vấn PostgreSQL
  • @modelcontextprotocol/server-slack — đọc/ghi tin nhắn Slack
  • @modelcontextprotocol/server-google-maps — bản đồ và thông tin địa lý

Cộng đồng còn có nhiều triển khai bên thứ ba bao phủ Notion, Linear, Jira, và các database khác nhau.

MCP vs Hooks: Chọn cái nào

Hooks MCP
Kích hoạt bởi Claude thực hiện hành động cụ thể Claude chủ động gọi
Mục đích Chặn/tăng cường hành vi hiện có Mở rộng khả năng mới
Tình huống điển hình Format khi lưu, kiểm tra trước commit Truy vấn DB, gọi API ngoài
Độ phức tạp cấu hình Thấp Trung bình

Hai cái bổ sung cho nhau. Hooks kiểm soát cách Claude làm việc; MCP kiểm soát Claude có thể làm gì.

Bước tiếp theo

Bài này là phần nhập môn khái niệm MCP. Các bài tiếp theo sẽ bao gồm:

  • Kết nối Claude Code với database PostgreSQL thực tế (schema thực)
  • Kết nối công cụ nội bộ và API
  • Tự viết MCP Server từ đầu

Nếu bạn đã có hệ thống muốn kết nối, hãy xem danh sách MCP Server trước — khả năng cao đã có người viết sẵn.