
Đây là hai khái niệm hay bị nhầm lẫn nhưng thực ra ở , và chứ không thay thế.
概览
Đây là hai khái niệm hay bị nhầm lẫn nhưng thực ra ở , và chứ không thay thế. là một khả năng của model (capability). Model được huấn luyện để khi bạn đưa cho nó danh sách các "công cụ" (kèm schema mô tả tham số), nó có thể tự quyết định gọi công cụ nào và sinh ra JSON tham số phù hợp. Bản thân model function — nó chỉ nói "hãy gọi get_weather(city='Hanoi')". App mới là nơi chạy tool. là một giao thức chuẩn (protocol) — giống như USB-C hay HTTP cho thế giới AI. Nó định nghĩa cách một (như Claude Code, Claude Desktop) kết nối tới các để khám phá và sử dụng tools, resources, prompts một cách thống nhất. Điểm quan trọng nhất: . Chúng không loại trừ nhau. - : app đơn giản, tool gắn chặt với 1 ứng dụng, không cần chia sẻ. - : muốn tool/tích hợp dùng lại được trên nhiều AI client, muốn tách biệt logic tool khỏi app, hoặc xây hệ sinh thái tích hợp (DB, file, API nội bộ...). Cùng một tool get_weather, dưới đây là hai cách triển khai để thấy rõ sự khác biệt. Tool được .
README
以下为原文 README 节选,完整内容请查看原文。
Phân biệt MCP và Function Calling
Đây là hai khái niệm hay bị nhầm lẫn nhưng thực ra ở hai tầng khác nhau, và bổ sung cho nhau chứ không thay thế.
Cấu trúc repo
day26-mcp/
├── README.md ← Bạn đang đọc file này
├── requirements.txt ← pip install -r requirements.txt
│
├── 01-function-calling/ ← Bước 1: Function Calling thuần (Gemini SDK)
│ ├── README.md
│ └── weather_function_calling.py
│
├── 02-mcp-basics/ ← Bước 2: MCP server + client (không cần API key)
│ ├── README.md
│ ├── weather_server.py
│ └── weather_client.py
│
└── 03-production/ ← Bước 3: Auth, Tool Registry, Versioning
├── README.md
├── auth_server.py
├── auth_client.py
├── registry.json
├── registry_client.py
└── versioned_server.py
Quick start
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# MCP demo (không cần API key)
cd 02-mcp-basics && python weather_client.py
# Function Calling (cần Gemini API key)
export GEMINI_API_KEY=...
cd 01-function-calling && python weather_function_calling.py
# Production — Auth (2 terminal)
cd 03-production
python auth_server.py # terminal 1
python auth_client.py # terminal 2
# Production — Tool Registry
cd 03-production && python registry_client.py
Định nghĩa ngắn gọn
Function Calling là một khả năng của model (capability). Model được huấn luyện để khi bạn đưa cho nó danh sách các “công cụ” (kèm schema mô tả tham số), nó có thể tự quyết định gọi công cụ nào và sinh ra JSON tham số phù hợp. Bản thân model không chạy function — nó chỉ nói “hãy gọi get_weather(city='Hanoi')”. App mới là nơi chạy tool.
MCP (Model Context Protocol) là một giao thức chuẩn (protocol) — giống như USB-C hay HTTP cho thế giới AI. Nó định nghĩa cách một MCP Client (như Claude Code, Claude Desktop) kết nối tới các MCP Server để khám phá và sử dụng tools, resources, prompts một cách thống nhất.
So sánh trực tiếp
| Tiêu chí | Function Calling | Model Context Protocol (MCP) |
|---|---|---|
| Bản chất | Tính năng của mô hình (Model capability) | Giao thức giao tiếp client–server |
| Ai định nghĩa tool? | Bạn hard-code trong từng app | Server tự công bố (self-describe) tool |
| Tái sử dụng | Phải viết lại cho mỗi app/model | Viết 1 lần, mọi MCP client dùng được |
| Thực thi | App của bạn tự chạy | MCP Server chạy, client điều phối |
| Tính chuẩn hóa | Mỗi nhà cung cấp 1 kiểu (OpenAI, Anthropic khác nhau) | Một chuẩn chung do Anthropic đề xuất |
| Hệ sinh thái | Khó chia sẻ dạng module đóng gói sẵn | Dễ dàng chia sẻ và tải về các “MCP Servers” mã nguồn mở |
Quan hệ giữa chúng
Điểm quan trọng nhất: MCP dùng Function Calling bên dưới. Chúng không loại trừ nhau.
User hỏi
│
▼
LLM (dùng Function Calling để quyết định gọi tool nào)
│
▼
MCP Client ──[giao thức MCP]──► MCP Server (thực thi tool thật)
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →