TROISINH
Phát triển AgentSkills & Tools nâng cao

MCP cho Agent: Kết nối tools theo chuẩn mở — Giải pháp cho bài toán N×M

MCP (Model Context Protocol) chuẩn hóa kết nối AI agent với tools qua JSON-RPC, giải quyết bài toán N×M integrations và tiết kiệm 98% context tokens qua acti...

Khi agent của bạn cần gọi một tool mới, bạn thường phải viết lại đoạn wrapper từ đầu — rồi lặp lại với mỗi framework khác nhau. MCP (Model Context Protocol) là "USB-C" cho AI agents: một cổng chuẩn duy nhất để cắm bất kỳ tool nào vào bất kỳ agent nào, không cần viết lại adapter cho từng cặp riêng biệt.

Vấn đề

Trước khi có MCP, việc tích hợp tools vào AI agents là một mớ hỗn độn của "N×M adapters". Nếu bạn có N frameworks (LangChain, Haystack, LlamaIndex, CrewAI...) và M tools (database, Slack, Jira, Stripe...), bạn cần viết N×M lớp wrapper để chúng nói chuyện được với nhau. Mỗi framework định nghĩa "plug shape" riêng — giống như mỗi hãng điện thoại dùng cổng sạc riêng, bạn phải mang theo cả túi adapter đi làm.

Vấn đề thứ hai còn đau đầu hơn: context window pollution. Khi agent cần truy cập nhiều tools, descriptions của chúng được nhét vào system prompt. Với 1,000 tools, mỗi cái tốn ~250 tokens để mô tả schema, bạn đã đốt 250,000 tokens trước khi xử lý một chữ nào của user. Tool càng nhiều, agent càng "ngu" vì context bị bloat.

Chưa hết, kiến trúc cũ bắt LLM đóng vai middleman — dữ liệu từ Tool A phải chạy qua context window để đến Tool B, dù agent chỉ cần "copy paste". Điều này gây ra token duplication, latency cao và cơ hội hallucination tăng lên.

Ý tưởng cốt lõi

MCP không phải là một tool mới — nó là protocol grammar chuẩn hóa cách agent "nói chuyện" với thế giới bên ngoài, được Anthropic open-source vào tháng 11/2024. Hãy tưởng tượng nó như HTTP cho web browsers: bất kỳ browser nào cũng nói được với bất kỳ web server nào vì chúng đồng ý về cách parse request/response. MCP làm điều tương tự cho AI agents và tools.

Ba tầng kiến trúc: Host → Client → Server

Kiến trúc MCP tách biệt rõ ràng ba vai trò:

  1. Host: Ứng dụng AI (Claude Desktop, IDE, hoặc agent của bạn) — nơi user tương tác.
  2. Client: Protocol handler chạy trong host, quản lý kết nối và đời sống của server.
  3. Server: Process độc lập cung cấp tools/resources, giao tiếp qua JSON-RPC 2.0.

Communication có thể qua stdio (local, subprocess) hoặc SSE (Server-Sent Events, remote). Điều này có nghĩa là một MCP server viết bằng Python có thể phục vụ Claude Desktop (TypeScript/Electron) mà không cần wrapper ngôn ngữ nào.

Pattern khám phá (Discovery) thay vì hardcode:

  • Server expose capabilities qua tools/list method
  • Client invoke qua tools/call với structured parameters
  • Không cần khai báo trước toàn bộ schema trong system prompt

Lazy Loading & Active Discovery: MCP-Zero

Cái hay nhất của MCP là hierarchical indirection — tách transport layer (JSON-RPC) khỏi presentation layer (tool schemas). Nhờ đó, MCP-Zero (Active Tool Discovery) cho phép agent chỉ request schema của tool cụ thể khi cần dùng, thay vì preload toàn bộ catalog.

Kết quả: thay vì 250K tokens cho 1,000 tools, agent chỉ load ~5K tokens cho tools thực sự dùng trong turn đó — giảm 98% context bloat trên benchmark APIBank. Đây là "Netflix model" thay vì "download toàn bộ thư viện phim về máy".

Code Execution Optimization: Conductor thay vì Middleman

Thay vì bắt LLM "cầm hộ" dữ liệu giữa các tools (A → Model → B), MCP cho phép agent viết code orchestrate trong sandbox environment. Data chảy trực tiếp từ Tool A sang Tool B qua Python/TypeScript script; LLM chỉ đóng vai conductor (chỉ huy) không phải middleman (người vác hàng).

Ví dụ thực tế: Agent cần lấy dữ liệu từ PostgreSQL, transform bằng Pandas, rồi upload lên Google Sheets. Thay vì:

Query → LLM context → Python tool → LLM context → Sheets API

MCP cho phép:

LLM viết script: "df = query_db(); process(df); upload(df)"
→ Execute trong sandbox → Return final result

Token cost giảm, latency giảm, và hallucination biến mất vì dữ liệu thô không chạm vào context window.

Tại sao nó hoạt động

Tách biệt sematic vs syntactic: MCP định nghĩa cách hỏi (syntax) chứ không định nghĩa hỏi gì (semantics). Giống như USB-C: port chuẩn nhưng mỗi device vẫn tự quyết định chức năng. Điều này cho phép N frameworks và M tools chỉ cần N+M implementations thay vì N×M.

Just-in-time discovery economics: Bằng cách tách metadata (cái tên, mô tả 200 chars) ra khỏi implementation (code thực thi), MCP cho phép agent pattern-match cheap trước khi load nặng. Đây chính là "progressive disclosure" mà bạn thấy trong Skill System — chỉ trả tiền (tokens) cho thông tin bạn thực sự dùng.

Conductor pattern: Insight then chốt là LLM không cần "nhìn thấy" dữ liệu trung gian để điều phối nó. Giống như nhạc trưởng không cần chơi từng nhạc cụ để chỉ huy dàn nhạc. MCP tạo ra "service elevator" cho data flow — thay vì khiêng hộp qua phòng khách (context window), dữ liệu đi thang máy service từ A đến B.

Ý nghĩa thực tế

MetricNative Tool CallingMCP StandardMCP + Code Execution
Integration EffortN×M adaptersN+M adaptersN+M adapters
Context (1,000 tools)~250,000 tokens~250,000 tokens~5,000 tokens
Latency (multi-tool)Cao (qua LLM)Trung bìnhThấp (native execution)
SecurityFragmentedStandardized authSandboxed execution
MaintainabilityCứng nhắcVersioned schemasCode-as-config

Benchmark thực tế:

  • MCP-Zero: Handle 2,797 tools chỉ với 248.1K tokens total (98% reduction so với eager loading)
  • MCP-Bench: Đánh giá multi-step cross-tool reasoning, cho thấy agents giải quyết task phức tạp chính xác hơn khi không bị ngộp bởi tool descriptions
  • Scalekit 2026: MCP expensive hơn CLI truyền thống 10-32x về raw compute, nhưng rẻ hơn về engineering cost và bắt buộc cho enterprise security/compliance

Ai đang dùng: Anthropic (Claude Desktop), Microsoft (Copilot Studio), Google Cloud, Zapier (tích hợp 8,000+ tools qua MCP), và cộng đồng mcp.so với hàng nghìn custom servers.

Hạn chế cần biết:

  • MCP không thay thế RAG — chúng bổ sung cho nhau. RAG trả lời "tài liệu nói gì", MCP thực hiện "hành động gì".
  • Protocol overhead thêm ~50-100ms mỗi call so với native integration.
  • "Smelly" tool descriptions (mơ hồ, thiếu boundary conditions) vẫn degrade performance — xem thêm Thiết kế Tool cho Agent.
  • Long-horizon tasks (>100 steps) vẫn cần kỹ thuật checkpointing bên ngoài MCP.

Đào sâu hơn

Docs chính thức:

Cùng cụm (Skills & Tools):

Đọc tiếp:

Hooks & Quality Control

Kết hợp MCP với hooks để validate tool calls trước khi execute, đảm bảo production safety

Tài liệu mở rộng:

On this page