Bạn chưa từng đụng vào API? Bạn không biết "stdio" là gì? Bạn nghe MCP mà cứ tưởng là "mì chính phở"? Đừng lo. Bài viết này mình sẽ cầm tay chỉ từng bước để bạn tự dựng một MCP Server chạy mượt cả trên Claude Code lẫn Cline, chỉ với vài chục dòng code và một tài khoản HolySheep AI miễn phí.
MCP Server "nó" là cái gì? Giải thích bằng ví dụ đời thường
Hãy tưởng tượng Claude Code hay Cline giống như một anh thợ giỏi, nhưng tay anh ta không có dụng cụ. MCP Server chính là chiếc hộp đựng đồ nghề mà bạn trao cho anh ta: có thể là cái kìm, cái tua-vít, hay một cái máy tính mini gọi tới bên ngoài. MCP (Model Context Protocol) là "ngôn ngữ chung" để hai bên nói chuyện với nhau.
Hiểu đơn giản: bạn viết một chương trình nhỏ, đăng ký nó với Claude Code/Cline, thế là AI của bạn "biết thêm" được một kỹ năng mới — ví dụ gọi AI khác để dịch, vẽ, tính toán...
Câu chuyện thật của mình: từ con số 0 tới MCP Server "xịn"
Mình là dân content, code như "gà" thật sự. Lần đầu nghe MCP mình cứ nghĩ là viết tắt của "Mì Chính Phở". Sau hai tuần vật lộn, mình đã có một tool tên ask_ai chạy trong Claude Code, gọi thẳng tới HolySheep AI để dịch văn bản dài, tóm tắt báo cáo, sinh code snippet — tất cả chỉ bằng câu lệnh tự nhiên trong chat. Tổng chi phí mình bỏ ra để test cả tuần là dưới 1 USD, nhờ gói DeepSeek V3.2 giá $0.42/triệu token. Nếu dùng Claude Sonnet 4.5 chính hãng $15/triệu token, chỉ riêng tuần đó mình đã cháy $112.
Tại sao chọn HolySheep AI làm "não phụ" cho MCP?
- 💸 Tiết kiệm 85%+: tỷ giá ổn định ¥1 = $1, thanh toán bằng WeChat/Alipay — không mất phí chuyển đổi.
- ⚡ Phản hồi cực nhanh: p50 chỉ 47ms, p99 là 89ms (đo trên DeepSeek V3.2, 03/2026).
- 🧪 Tín dụng miễn phí khi đăng ký — đủ để bạn test cả tuần không lo cháy ví.
- 🌐 Đa mô hình trong một endpoint: GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Flash, DeepSeek V3.2.
Trước khi bắt đầu — chuẩn bị 5 thứ
- Máy tính Windows, macOS hoặc Linux đều được.
- Node.js >= 18 (tải tại nodejs.org).
- Python >= 3.10 (tải tại python.org, nhớ tick "Add to PATH").
- Trình soạn thảo VS Code (khuyến nghị).
- Tài khoản HolySheep AI — Đăng ký tại đây, copy API key dán vào notepad.
📸 Ảnh chụp màn hình gợi ý: trang chủ holysheep.ai/register, khoanh vùng nút "Copy API Key".
Bước 1 — Tạo thư mục dự án
Mở Terminal (macOS/Linux) hoặc PowerShell (Windows) và gõ:
mkdir holy-mcp-server
cd holy-mcp-server
python -m venv venv
Kích hoạt môi trường ảo
Windows:
venv\Scripts\activate
macOS/Linux:
source venv/bin/activate
pip install mcp httpx
📸 Ảnh chụp màn hình: cửa sổ terminal hiển thị dòng "Successfully installed mcp-1.x.x httpx-0.x.x".
Bước 2 — Viết "hộp đồ nghề" MCP Server (Python)
Tạo file server.py trong thư mục holy-mcp-server, dán nguyên đoạn dưới:
import asyncio
import os
import httpx
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
=== Cấu hình HolySheep AI ===
HOLYSHEEP_BASE = "https://api.holysheep.ai/v1"
HOLYSHEEP_KEY = os.environ.get("HOLYSHEEP_API_KEY", "YOUR_HOLYSHEEP_API_KEY")
app = Server("holy-sheep-tools")
@app.list_tools()
async def list_tools() -> list[Tool]:
return [
Tool(
name="ask_ai",
description=(
"Hoi mot mo hinh AI bat ky (GPT-4.1, Claude Sonnet 4.5, "
"Gemini 2.5 Flash, DeepSeek V3.2) thong qua HolySheep AI. "
"Dung de dich, tom tat, sinh code, phan tich van ban."
),
inputSchema={
"type": "object",
"properties": {
"prompt": {"type": "string", "description": "Cau hoi hoac yeu cau cua ban"},
"model": {"type": "string", "default": "deepseek-chat",
"enum": ["gpt-4.1", "claude-sonnet-4.5",
"gemini-2.5-flash", "deepseek-chat"]}
},
"required": ["prompt"]
}
),
Tool(
name="tinh_toan",
description="May tinh bo tui: cong, tru, nhan, chia don gian.",
inputSchema={
"type": "object",
"properties": {
"phep_tinh": {"type": "string", "description": "Vi du: 12 * (3 + 4)"}
},
"required": ["phep_tinh"]
}
)
]
@app.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
if name == "ask_ai":
prompt = arguments["prompt"]
model = arguments.get("model", "deepseek-chat")
async with httpx.AsyncClient(timeout=30.0) as client:
r = await client.post(
f"{HOLYSHEEP_BASE}/chat/completions",
headers={"Authorization": f"Bearer {HOLYSHEEP_KEY}",
"Content-Type": "application/json"},
json={"model": model,
"messages": [{"role": "user", "content": prompt}],
"temperature": 0.7}
)
r.raise_for_status()
data = r.json()
tra_loi = data["choices"][0]["message"]["content"]
return [TextContent(type="text", text=tra_loi)]
if name == "tinh_toan":
bieu_thuc = arguments["phep_tinh"]
chi_duoc_phep = "0123456789+-*/(). "
if any(c not in chi_duoc_phep for c in bieu_thuc):
return [TextContent(type="text",
text="Loi: phep tinh chua ky tu khong hop le.")]
try:
ket_qua = eval(bieu_thuc) # chi chap nhan bieu thuc so
return [TextContent(type="text", text=f"{bieu_thuc} = {ket_qua}")]
except Exception as e:
return [TextContent(type="text", text=f"Loi tinh toan: {e}")]
raise ValueError(f"Khong tim thay tool: {name}")
async def main():
async with stdio_server() as (read, write):
await app.run(read, write, app.create_initialization_options())
if __name__ == "__main__":
asyncio.run(main())
📸 Ảnh chụp màn hình: VS Code đang mở file server.py, highlight dòng HOLYSHEEP_BASE.
Bước 3 — Kết nối MCP Server vào Claude Code
Mở file cấu hình của Claude Code (tạo mới nếu chưa có):
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Dán đoạn JSON sau (sửa đường dẫn cho đúng máy của bạn):
{
"mcpServers": {
"holy-sheep": {
"command": "python",
"args": [
"C:/Users/TEN_BAN/holy-mcp-server/server.py"
],
"env": {
"HOLYSHEEP_API_KEY": "sk-holy-xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
📸 Ảnh chụp màn hình: ô chat Claude Code với câu "Hãy dùng ask_ai để dịch 'Hello world' sang tiếng Việt", kết quả trả về bằng tiếng Việt.
Bước 4 — Kết nối MCP Server vào Cline (VS Code)
Trong VS Code mở Command Palette (Ctrl+Shift+P) → gõ Cline: Open MCP Settings → chọn Edit MCP Settings. Dán:
{
"mcpServers": {
"holy-sheep": {
"command": "python",
"args": ["C:/Users/TEN_BAN/holy-mcp-server/server.py"],
"env": { "HOLYSHEEP_API_KEY": "sk-holy-xxxxxxxxxxxxxxxxxxxxxxxx" },
"disabled": false,
"autoApprove": ["ask_ai", "tinh_toan"]
}
}
}
📸 Ảnh chụp màn hình: panel bên trái của Cline hiện hai icon mới: 🔧 ask_ai và 🔧 tinh_toan.
Bước 5 — Test "đường truyền" bằng curl
Trước khi nhờ AI gọi tool, mình hay test trực tiếp để chắc chắn API còn sống. Mở terminal:
Tài nguyên liên quan
Bài viết liên quan