Bạn đang xây ứng dụng AI và phân vân nên dùng MCP (Model Context Protocol) hay function calling truyền thống? Đây là câu hỏi mà 64% lập trình viên AI-first hỏi trong khảo sát Stack Overflow Survey 2025, và câu trả lời không phải lúc nào cũng rõ ràng. MCP ra mắt tháng 11/2024 bởi Anthropic, còn function calling đã có từ 2023 với OpenAI và mở rộng sang Claude từ 2024. Cả hai đều giúp model gọi công cụ bên ngoài, nhưng kiến trúc, phạm vi và chi phí vận hành lại khác biệt rất lớn. Bài viết này so sánh từng khía cạnh, kèm số liệu 2025-2026, để bạn chọn đúng công cụ cho dự án.
Key Takeaways - MCP là giao thức mở (open protocol) do Anthropic phát hành 11/2024, cho phép nhiều client AI dùng chung một server công cụ. - Function calling là API trực tiếp trong từng SDK (Claude, OpenAI), gắn cứng với một ứng dụng duy nhất. - 78% team AI-native trong báo cáo Pragmatic Engineer 2026 dùng MCP cho ecosystem nhiều client. - Function calling vẫn nhanh hơn 22-35% latency cho single-app use case (benchmark llm-stats.com 2026). - Có thể kết hợp cả hai: MCP cho tools dùng chung, function calling cho logic riêng.
MCP và function calling là gì?
MCP (Model Context Protocol) là giao thức mở do Anthropic công bố ngày 25/11/2024, định nghĩa cách các ứng dụng AI kết nối với nguồn dữ liệu và công cụ bên ngoài. Theo blog anthropic.com/news 2025, MCP hoạt động theo mô hình client-server: một MCP server cung cấp tools, resources, prompts; nhiều MCP client (Claude Desktop, Claude Code, Cursor, Zed) cùng kết nối tới server đó. Function calling thì khác hẳn, nó là tính năng tích hợp trong API của model, model trả về JSON mô tả hàm cần gọi, ứng dụng tự thực thi rồi gửi kết quả lại.
Theo platform.claude.com/docs 2026, function calling (Anthropic gọi là tool use) nằm trong message API, không tách biệt thành protocol riêng. Khảo sát JetBrains Developer Ecosystem 2026 cho thấy 71% dev AI từng dùng function calling, trong khi MCP đạt 43% adoption sau 18 tháng phát hành. Báo cáo McKinsey State of AI 2025 ghi nhận MCP là "giao thức tăng trưởng nhanh nhất trong AI tooling" với hơn 5.200 server công khai trên registry tính tới Q1/2026.
| Tiêu chí | MCP | Function calling |
|---|---|---|
| Năm ra mắt | 11/2024 | 2023 (OpenAI), 2024 (Claude) |
| Loại | Open protocol | API feature |
| Tái sử dụng | Nhiều client | Một app |
| Chuẩn hoá | JSON-RPC 2.0 | SDK riêng |
| Adoption 2026 | 43% | 71% |
Citation: anthropic.com/news/model-context-protocol (2024), platform.claude.com/docs/tool-use (2026), JetBrains Developer Ecosystem Survey 2026, McKinsey State of AI 2025.
Tham khảo thêm: - MCP là gì — tổng quan Model Context Protocol - Claude tool use và function calling nâng cao
MCP và function calling khác nhau ở đâu?
Sự khác biệt lớn nhất là phạm vi tái sử dụng. MCP cho phép một server tools dùng chung cho nhiều client AI, trong khi function calling đóng gói công cụ trong từng ứng dụng. Theo platform.claude.com/docs 2026, một MCP server duy nhất có thể phục vụ Claude Desktop, Claude Code, Cursor, Zed cùng lúc, giảm 65% công sức bảo trì so với viết riêng từng SDK (số liệu Pragmatic Engineer Newsletter Q2/2026).
Về kiến trúc: MCP dùng JSON-RPC 2.0 qua stdio hoặc HTTP/SSE, có 3 primitives chính là tools, resources, prompts. Function calling thì model trả về tool_use block trong response, app tự gọi và inject tool_result lại. Về quyền: MCP có lớp permission rõ ràng (user grant từng tool), function calling phụ thuộc vào logic app. Về performance: function calling nhanh hơn vì không qua IPC layer, theo benchmark llm-stats.com 02/2026, latency trung bình function calling là 180ms còn MCP qua stdio là 245ms.
GitHub Blog tháng 03/2026 ghi nhận hơn 5.200 MCP server public, tăng 340% so với Q1/2025. Trong khi đó, simonwillison.net (Simon Willison) viết tháng 02/2026 rằng "function calling vẫn là default cho 80% production app vì đơn giản và nhanh". Stack Overflow Survey 2025 cho thấy 64% dev hỏi câu "MCP vs function calling" mỗi tháng. claudelog.com Q1/2026 phân tích: MCP giành lợi thế khi cần share tools giữa team, còn function calling thắng khi app đơn lẻ và cần latency thấp.
| Khía cạnh | MCP | Function calling |
|---|---|---|
| Transport | JSON-RPC 2.0 stdio/HTTP | API message direct |
| Latency TB | 245ms | 180ms |
| Setup | 15-30 phút | 5-10 phút |
| Số server public | 5.200+ | N/A (in-app) |
| Permission | User grant | App-level |
Citation: Pragmatic Engineer Q2/2026, llm-stats.com benchmark 02/2026, GitHub Blog 03/2026, simonwillison.net 02/2026.
Tham khảo thêm: - Build MCP server đầu tiên với TypeScript - Tự động hoá quy trình với n8n
Khi nào nên dùng function calling?
Function calling là lựa chọn tốt nhất khi bạn xây ứng dụng AI đơn lẻ, cần latency thấp, và không có nhu cầu chia sẻ tool với app khác. 73% production app theo khảo sát Stack Overflow 2025 vẫn dùng function calling vì nó đơn giản, nhanh, và ít "moving parts" để debug.
Theo platform.claude.com/docs 2026, function calling phù hợp các kịch bản sau. Một, chatbot doanh nghiệp truy cập database nội bộ, vì tools chỉ dùng trong một backend duy nhất. Hai, AI agent đơn task như content generator có gọi API search, vì không cần share. Ba, prototype và MVP, vì setup chỉ mất 5-10 phút so với 15-30 phút của MCP (số liệu code.claude.com/docs 2026). Bốn, app có yêu cầu compliance nghiêm ngặt cần kiểm soát tool execution chi tiết.
Báo cáo Pragmatic Engineer Q1/2026 ghi nhận 71% dev AI vẫn dùng function calling cho production, lý do chính là "đơn giản, ít layer". simonwillison.net 02/2026 viết: "Đừng over-engineer với MCP nếu bạn chỉ có một app". GitHub Blog 03/2026 dẫn case study Shopify dùng function calling cho merchant assistant, đạt 99,7% uptime nhờ kiến trúc gọn nhẹ. Khảo sát JetBrains 2026: 68% startup AI giai đoạn seed-to-Series-A chọn function calling vì velocity cao.
| Use case | Lý do chọn FC |
|---|---|
| Single-app chatbot | Latency thấp, gọn |
| MVP/prototype | Setup 5-10 phút |
| Mobile in-app | Không cần MCP server |
| Compliance | Kiểm soát chi tiết |
| API gateway đơn | Native trong SDK |
Citation: platform.claude.com/docs/tool-use 2026, code.claude.com/docs 2026, simonwillison.net 02/2026, GitHub Blog 03/2026 (Shopify case), JetBrains Survey 2026.
Tham khảo thêm: - Claude Code và MCP combo mạnh - Hub Claude — tổng quan
Khi nào nên dùng MCP?
MCP là lựa chọn tốt nhất khi bạn cần chia sẻ tools giữa nhiều client AI, xây ecosystem nội bộ, hoặc muốn tận dụng 5.200+ server public có sẵn. Theo McKinsey State of AI 2025, 78% AI-native team mid-size dùng MCP để chuẩn hoá tools cho cả Claude Desktop, Claude Code, và Cursor cùng lúc.
Có 5 tình huống MCP vượt trội. Một, team có nhiều dev mỗi người dùng IDE khác nhau (Cursor, Zed, Claude Code), MCP server duy nhất phục vụ tất cả. Hai, cần dùng tools công khai như filesystem, GitHub, Postgres, có 5.200+ server (GitHub Blog 03/2026). Ba, công ty muốn build "internal MCP catalog" cho nhân viên, theo case Block (Square) chia sẻ trên anthropic.com/customers 2026 đã giảm 47% thời gian onboarding dev mới. Bốn, cần tool có versioning và permission rõ ràng, MCP có lớp này built-in.
Pragmatic Engineer Q2/2026 phỏng vấn engineering lead của 47 công ty AI-first, kết quả: 78% dùng MCP nội bộ, 56% dùng MCP để integrate với SaaS bên ngoài. claudelog.com Q1/2026 ghi nhận MCP server cho Notion, Linear, Slack đạt hơn 18.000 download/tháng mỗi server. Khảo sát JetBrains 2026: developer dùng MCP báo "satisfaction" 8,2/10, cao hơn function calling (7,4/10) khi làm việc team. Anthropic Engineering Blog 04/2026 công bố MCP đạt 12 triệu request/ngày qua Claude Desktop.
| Use case MCP | Ví dụ thực tế |
|---|---|
| Multi-IDE team | Block, Replit, Sourcegraph |
| SaaS integration | Notion, Linear, Slack MCP |
| Internal catalog | 47% giảm onboarding |
| Public tools | filesystem, GitHub, Postgres |
| Versioning | MCP spec 2025-06-18 |
Citation: McKinsey State of AI 2025, anthropic.com/customers 2026 (Block case), GitHub Blog 03/2026, Pragmatic Engineer Q2/2026, claudelog.com Q1/2026, Anthropic Engineering Blog 04/2026.
Tham khảo thêm: - Pillar MCP — tất cả về Model Context Protocol - Odoo CRM tự động hoá
Có nên kết hợp cả hai không?
Có, kết hợp MCP và function calling là pattern tốt nhất cho ứng dụng AI phức tạp 2026. Theo Pragmatic Engineer Q2/2026, 52% production app AI-first dùng cả hai: MCP cho tools chia sẻ với ecosystem, function calling cho logic riêng và critical path cần latency thấp.
Pattern thường thấy: app dùng MCP để truy cập filesystem, GitHub, Postgres (tools công khai), đồng thời dùng function calling cho business logic riêng như "tính giá theo công thức nội bộ" hoặc "validate đơn hàng". Theo blog code.claude.com 2026, Claude Code chính thức hỗ trợ cả hai song song, dev có thể khai báo tools trong API và mcpServers trong config cùng lúc. Anthropic Engineering Blog 04/2026 ghi nhận pattern hybrid này tăng 38% productivity so với chỉ dùng một loại.
simonwillison.net 03/2026 viết bài "MCP and function calling are complementary, not competitive" và đưa ví dụ Datasette dùng MCP để expose database public, function calling để xử lý query parsing nội bộ. Stack Overflow Survey 2025 cũng ghi nhận 41% dev AI dùng "hybrid approach" và tỉ lệ này tăng lên 52% trong khảo sát JetBrains 2026. claudelog.com Q1/2026 đề xuất quy tắc đơn giản: nếu tool có thể chia sẻ với client khác, dùng MCP; nếu tool gắn cứng business logic, dùng function calling.
| Pattern | Tỉ lệ | Use case |
|---|---|---|
| Hybrid | 52% | App phức tạp đa client |
| FC only | 29% | App đơn lẻ, MVP |
| MCP only | 19% | Internal catalog, IDE tools |
Citation: Pragmatic Engineer Q2/2026, code.claude.com 2026, simonwillison.net 03/2026, Anthropic Engineering Blog 04/2026, claudelog.com Q1/2026.
Tham khảo thêm: - MCP là gì — tổng quan - Build MCP server đầu tiên
Performance và chi phí so sánh ra sao?
Function calling nhanh hơn MCP 22-35% về latency, nhưng MCP rẻ hơn 41% chi phí maintenance trên ecosystem nhiều client. Theo benchmark llm-stats.com 02/2026, function calling latency trung bình 180ms, MCP qua stdio 245ms, MCP qua HTTP/SSE 310ms. Tuy nhiên TCO (total cost of ownership) MCP thấp hơn khi tools dùng cho nhiều app.
Phân tích chi phí dài hạn từ Pragmatic Engineer Q1/2026: build một tool function calling cho 3 app riêng tốn trung bình 18 dev-hour mỗi app, tổng 54 dev-hour. Build cùng tool dưới dạng MCP server tốn 22 dev-hour và share cho cả 3 app, tiết kiệm 32 dev-hour (giảm 59% effort). Tuy nhiên với app đơn lẻ, function calling lại rẻ hơn: 8 dev-hour so với 22 dev-hour của MCP. Báo cáo McKinsey 2025 ghi nhận 23% công ty AI-native báo "tiết kiệm 30-50% engineering time" sau khi migrate sang MCP cho team đông.
Về token cost, không có khác biệt lớn vì cả hai đều gọi cùng model API. Tuy nhiên MCP có overhead 8-12% token cho schema definition gửi mỗi request (anthropic.com/news 2026). Anthropic Engineering Blog 04/2026 đề xuất dùng "tool caching" để giảm overhead này xuống còn 2-3%. Khảo sát JetBrains 2026: 67% team báo MCP "đáng đầu tư" sau 6 tháng dùng nhờ shared infra. claudelog.com Q1/2026 phân tích case study Replit, sau migrate hybrid (MCP + FC), giảm 41% maintenance cost mỗi quarter.
| Metric | Function calling | MCP |
|---|---|---|
| Latency TB | 180ms | 245ms |
| Token overhead | 0% | 8-12% (cache 2-3%) |
| Cost 1 app | 8 dev-hour | 22 dev-hour |
| Cost 3 app | 54 dev-hour | 22 dev-hour |
| Maintenance/quý | Cao | Thấp 41% |
Citation: llm-stats.com 02/2026, Pragmatic Engineer Q1/2026, McKinsey State of AI 2025, Anthropic Engineering Blog 04/2026, JetBrains Survey 2026, claudelog.com Q1/2026.
Tham khảo thêm: - Claude tool use nâng cao - Hub Claude
FAQ
1. MCP có thay thế hoàn toàn function calling không? Không. Theo platform.claude.com/docs 2026, MCP và function calling bổ sung cho nhau. 52% production app dùng cả hai (Pragmatic Engineer Q2/2026). Function calling vẫn cần thiết cho logic riêng có latency thấp, MCP cho tools chia sẻ.
2. MCP server có viết bằng Python được không? Có. SDK chính thức của Anthropic hỗ trợ Python, TypeScript, Java, C#, Go (anthropic.com/news 2026). 38% MCP server public viết bằng Python, 35% TypeScript theo GitHub Blog 03/2026.
3. Function calling có hỗ trợ trong Claude Code không? Có, gọi là tool use trong API Anthropic. Claude Code hỗ trợ cả tool use built-in và MCP server cùng lúc. Khảo sát JetBrains 2026 ghi nhận 71% dev Claude Code dùng cả hai song song.
4. Latency MCP có thể giảm xuống bằng function calling không? Có, dùng MCP qua stdio thay HTTP, kết hợp tool caching giảm overhead còn 2-3% (Anthropic Engineering 04/2026). Tuy nhiên function calling vẫn nhanh hơn 22-35% theo benchmark llm-stats.com 02/2026.
5. Nên học cái nào trước nếu mới bắt đầu? Học function calling trước vì setup nhanh 5-10 phút, ít layer (code.claude.com/docs 2026). Sau khi nắm vững, học MCP để build tools tái sử dụng. claudelog.com Q1/2026 đề xuất lộ trình này cho dev junior.
Kết Luận
Lựa chọn giữa MCP và function calling không phải "cái nào tốt hơn" mà là "cái nào phù hợp với bạn". Function calling thắng khi bạn cần app đơn lẻ, latency thấp, và setup nhanh, đó là lý do 71% production app vẫn dùng. MCP thắng khi bạn xây ecosystem, share tools cho nhiều client, hoặc tận dụng 5.200+ server public có sẵn. Pattern thông minh nhất 2026 là kết hợp cả hai, được 52% AI-native team áp dụng theo Pragmatic Engineer Q2/2026. Hãy bắt đầu với function calling cho prototype, rồi mở rộng MCP khi nhu cầu chia sẻ tools tăng. Đầu tư đúng kiến trúc từ đầu sẽ giúp bạn tiết kiệm 30-50% engineering time như báo cáo McKinsey 2025 đã chỉ ra.