MCP Đang Bị Dùng Sai: Hướng Dẫn Dùng Model Context Protocol Đúng Cách Cho Developer
Mọi người đang phàn nàn MCP phức tạp và không ổn định — nhưng đúng vì lý do sai. MCP thực sự rất tốt cho hai trường hợp cụ thể, còn lại thì không nên dùng.
Gần đây cộng đồng dev liên tục tranh luận về MCP (Model Context Protocol) — một phần khen ngợi, một phần chê bai là overengineered và unreliable. Thực ra, cả hai đều đúng. Vấn đề không phải MCP tệ, mà là đang dùng sai chỗ.
MCP Phù Hợp Với Gì?
MCP thực sự tỏa sáng trong hai trường hợp:
- GUI client integrations — như Claude Desktop, Cursor, hay các IDE tích hợp AI. MCP cho phép tool "nói chuyện" với client qua giao thức chuẩn hóa.
- Documentation servers — expose tài liệu, schema, context tĩnh cho LLM đọc khi cần.
MCP Không Phù Hợp Với Gì?
Đây là điểm mà nhiều người đang làm sai: dùng MCP để wire tool calling trong agent code. Nếu bạn đang viết code Python/TypeScript để gọi LLM API và muốn thêm tool, đừng dùng MCP — hãy dùng function calling trực tiếp.
// ❌ Sai: Dùng MCP trong agent code
const mcpClient = new MCPClient({ server: "my-tools" });
const result = await mcpClient.callTool("search", { query });
// ✅ Đúng: Dùng function calling trực tiếp
const response = await anthropic.messages.create({
model: "claude-opus-4-5",
tools: [{
name: "search",
description: "Search the web",
input_schema: { type: "object", properties: { query: { type: "string" } } }
}],
messages: [{ role: "user", content: "Search for latest React news" }]
});
Tại Sao Sự Nhầm Lẫn Này Xảy Ra?
Marketing và hype đã làm mờ ranh giới. MCP được giới thiệu như một "universal protocol for AI tools" — nghe có vẻ như nên dùng ở khắp nơi. Nhưng thực tế, nó là một communication protocol giữa AI client và tool server, không phải framework để viết agent logic.
Khi Nào Nên Dùng MCP?
// ✅ Đúng: MCP server expose tools cho GUI client
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
const server = new Server(
{ name: "my-dev-tools", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [{
name: "get_file_content",
description: "Read a file from the project",
inputSchema: {
type: "object",
properties: { path: { type: "string" } }
}
}]
}));
// Người dùng Cursor/Claude Desktop sẽ tự động thấy tool này
Tóm Lại
MCP là công cụ tốt khi dùng đúng chỗ:
- ✅ Expose tools cho IDE/GUI clients như Cursor, Claude Desktop
- ✅ Serve documentation và context tĩnh
- ❌ Wire tool calling trong agent/pipeline code của bạn
- ❌ Thay thế cho native function calling API
Hiểu đúng ranh giới này sẽ giúp bạn tránh được nhiều đau đầu khi build AI-powered applications.
Admin
Cal.com
Open source scheduling — tự host booking system, thay thế Calendly. Free & privacy-first.
Bình luận (0)
Đăng nhập để bình luận
Chưa có bình luận nào. Hãy là người đầu tiên!