{"product_id":"mcp-model-context-protocol-giải-thich-dơn-giản","title":"MCP (Model Context Protocol) — Giải thích đơn giản","description":"\u003ch2\u003eMCP là gì?\u003c\/h2\u003e\n\u003cp\u003eModel Context Protocol (MCP) là một open standard do Anthropic phát triển, được thiết kế để giải quyết một vấn đề căn bản: làm thế nào để AI models kết nối một cách nhất quán với external tools, data sources, và services.\u003c\/p\u003e\n\n\u003cp\u003eTrước khi có MCP, mỗi AI application phải tự xây dựng integration riêng với từng tool — một codebase phức tạp, không tái sử dụng được, và khó maintain. MCP tạo ra một \"ngôn ngữ chung\" để mọi AI client có thể nói chuyện với mọi tool server theo cùng một cách.\u003c\/p\u003e\n\n\u003cblockquote\u003eMCP giống như USB-C trong thế giới AI integration: thay vì mỗi thiết bị cần một loại cáp riêng, tất cả dùng chung một chuẩn kết nối.\u003c\/blockquote\u003e\n\n\u003ch2\u003eTại sao MCP quan trọng?\u003c\/h2\u003e\n\n\u003ch3\u003eVấn đề trước MCP\u003c\/h3\u003e\n\u003cp\u003eHãy tưởng tượng bạn muốn xây dựng một AI assistant có thể:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eĐọc file từ máy tính local\u003c\/li\u003e\n\u003cli\u003eQuery database\u003c\/li\u003e\n\u003cli\u003eGọi GitHub API\u003c\/li\u003e\n\u003cli\u003eGửi message Slack\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eTrước MCP, bạn phải viết custom integration code cho từng usecase, với từng AI model. Khi đổi từ Claude sang model khác, toàn bộ integration phải viết lại.\u003c\/p\u003e\n\n\u003ch3\u003eVới MCP\u003c\/h3\u003e\n\u003cp\u003eMỗi service (GitHub, Slack, filesystem...) xây dựng một \u003cstrong\u003eMCP Server\u003c\/strong\u003e theo chuẩn chung. Mọi AI client hỗ trợ MCP (Claude Code, Claude Desktop, và các tools khác) có thể kết nối với bất kỳ MCP Server nào — không cần custom code thêm.\u003c\/p\u003e\n\n\u003cp\u003eĐây là \u003cstrong\u003einteroperability\u003c\/strong\u003e thực sự: build once, work everywhere trong hệ sinh thái MCP.\u003c\/p\u003e\n\n\u003ch2\u003eKiến trúc MCP — Client-Server Model\u003c\/h2\u003e\n\n\u003ch3\u003eCác thành phần chính\u003c\/h3\u003e\n\u003cp\u003eMCP hoạt động theo mô hình client-server với ba loại thành phần:\u003c\/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eMCP Host:\u003c\/strong\u003e Ứng dụng AI bạn đang dùng (Claude Desktop, Claude Code, IDE plugins...)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMCP Client:\u003c\/strong\u003e Component bên trong Host, quản lý kết nối với servers\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMCP Server:\u003c\/strong\u003e Process độc lập cung cấp capabilities (tools, resources, prompts)\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eLuồng hoạt động điển hình:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eUser yêu cầu Claude làm gì đó liên quan đến external data\u003c\/li\u003e\n\u003cli\u003eClaude (qua MCP Client) gọi MCP Server tương ứng\u003c\/li\u003e\n\u003cli\u003eMCP Server thực hiện action\/query và trả kết quả\u003c\/li\u003e\n\u003cli\u003eClaude nhận kết quả và đưa vào context để trả lời user\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch3\u003eBa khái niệm cốt lõi của MCP\u003c\/h3\u003e\n\n\u003ch4\u003e1. Resources\u003c\/h4\u003e\n\u003cp\u003eResources là dữ liệu mà server expose để AI có thể đọc — giống như file system hoặc database records. Resources có URI dạng \u003ccode\u003eprotocol:\/\/path\/to\/resource\u003c\/code\u003e và có thể là text hoặc binary.\u003c\/p\u003e\n\n\u003cp\u003eVí dụ:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ccode\u003efile:\/\/\/home\/user\/project\/README.md\u003c\/code\u003e — một file cụ thể\u003c\/li\u003e\n\u003cli\u003e\n\u003ccode\u003egithub:\/\/repos\/anthropic\/mcp\/issues\u003c\/code\u003e — list GitHub issues\u003c\/li\u003e\n\u003cli\u003e\n\u003ccode\u003epostgres:\/\/db\/customers\/recent\u003c\/code\u003e — query database\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch4\u003e2. Tools\u003c\/h4\u003e\n\u003cp\u003eTools là các hàm mà AI có thể gọi để thực hiện actions — tạo file, gửi message, search web, chạy query. Mỗi tool có schema định nghĩa input parameters và output format.\u003c\/p\u003e\n\n\u003cp\u003eVí dụ tool schema:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e{\n  \"name\": \"create_github_issue\",\n  \"description\": \"Tạo một issue mới trên GitHub repository\",\n  \"inputSchema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"repo\": {\n        \"type\": \"string\",\n        \"description\": \"Repository name (owner\/repo)\"\n      },\n      \"title\": {\n        \"type\": \"string\",\n        \"description\": \"Tiêu đề issue\"\n      },\n      \"body\": {\n        \"type\": \"string\",\n        \"description\": \"Nội dung issue\"\n      }\n    },\n    \"required\": [\"repo\", \"title\"]\n  }\n}\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch4\u003e3. Prompts\u003c\/h4\u003e\n\u003cp\u003ePrompts là các template prompt được pre-defined trong server — reusable workflows mà user có thể invoke. Ví dụ: \"Analyze this codebase for security issues\" là một prompt template mà filesystem server có thể cung cấp.\u003c\/p\u003e\n\n\u003ch2\u003eMCP với Claude Code\u003c\/h2\u003e\n\n\u003ch3\u003eClaude Code là MCP Client\u003c\/h3\u003e\n\u003cp\u003eClaude Code có built-in MCP support. Khi bạn install một MCP server, Claude Code có thể sử dụng tất cả tools và resources mà server đó cung cấp.\u003c\/p\u003e\n\n\u003cp\u003eCài đặt MCP server trong Claude Code:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e# Thêm MCP server (ví dụ: filesystem server)\nclaude mcp add filesystem npx @modelcontextprotocol\/server-filesystem \/path\/to\/allowed\/dir\n\n# Xem danh sách servers đã cài\nclaude mcp list\n\n# Xóa server\nclaude mcp remove filesystem\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eSau khi add server, Claude Code có thể trực tiếp đọc file, tạo file, hay search trong thư mục được cho phép — không cần bạn copy-paste nội dung thủ công.\u003c\/p\u003e\n\n\u003ch3\u003eCLAUDE.md và MCP context\u003c\/h3\u003e\n\u003cp\u003eTrong file \u003ccode\u003eCLAUDE.md\u003c\/code\u003e của project, bạn có thể định nghĩa MCP servers nào nên được active và cách Claude nên sử dụng chúng, tạo ra workflow nhất quán cho toàn team.\u003c\/p\u003e\n\n\u003ch2\u003eMCP với Claude Desktop\u003c\/h2\u003e\n\n\u003ch3\u003eCấu hình claude_desktop_config.json\u003c\/h3\u003e\n\u003cp\u003eClaude Desktop đọc MCP server configuration từ file:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003emacOS:\u003c\/strong\u003e \u003ccode\u003e~\/Library\/Application Support\/Claude\/claude_desktop_config.json\u003c\/code\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWindows:\u003c\/strong\u003e \u003ccode\u003e%APPDATA%Claudeclaude_desktop_config.json\u003c\/code\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eFormat cấu hình:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol\/server-filesystem\",\n        \"\/Users\/username\/Documents\",\n        \"\/Users\/username\/Projects\"\n      ]\n    },\n    \"github\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\/server-github\"],\n      \"env\": {\n        \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"ghp_your_token_here\"\n      }\n    },\n    \"slack\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\/server-slack\"],\n      \"env\": {\n        \"SLACK_BOT_TOKEN\": \"xoxb-your-token\"\n      }\n    }\n  }\n}\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eSau khi lưu file và restart Claude Desktop, bạn sẽ thấy biểu tượng hammer trong chat interface — nhấn vào để xem danh sách tools khả dụng.\u003c\/p\u003e\n\n\u003ch2\u003ePopular MCP Servers\u003c\/h2\u003e\n\n\u003ch3\u003eEcosystem hiện tại\u003c\/h3\u003e\n\u003cp\u003eCộng đồng đã xây dựng nhiều MCP servers cho các use cases phổ biến:\u003c\/p\u003e\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eServer\u003c\/th\u003e\n\u003cth\u003ePackage\u003c\/th\u003e\n\u003cth\u003eChức năng\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eFilesystem\u003c\/td\u003e\n\u003ctd\u003e\u003ccode\u003e@modelcontextprotocol\/server-filesystem\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eĐọc\/ghi file local\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGitHub\u003c\/td\u003e\n\u003ctd\u003e\u003ccode\u003e@modelcontextprotocol\/server-github\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eIssues, PRs, repos\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSlack\u003c\/td\u003e\n\u003ctd\u003e\u003ccode\u003e@modelcontextprotocol\/server-slack\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eChannels, messages\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePostgreSQL\u003c\/td\u003e\n\u003ctd\u003e\u003ccode\u003e@modelcontextprotocol\/server-postgres\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eQuery database\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSQLite\u003c\/td\u003e\n\u003ctd\u003e\u003ccode\u003e@modelcontextprotocol\/server-sqlite\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eLocal SQLite DB\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBrave Search\u003c\/td\u003e\n\u003ctd\u003e\u003ccode\u003e@modelcontextprotocol\/server-brave-search\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eWeb search\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGoogle Maps\u003c\/td\u003e\n\u003ctd\u003e\u003ccode\u003e@modelcontextprotocol\/server-google-maps\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eMaps, geocoding\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePuppeteer\u003c\/td\u003e\n\u003ctd\u003e\u003ccode\u003e@modelcontextprotocol\/server-puppeteer\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eBrowser automation\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003cp\u003eToàn bộ danh sách servers tham khảo tại: github.com\/modelcontextprotocol\/servers\u003c\/p\u003e\n\n\u003ch3\u003eCommunity servers\u003c\/h3\u003e\n\u003cp\u003eNgoài các server chính thức, cộng đồng đã tạo ra hàng trăm MCP servers cho các services khác: Notion, Jira, Figma, AWS, Google Workspace, Shopify, và nhiều hơn nữa. Tìm kiếm trên npm với keyword \"mcp-server\" để khám phá.\u003c\/p\u003e\n\n\u003ch2\u003eMCP vs Traditional API Integration\u003c\/h2\u003e\n\n\u003ch3\u003eSo sánh hai cách tiếp cận\u003c\/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eTiêu chí\u003c\/th\u003e\n\u003cth\u003eTraditional API\u003c\/th\u003e\n\u003cth\u003eMCP\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eReusability\u003c\/td\u003e\n\u003ctd\u003eMỗi app tự build\u003c\/td\u003e\n\u003ctd\u003eBuild once, dùng nhiều nơi\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAI model switching\u003c\/td\u003e\n\u003ctd\u003ePhải rewrite integration\u003c\/td\u003e\n\u003ctd\u003eServer tương thích mọi MCP client\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDiscovery\u003c\/td\u003e\n\u003ctd\u003eHardcoded trong app\u003c\/td\u003e\n\u003ctd\u003eDynamic — AI thấy tools qua schema\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSecurity\u003c\/td\u003e\n\u003ctd\u003eTùy app implement\u003c\/td\u003e\n\u003ctd\u003eChuẩn hóa qua protocol\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eComplexity\u003c\/td\u003e\n\u003ctd\u003eCao khi nhiều integrations\u003c\/td\u003e\n\u003ctd\u003eGiảm nhờ chuẩn hóa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003ch3\u003eKhi nào dùng MCP, khi nào dùng traditional API?\u003c\/h3\u003e\n\u003cp\u003eDùng MCP khi:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMuốn Claude trực tiếp access và thao tác với external services\u003c\/li\u003e\n\u003cli\u003eXây dựng agent workflows cần nhiều tools\u003c\/li\u003e\n\u003cli\u003eMuốn reuse integration cho nhiều AI clients\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eDùng traditional API call khi:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eỨng dụng của bạn gọi API và truyền kết quả vào Claude (không cần Claude chủ động gọi)\u003c\/li\u003e\n\u003cli\u003eIntegration đơn giản, một chiều\u003c\/li\u003e\n\u003cli\u003eKhông cần AI model chủ động quyết định khi nào gọi tool\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch2\u003eSecurity và Permissions\u003c\/h2\u003e\n\n\u003ch3\u003eNguyên tắc least privilege\u003c\/h3\u003e\n\u003cp\u003eKhi cấu hình MCP servers, chỉ cấp quyền tối thiểu cần thiết:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFilesystem server: chỉ expose những thư mục cần thiết, không expose \u003ccode\u003e\/\u003c\/code\u003e hay \u003ccode\u003e~\u003c\/code\u003e\n\u003c\/li\u003e\n\u003cli\u003eGitHub server: dùng fine-grained tokens với chỉ những repo permissions cần thiết\u003c\/li\u003e\n\u003cli\u003eDatabase servers: dùng read-only user nếu Claude chỉ cần đọc data\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUser consent\u003c\/h3\u003e\n\u003cp\u003eMCP được thiết kế để user luôn biết Claude đang làm gì. Trong Claude Desktop và Claude Code, bạn có thể thấy và approve các tool calls trước khi chúng được thực thi (tùy cấu hình).\u003c\/p\u003e\n\n\u003ch2\u003eDebugging và Troubleshooting MCP\u003c\/h2\u003e\n\n\u003ch3\u003eMCP server không hiện trong Claude Desktop\u003c\/h3\u003e\n\u003cp\u003eCác nguyên nhân phổ biến:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cstrong\u003eJSON syntax error:\u003c\/strong\u003e Dùng jsonlint.com để validate \u003ccode\u003eclaude_desktop_config.json\u003c\/code\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNode.js chưa install:\u003c\/strong\u003e Kiểm tra bằng \u003ccode\u003enode --version\u003c\/code\u003e trong terminal\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eChưa restart app:\u003c\/strong\u003e Quit hoàn toàn (không chỉ đóng cửa sổ) và mở lại\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePermission denied:\u003c\/strong\u003e npx cần quyền download package lần đầu\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch3\u003eXem MCP logs\u003c\/h3\u003e\n\u003cp\u003eClaude Desktop ghi logs của MCP servers tại:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003emacOS:\u003c\/strong\u003e \u003ccode\u003e~\/Library\/Logs\/Claude\/mcp-server-[name].log\u003c\/code\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWindows:\u003c\/strong\u003e \u003ccode\u003e%APPDATA%Claudelogsmcp-server-[name].log\u003c\/code\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eXem logs để debug lỗi kết nối hoặc error trong server code.\u003c\/p\u003e\n\n\u003ch2\u003eMCP Protocol — Cơ chế hoạt động kỹ thuật\u003c\/h2\u003e\n\n\u003ch3\u003eTransport layer\u003c\/h3\u003e\n\u003cp\u003eMCP hỗ trợ hai transport mechanisms:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003estdio (Standard I\/O):\u003c\/strong\u003e Dùng cho local servers — Claude Desktop fork server process và giao tiếp qua stdin\/stdout. Đây là transport mặc định và đơn giản nhất.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHTTP with SSE:\u003c\/strong\u003e Dùng cho remote servers — server chạy tại một URL, Claude connect qua HTTP. Phù hợp khi server cần chạy ở xa (cloud, team server).\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eMessage format\u003c\/h3\u003e\n\u003cp\u003eMCP dùng JSON-RPC 2.0 format cho tất cả communication:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e\/\/ Request từ client đến server\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools\/call\",\n  \"params\": {\n    \"name\": \"read_file\",\n    \"arguments\": { \"path\": \"\/home\/user\/notes.txt\" }\n  }\n}\n\n\/\/ Response từ server\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"result\": {\n    \"content\": [{ \"type\": \"text\", \"text\": \"Nội dung file...\" }]\n  }\n}\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eLifecycle của một MCP session\u003c\/h3\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cstrong\u003eInitialize:\u003c\/strong\u003e Client gửi capabilities của mình, server trả về capabilities của server\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDiscovery:\u003c\/strong\u003e Client hỏi list tools, resources, prompts server cung cấp\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eOperation:\u003c\/strong\u003e Client gọi tools, đọc resources theo nhu cầu\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eShutdown:\u003c\/strong\u003e Session kết thúc khi app close hoặc server disconnect\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch2\u003eMCP trong Claude Code — Workflow developer\u003c\/h2\u003e\n\n\u003ch3\u003eCLAUDE.md và MCP\u003c\/h3\u003e\n\u003cp\u003eTrong project có file \u003ccode\u003eCLAUDE.md\u003c\/code\u003e, bạn có thể định nghĩa MCP context guidelines:\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e# CLAUDE.md\n\n## MCP Tools Available\n- filesystem: có thể đọc\/ghi toàn bộ thư mục project\n- github: access repo anthropic\/myproject\n\n## MCP Usage Guidelines\n- Trước khi sửa file, đọc file đó trước để hiểu context\n- Khi tạo file mới, kiểm tra naming conventions từ file hiện có\n- Commit message format: \"type(scope): description\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eAgentic workflows với MCP\u003c\/h3\u003e\n\u003cp\u003eMCP là foundation cho các agentic tasks trong Claude Code. Ví dụ workflow \"Refactor module X\":\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eClaude đọc tất cả file trong module (filesystem tool)\u003c\/li\u003e\n\u003cli\u003ePhân tích dependencies (đọc import statements)\u003c\/li\u003e\n\u003cli\u003eThực hiện refactoring theo plan\u003c\/li\u003e\n\u003cli\u003eCheck GitHub issues để xem có liên quan không (GitHub tool)\u003c\/li\u003e\n\u003cli\u003eTạo summary commit message\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003cp\u003eTất cả các bước trên xảy ra tự động khi bạn chỉ cần ra lệnh một lần — MCP là cơ sở hạ tầng cho phép điều này.\u003c\/p\u003e\n\n\u003ch2\u003eRoadmap và tương lai\u003c\/h2\u003e\n\u003cp\u003eMCP được phát hành open source và đang được cộng đồng phát triển mạnh mẽ. Anthropic đã công bố MCP như là foundation cho agentic AI — tức là các AI agents có thể tự chủ thực hiện complex tasks bằng cách kết hợp nhiều MCP tools.\u003c\/p\u003e\n\n\u003cp\u003eNhiều IDE, code editors, và productivity tools đang thêm MCP support. Đây đang trở thành \"USB standard\" thực sự của AI tool integration.\u003c\/p\u003e\n\n\u003ch2\u003eXây dựng MCP Server của riêng bạn\u003c\/h2\u003e\n\n\u003ch3\u003eKhi nào nên build custom server\u003c\/h3\u003e\n\u003cp\u003eBạn nên build MCP server riêng khi:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eCần tích hợp với internal tools hoặc proprietary systems (CRM nội bộ, database riêng)\u003c\/li\u003e\n\u003cli\u003eMuốn expose business logic cụ thể của công ty dưới dạng Claude tools\u003c\/li\u003e\n\u003cli\u003eCommunity server chưa tồn tại cho service bạn dùng\u003c\/li\u003e\n\u003cli\u003eCần customization mà ready-made server không hỗ trợ\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eStack để build MCP Server\u003c\/h3\u003e\n\u003cp\u003eMCP SDK hiện có official support cho:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eTypeScript\/Node.js:\u003c\/strong\u003e \u003ccode\u003e@modelcontextprotocol\/sdk\u003c\/code\u003e — stable, đầy đủ examples\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePython:\u003c\/strong\u003e \u003ccode\u003emcp\u003c\/code\u003e package — cũng stable, tốt cho data science workflows\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eCommunity đã xây dựng thêm SDK cho Go, Rust, Java, và nhiều ngôn ngữ khác.\u003c\/p\u003e\n\n\u003ch3\u003ePattern cơ bản của một MCP Server\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\/\/ TypeScript — cấu trúc tối giản của một MCP Server\nimport { Server } from \"@modelcontextprotocol\/sdk\/server\/index.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol\/sdk\/server\/stdio.js\";\nimport { ListToolsRequestSchema, CallToolRequestSchema } from \"@modelcontextprotocol\/sdk\/types.js\";\n\nconst server = new Server(\n  { name: \"my-server\", version: \"1.0.0\" },\n  { capabilities: { tools: {} } }\n);\n\n\/\/ 1. Khai báo tools\nserver.setRequestHandler(ListToolsRequestSchema, async () =\u0026gt; ({\n  tools: [{ name: \"my_tool\", description: \"...\", inputSchema: { type: \"object\", properties: {} } }]\n}));\n\n\/\/ 2. Xử lý tool calls\nserver.setRequestHandler(CallToolRequestSchema, async (request) =\u0026gt; {\n  if (request.params.name === \"my_tool\") {\n    \/\/ Thực hiện logic\n    return { content: [{ type: \"text\", text: \"Kết quả\" }] };\n  }\n  throw new Error(\"Tool không tồn tại\");\n});\n\n\/\/ 3. Kết nối transport và start\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eMCP trong tương lai của Agentic AI\u003c\/h2\u003e\n\n\u003ch3\u003eMCP và multi-agent systems\u003c\/h3\u003e\n\u003cp\u003eMột trong những ứng dụng quan trọng nhất của MCP là trong multi-agent architectures. Khi nhiều AI agents cần collaborate — một agent orchestrate, một agent execute code, một agent search web — MCP cung cấp standard interface để chúng communicate và chia sẻ tools.\u003c\/p\u003e\n\n\u003cp\u003eThay vì hardcode \"agent A gọi agent B theo cách X\", MCP cho phép dynamic discovery: agent có thể hỏi \"tools nào đang khả dụng?\" và quyết định theo context.\u003c\/p\u003e\n\n\u003ch3\u003eLong-running tools\u003c\/h3\u003e\n\u003cp\u003eMCP đang phát triển support cho long-running tools — những operations mất nhiều phút thay vì giây. Điều này mở ra khả năng cho các workflows phức tạp như:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRunning CI\/CD pipeline và chờ kết quả\u003c\/li\u003e\n\u003cli\u003eExecuting large data processing jobs\u003c\/li\u003e\n\u003cli\u003eMulti-step automation với human-in-the-loop checkpoints\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch2\u003eKết luận\u003c\/h2\u003e\n\u003cp\u003eMCP giải quyết một vấn đề thực sự trong AI development: fragmentation của integrations. Thay vì mỗi team, mỗi app phải reinvent the wheel, MCP tạo ra ecosystem nơi servers được build một lần và work với mọi MCP-compatible client.\u003c\/p\u003e\n\n\u003cp\u003eNếu bạn đang dùng Claude Code hoặc Claude Desktop, hãy bắt đầu với filesystem MCP server — nó ngay lập tức giúp Claude làm việc với codebase local của bạn mà không cần copy-paste file. Đó là điểm khởi đầu tốt nhất để hiểu MCP trong thực tế.\u003c\/p\u003e","brand":"Minh Tuấn","offers":[{"title":"Default Title","offer_id":47721068396756,"sku":null,"price":0.0,"currency_code":"VND","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0821\/0264\/9044\/files\/mcp-model-context-protocol-gi_i-thich-d_n-gi_n.jpg?v=1774513832","url":"https:\/\/claude.vn\/products\/mcp-model-context-protocol-gi%e1%ba%a3i-thich-d%c6%a1n-gi%e1%ba%a3n","provider":"CLAUDE.VN","version":"1.0","type":"link"}