MCP Servers — Lớp kết nối: cắm Claude vào công cụ và dữ liệu bên ngoài
Cho tới giờ, agent của chúng ta đã có bộ nhớ, chuyên môn, kiểm soát, phân công và cách phân phối. Nhưng nó vẫn còn thiếu một thứ để thực sự làm việc trong doanh nghiệp: kết nối với thế giới bên ngoài — GitHub, cơ sở dữ liệu, CRM, Google Drive, Slack, hệ thống báo cáo. Một agent không chạm được dữ liệu thật thì mãi chỉ là lý thuyết.
Đó là vai trò của MCP (Model Context Protocol) — lớp kết nối trong bộ công cụ. Trong sơ đồ, MCP Servers nằm ở một bên và nối vào mọi lớp khác, vì nó chính là cầu nối năng lực.
MCP là gì
MCP là một chuẩn mở giúp kết nối AI agent với công cụ và nguồn dữ liệu bên ngoài — mà không phải viết tích hợp riêng cho từng dịch vụ. Anthropic giới thiệu MCP vào tháng 11/2024 (Anthropic — Introducing MCP). Vai trò của nó trong bộ công cụ rất rõ: **thêm năng lực (capability)** — khác với skill (dạy cách làm), subagent (bảo vệ ngữ cảnh) hay hook (đảm bảo tất định).
Một cách nhớ gọn: MCP kết nối và cung cấp dữ liệu; Skills dạy Claude làm gì với dữ liệu đó (Anthropic — Skills explained).
Điểm quan trọng: MCP là chuẩn mở, không độc quyền của Anthropic — nhiều ứng dụng và mô hình khác cũng dùng chung, nên một MCP server bạn viết có thể tái dùng ở nhiều nơi.
Kiến trúc client–server
MCP theo mô hình client–server. Một MCP server phơi bày ba loại thứ cho agent (modelcontextprotocol.io — Server concepts):
- Tools — các hàm mà mô hình có thể gọi (ví dụ: "tạo issue trên GitHub", "truy vấn database").
- Resources — dữ liệu mà mô hình có thể đọc (ví dụ: nội dung một file, một bản ghi).
- Prompts — các mẫu prompt tái dùng.
Giao tiếp dùng JSON-RPC 2.0, qua stdio (tiến trình cục bộ) hoặc HTTP dạng streamable (dịch vụ từ xa).
Khai báo một MCP server
Cách nhanh nhất là qua CLI (Claude Docs — MCP):
# Remote qua HTTP (khuyến nghị cho dịch vụ đám mây)
claude mcp add --transport http notion https://mcp.notion.com/mcp
# Local qua stdio (chạy một tiến trình trên máy)
claude mcp add --transport stdio airtable -- npx -y airtable-mcp-serverHoặc khai báo trong file .mcp.json để chia sẻ theo dự án (commit được vào repo):
{
"mcpServers": {
"api-server": {
"type": "http",
"url": "${API_BASE_URL:-https://api.example.com}/mcp",
"headers": { "Authorization": "Bearer ${API_KEY}" }
}
}
}Vài điểm cần nhớ:
- Transport:
stdio(local),http/streamable-http(remote, hỗ trợ OAuth), cùngsse/ws. - Scope: local (mặc định, riêng bạn), project (
.mcp.json, chia sẻ qua git — cần duyệt trước khi dùng), user (mọi dự án). - Tool từ MCP xuất hiện với tên dạng
mcp__<server>__<tool>. - Env var expansion trong
.mcp.json: dùng${VAR}và${VAR:-default}— tuyệt đối không hardcode token/khóa; tham chiếu qua biến môi trường.
MCP kết nối với các lớp khác thế nào
Đây là lúc cả bộ công cụ ăn khớp với nhau:
- Plugin có thể đóng gói MCP server (đặt
.mcp.jsonở gốc plugin) — bật plugin là server tự chạy (xem Bài 5). - Hook có thể gọi một MCP tool (
type: "mcp_tool") hoặc khớp tool MCP trong matcher (xem Bài 3). - Subagent có thể giới hạn hoặc thêm MCP server riêng qua frontmatter
mcpServers(xem Bài 4).
Câu tổng kết cho cả chuỗi: **Skill đổi hành vi; Subagent bảo vệ ngữ cảnh; MCP thêm năng lực kết nối ngoài; Hook đảm bảo hành động tất định; Plugin đóng gói & phân phối tất cả.**
Bảo mật
- Server phạm vi dự án phải được duyệt trước khi dùng (vì nó đến từ repo, có thể do người khác thêm).
- Dịch vụ từ xa nên dùng OAuth 2.0 thay vì dán token cứng.
- Tổ chức có thể dùng managed config với danh sách server cho phép/chặn (
allowedMcpServers/deniedMcpServers). - Luôn để token/headers trong biến môi trường, không commit vào repo.
Một hiểu lầm phổ biến
Nhiều người lo "cắm nhiều MCP server sẽ nhồi hàng trăm tool vào ngữ cảnh và ngốn token". Thực tế, MCP mặc định có cơ chế tìm tool — chỉ nạp tool khi cần — nên bạn có thể kết nối nhiều dịch vụ mà không làm phình ngữ cảnh quá mức.
Tóm tắt & bước tiếp theo
MCP là lớp kết nối: một chuẩn mở client–server phơi bày tools/resources/prompts, khai báo qua CLI hoặc .mcp.json, có nhiều transport và scope, và ăn khớp với plugin/skill/hook/subagent để cấp năng lực cho agent. Đây là mảnh ghép giúp agent thoát khỏi "phòng kín" và làm việc với dữ liệu thật.
Giờ bạn đã có đủ sáu lớp. Bài 7 — bài cuối — sẽ ghép tất cả lại: dựng một "nhân viên AI" hoàn chỉnh cho một quy trình doanh nghiệp thật, và đưa ra lộ trình áp dụng.
Nguồn tham khảo
- Anthropic — Introducing the Model Context Protocol: https://www.anthropic.com/news/model-context-protocol
- Claude Docs — Connect Claude Code to tools via MCP: https://docs.claude.com/en/docs/claude-code/mcp
- Model Context Protocol — Server concepts: https://modelcontextprotocol.io/docs/learn/server-concepts
- Anthropic — Skills explained (MCP vs Skills): https://claude.com/blog/skills-explained
Bài 6/7 trong chuỗi "Bộ công cụ phát triển Agent với Claude". Nội dung diễn giải lại từ tài liệu gốc của Anthropic. Trước ← Bài 5: Plugins · Tiếp theo → Bài 7: Ghép lại.
