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?

Trước khi bắt đầu — chuẩn bị 5 thứ

  1. Máy tính Windows, macOS hoặc Linux đều được.
  2. Node.js >= 18 (tải tại nodejs.org).
  3. Python >= 3.10 (tải tại python.org, nhớ tick "Add to PATH").
  4. Trình soạn thảo VS Code (khuyến nghị).
  5. 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ó):

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