Hiện tại, hệ sinh thái MCP (Model Context Protocol) vẫn còn rất mới, nên các công cụ (tools) hỗ trợ chủ yếu xoay quanh SDK chính chủ và một vài wrapper (thư viện bao đóng) của cộng đồng để giảm bớt code thừa (boilerplate).
Dưới đây là review chi tiết các công cụ thiết thực nhất để Dev tự build MCP Server hiện nay:
1. Core SDKs (Chính chủ Anthropic) - Nền tảng bắt buộc
Đây không hẳn là "tool" kéo thả, mà là bộ khung chuẩn nhất. Nếu bạn muốn build server ổn định, ít lỗi vặt và full tính năng, hãy dùng SDK gốc.
- TypeScript SDK (
@modelcontextprotocol/sdk): - Ưu điểm: Hỗ trợ mạnh mẽ Type Safety (Zod schemas), chạy mượt trên Node.js. Đây là SDK được support tốt nhất hiện tại vì MCP hướng nhiều về ecosystem JS/TS.
- Nhược điểm: Cấu hình ban đầu (setup transport Stdio/SSE) hơi dài dòng.
- Phù hợp cho: Web Developers, người muốn tích hợp sâu vào hệ thống backend Node.js có sẵn.
- Python SDK (
mcp): - Ưu điểm: Cú pháp đơn giản hơn TS một chút. Rất mạnh nếu bạn làm MCP liên quan đến xử lý dữ liệu, AI pipelines (LangChain, LlamaIndex) hoặc Automation.
- Nhược điểm: Việc xử lý bất đồng bộ (asyncio) có thể gây lúng túng cho người mới bắt đầu với Python.
- Phù hợp cho: AI Engineers, Data Scientists, viết script automation.
2. MCP Inspector - Tool Debugger "Cứu cánh"
Khi làm MCP, bạn không thể dùng console.log hay print theo cách thông thường vì giao thức MCP sử dụng stdio (chuẩn đầu vào/ra) để giao tiếp. Nếu in lung tung ra màn hình, kết nối sẽ bị đứt (break protocol).
- Chức năng: Đây là một giao diện Web UI giúp bạn giả lập Client (như Claude) kết nối vào Server của bạn.
- Tại sao cần:
- Xem được chính xác JSON mà Client gửi đi và Server trả về.
- Test tool/resource mà không cần mở App Claude.
- Bắt lỗi (Catch errors) xem server sập ở đâu.
- Cách dùng:
npx @modelcontextprotocol/inspector <câu lệnh chạy server của bạn>
Đánh giá: ⭐⭐⭐⭐⭐ (Bắt buộc phải dùng nếu không muốn code trong bóng tối).
3. FastMCP (Python Wrapper) - Code tốc độ cao
Nếu bạn thấy việc viết class, define schema trong Python SDK gốc quá rườm rà, FastMCP (một thư viện cộng đồng nổi bật) là lựa chọn thay thế tuyệt vời. Nó mang phong cách của FastAPI.
- Cơ chế: Sử dụng Decorators (
@mcp.tool) để biến một hàm Python bình thường thành MCP Tool. Nó tự động đọc Type Hint của Python để tạo ra JSON Schema cho Claude. - Ví dụ so sánh:
- SDK gốc: Phải khai báo Tool name, description, input schema bằng JSON thủ công.
- FastMCP:
- Python
from fastmcp import FastMCP
mcp = FastMCP("MyServer")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Cộng hai số"""
return a + b
- Đánh giá: Rất thích hợp để làm các tool nhỏ, tiện ích nhanh (utility scripts). Tuy nhiên, cẩn thận khi dùng cho các dự án quá lớn cần tùy chỉnh sâu vào giao thức.
4. Smithery - Registry & Deployment
Smithery đang định vị mình giống như "Docker Hub" hoặc "NPM" cho thế giới MCP.
- Chức năng:
- Tìm kiếm: Xem người khác đã build những server gì.
- CLI Tool: Giúp cài đặt MCP server của người khác vào Claude Desktop chỉ bằng 1 câu lệnh (thay vì phải sửa file config JSON thủ công dễ sai sót).
npx -y @smithery/cli install <tên-server>- Dành cho Dev: Bạn có thể publish server của mình lên đây để cộng đồng dùng thử và feedback.
5. Create MCP Server (Scaffolding)
Tương tự như create-react-app hay create-next-app.
- Lệnh:
npm create mcp-server@latest - Tác dụng: Tự động tạo cấu trúc thư mục chuẩn, cài sẵn các dependency cần thiết, file cấu hình TypeScript/ESLint. Giúp bạn bỏ qua bước setup môi trường để nhảy vào code logic ngay.
Tổng kết & Lời khuyên cho bài chia sẻ
- Team "Ăn chắc mặc bền": Dùng Official TypeScript SDK + MCP Inspector. Đây là combo chuẩn chỉ nhất để học và hiểu sâu.
- Team "Mì ăn liền" (Python): Dùng FastMCP. Code cực nhanh, demo ý tưởng trong 5 phút.
- Team "Lười config": Dùng Smithery CLI để cài tool có sẵn tham khảo trước khi tự viết.