Model Context Protocol là gì?

Model Context Protocol là gì?

Model Context Protocol (MCP) là chuẩn mở do Anthropic đề xuất, cho phép AI models kết nối với nguồn dữ liệu bên ngoài và công cụ thực tế một cách thống nhất. Trước MCP, mỗi tích hợp AI–tool đều cần viết adapter riêng dẫn đến fragmentation lớn. MCP định nghĩa một lớp transport JSON-RPC, giúp một model duy nhất gọi được database, file system, API bên thứ ba và thậm chí CLI tools mà không cần code bridge phức tạp.

Bản chất MCP là giao thức client–server trong đó AI application đóng vai trò client, còn MCP server cung cấp resources, prompts và tools. Server có thể chạy local qua stdio transport hoặc remote qua SSE/WebSocket. Client gửi JSON-RPC requests, nhận về kết quả có cấu trúc, đưa vào context window của model trước khi sinh câu trả lời. Hacker News và các community developer đều đang thảo luận sôi nổi về MCP như lớp abstraction mới cho AI tooling.

Mô hình 3D kết nối AI neural network

Kiến trúc core của MCP

MCP chia thành 3 primitive chính: Resources, Tools, Prompts. Resources là dữ liệu tĩnh hoặc động mà server expose — ví dụ nội dung file, schema database, entry trong knowledge base. Tools là hàm gọi-side-effect mà AI có thể trigger: đọc file, chạy query, gọi REST API, gửi email. Prompts là template prompt được server định nghĩa sẵn, giúp client yêu cầu model thực hiện task phức tạp mà không cần tự build chain-of-thought.

Ví dụ thực tế: một MCP server quản lý PostgreSQL có thể expose tool query_customers nhận tham số SQL có giới hạn, trả về rows dưới dạng JSON. Client gọi tool, nhận kết quả, chèn vào messages array gửi cho model. Model sinh câu trả lời dựa trên dữ liệu thực thay vì hallucinate. Đây là điểm khác biệt cốt lõi so với RAG thuần: MCP chạy thao tác có tác dụng phụ, không chỉ retrieve.

So sánh MCP với RAG và function calling truyền thống

RAG lấy dữ liệu từ vector store rồi nhét vào prompt. Hữu ích cho Q&A nhưng không biến đổi dữ liệu. Function calling của OpenAI hay Anthropic yêu cầu developer định nghĩa function schema cụng từng model. MCP cung cấp abstraction chung, server độc lập với client, hot-reload tools mà không cần restart app.

Nhiều tool hiện đại đã hỗ trợ MCP: Claude Desktop, Cursor, Windsurf, và cả n8n qua MCP integration. Bạn có thể cài một MCP server kết nối Notion, spreadsheet, database, và bất kỳ REST API nào — tất cả cùng lúc, không cần viết bridge code. Nhận file, xử lý data, gọi API bên ngoài, ghi lại kết quả: mọi thứ chạy trong một pipeline duy nhất.

Màn hình theo dõi thị trường tài chính trên smartphone

Cài đặt MCP server cơ bản

Để bắt đầu, bạn cần cài MCP SDK (Python hoặc TypeScript) và viết một server nhỏ. Với Python, cài pip install mcp, rồi viết script expose tool đơn giản. Server đăng ký tool với decorator, nhận tham số từ client, chạy logic, trả kết quả. Transport mặc định là stdio: client spawn server process, trao đổi JSON-RPC qua stdin/stdout.

Ví dụ Python tối thiểu: import McpServer, tạo instance, register tool với @server.tool decorator, chạy transport. Chỉ khoảng 20 dòng code là có MCP server hoạt động. TypeScript SDK tương tự, API gần như mirror.

Ví dụ MCP server thực tế

Một MCP server kết nối GitHub có thể expose tools như: list_issues, create_pull_request, get_file_content. Client (ví dụ Claude Desktop) gọi tool, nhận JSON payload, đưa vào prompt cho model. Model trả về: “Tôi đã xem issue #123 và thấy cần thêm test case, bạn có muốn tôi tạo pull request không?”

Một MCP server kết nối PostgreSQL có thể expose resource db://schema trả về schema dưới dạng JSON, và tool execute_query nhận SQL có tham số hóa để ngăn injection. Bạn có thể hỏi model: “Bảng customers có bao nhiêu cột?” Model gọi resource, thấy schema, trả lời ngay.

Bảo mật và production readiness

MCP hiện chưa có permission model chuẩn hóa đầy đủ. Một MCP server có full quyền truy cập file local hay database; nếu prompt injection xảy ra, attacker có thể lấy dữ liệu nhạy cảm. Để giảm thiểu, chạy MCP server trong sandbox, giới hạn tool bằng allowlist, dùng connection pooling cho database, và audit logs mọi tool invocation.

Phiên bản 1.0 đã ra mắt cuối 2024 với schema OAuth 2.1 bảo vệ remote server, nhưng implementation vẫn đang phát triển nhanh. MCP không phải silver bullet: phù hợp nhất khi bạn cần AI tương tác với hệ thống nội bộ có cấu trúc rõ ràng. Đối với unstructured data, kết hợp RAG + MCP là pattern tối ưu: RAG retrieve ngữ cảnh, MCP thực thi hành động dựa trên ngữ cảnh đó.

Khi nào nên dùng MCP

  • Ứng dụng cần AI gọi tool đa dạng: database, email, calendar, ticket.
  • Muốn giảm số lượng custom adapter giữa model và hệ thống.
  • Cần hot-swap tool mà không restart toàn bộ AI pipeline.
  • Muốn tách quyền: MCP server quản lý resource, client chỉ consume.
  • Đang build agentic workflow với nhiều tool calls sequence.
  • Muốn chia sẻ tool giữa nhiều AI agents trong cùng một workspace.

MCP đang trở thành lớp kết nối chuẩn trong AI stack. Nếu bạn đang build agentic workflow, nên evaluate MCP thay vì tự wrap tool thủ công. Tài liệu chính thức tại modelcontextprotocol.io và SDK đã đủ ổn cho production nhỏ và vừa. Bắt đầu với một MCP server đơn giản, test với Claude Desktop hoặc Cursor, rồi mở rộng dần theo nhu cầu.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Function Calling trong LLM: Cách AI gọi tool và thực thi hành động

Function Calling là gì? Function Calling là kỹ thuật cho phép mô hình ngôn ngữ lớn (LLM) gọi các hàm bên ngoài thay vì chỉ sinh văn bản thuần. Thay…

Xem thêm

CrewAI: Framework xây dựng AI Agent đa vai trò tự động hóa quy trình

CrewAI là gì? CrewAI là framework Python mã nguồn mở cho phép xây dựng hệ thống multi-agent (đa tác nhân) nơi các AI agent làm việc cùng nhau như một…

Xem thêm

AutoGen: Microsoft Multi-Agent Framework

AutoGen: Microsoft Multi-Agent Framework Tự động hóa phức tạp với AutoGen — framework từ Microsoft Research giúp các AI Agent tự động trao đổi, hợp tác và giải quyết bài…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất