Cài đặt MCP Server đầu tiên: Kết nối Claude Code với Database và GitHub trong 15 phút
Hướng dẫn thực chiến kết nối Claude Code với GitHub, Database, Slack qua Model Context Protocol. Từ cài đặt đến chạy query đầu tiên trong 15 phút.
Định nghĩa
MCP (Model Context Protocol) là giao thức chuẩn hóa để Claude Code "nói chuyện" trực tiếp với thế giới bên ngoài — từ database PostgreSQL đến API GitHub hay thậm chí trình duyệt Chrome. Việc cài đặt MCP Server đầu tiên biến Claude từ một chatbot cục bộ thành AI agent có khả năng tương tác thực sự với toàn bộ hệ sinh thái công cụ của bạn, không cần qua tay người dùng.
Giải thích chi tiết
Tại sao cần MCP thay vì dùng lệnh thường?
Trước MCP, muốn Claude đọc dữ liệu từ PostgreSQL, bạn phải: viết script kết nối, copy kết quả, paste vào chat, rồi hỏi Claude phân tích. Quy trình này gọi là "human API" — bạn đóng vai trò cầu nối thủ công, copy-paste liên tục giữa AI và database.
MCP xóa bỏ bước trung gian: Claude tự động phát hiện cấu trúc bảng, viết query, và thực thi trực tiếp qua giao thức JSON-RPC. Bạn chỉ cần nói: "Cho tôi biết doanh thu tháng này", Claude lo phần còn lại — từ kết nối đến phân tích.
Kiến trúc 3 lớp của MCP
Khi cài đặt MCP Server, bạn đang thiết lập một trong ba thành phần sau:
- MCP Host: Chính là Claude Code (Desktop hoặc CLI) — nơi LLM chạy và đưa ra quyết định
- MCP Client: Lớp dịch bên trong Claude, chuyển đổi ý định của AI thành lệnh JSON-RPC
- MCP Server: Process độc lập bạn cài đặt, chuyên biệt cho từng dịch vụ (PostgreSQL, GitHub, Slack)
Server giao tiếp với Client qua STDIO (local) hoặc SSE (remote). Điểm then chốt: Server chỉ expose những capability cụ thể (read-only hoặc read-write) qua tools/list, và Claude phải xin phép người dùng trước mỗi lần gọi tool.
Chuẩn bị môi trường
Trước khi cài đặt server đầu tiên, bạn cần:
- Claude Code phiên bản gần đây (hỗ trợ MCP)
- Node.js (v18+) hoặc Python (v3.9+) tùy loại server bạn chọn
- Transport layer: Hầu hết server đầu tiên dùng STDIO — đơn giản và không cần cấu hình network
Các bước cài đặt cơ bản
Dù bạn chọn server nào (SQLite, GitHub, hay Filesystem), quy trình đều gồm 3 bước:
- Cài package:
npm install -g @modelcontextprotocol/server-sqlitehoặc tương đương - Thêm vào Claude: Dùng lệnh
claude mcp addhoặc sửa file~/.claude/settings.jsonđể đăng ký server - Approve capabilities: Lần đầu Claude gọi tool, hệ thống sẽ hỏi bạn có cho phép không — đây là "human-in-the-loop" security model của MCP
Ví dụ thực tế
Kết nối SQLite để query chi tiêu cá nhân
Bạn có file expenses.db chứa chi tiêu cá nhân từ Grab, Shopee, VietQR. Thay vì mở TablePlus hay viết script Python, bạn muốn hỏi Claude trực tiếp trong terminal:
# Cài MCP server cho SQLite
npm install -g @modelcontextprotocol/server-sqlite
# Thêm vào Claude Code
claude mcp add --transport stdio sqlite -- npx @modelcontextprotocol/server-sqlite ~/finance/expenses.dbGiờ trong Claude, bạn gõ: "Tôi đã chi bao nhiêu cho cafe và Grab tháng này?". Claude tự động:
- Gọi
list_tablesđể xem schema - Gọi
describe_tableđể hiểu cấu trúc bảngtransactions - Gọi
execute_queryvớiSELECT SUM(amount) FROM transactions WHERE category IN ('cafe', 'grab') AND date >= '2024-01-01' - Trả lời bạn bằng tiếng Việt: "Bạn đã chi 1.250.000đ cho cafe và 3.800.000đ cho Grab, tăng 15% so với tháng trước"
MCP GitHub để review PR từ terminal
Developer tại startup Việt Nam đang cần review PR của đồng nghiệp nhưng không muốn rời khỏi terminal để mở browser:
# Cài GitHub MCP server
npm install -g @modelcontextprotocol/server-github
# Thêm với GitHub token (lưu trong env)
claude mcp add --transport stdio github --env GITHUB_PERSONAL_ACCESS_TOKEN=$GH_TOKEN -- npx @modelcontextprotocol/server-githubTrong Claude: "Review PR #45 cho tôi, xem có lỗi logic không". Claude sẽ:
- Gọi
get_pull_requestđể đọc diff - Gọi
get_file_contentsđể kiểm tra context của những file bị sửa - Phân tích và đưa ra nhận xét: "Dòng 23 có thể gây race condition vì không dùng transaction. Nên thêm index vào bảng orders để tránh full table scan."
MCP Filesystem để tổ chức hóa đơn hàng loạt
Freelancer thiết kế ở Hà Nội có 500 file hóa đơn PDF và ảnh chụp từ các quán cà phê coworking space cần đổi tên theo ngày và di chuyển vào thư mục theo tháng. Thay vì viết script bash phức tạp:
claude mcp add --transport stdio filesystem -- npx @modelcontextprotocol/server-filesystem ~/Documents/InvoicesRồi hỏi Claude: "Tổ chức file trong ~/Documents/Invoices theo cấu trúc 2024/Thang-01/, đọc timestamp trong filename để phân loại". Claude sẽ dùng read_file để kiểm tra metadata, write_file để tạo thư mục, và move_file để di chuyển — tất cả qua giao thức MCP với quyền chỉ trong thư mục bạn chỉ định.
Ứng dụng
Developer muốn "code trong database"
- Use case: Query PostgreSQL/SQLite trực tiếp từ Claude Code mà không cần context-switch sang DataGrip hay psql
- Lợi ích: Claude nhìn thấy schema thực tế, không cần bạn mô tả cấu trúc bảng, giảm 90% thời gian viết query cho báo cáo nội bộ
Product Manager cần báo cáo nhanh
- Use case: Kết nối MCP với Slack hoặc Google Sheets để pull dữ liệu daily standup từ team ở TP.HCM và Hà Nội
- Lợi ích: Hỏi bằng tiếng Việt "Tình hình bug tuần này thế nào?", Claude tự động truy vấn Linear/Jira qua MCP rồi tóm tắt gửi channel Slack
Data Analyst làm việc với CSV lớn
- Use case: Dùng MCP Filesystem để Claude "nhìn" vào file CSV 100MB chứa dữ liệu bán hàng từ Shopee/Lazada, phân tích pattern, và suggest cleaning steps
- Lợi ích: Không cần load file vào context window (tốn token), chỉ gửi schema và sample data qua MCP
So sánh
| Tiêu chí | MCP (Model Context Protocol) | API truyền thống (REST/GraphQL) |
|---|---|---|
| Cách thức kết nối | Chuẩn hóa qua JSON-RPC, auto-discovery | Viết code integration riêng cho từng API |
| Context window | Tiết kiệm ~90% token (chỉ gửi kết quả query, không gửi toàn bộ docs) | Phải nhét API docs vào prompt để AI hiểu |
| Bảo mật | User approve từng tool call, sandboxed directory | Phụ thuộc vào API key permissions, rủi ro cao hơn |
| Thời gian setup | 5 phút (npm install + 1 lệnh add) | 30 phút - 2 giờ (đọc docs, viết wrapper) |
| Khả năng mở rộng | Một server chạy được với mọi MCP-compatible client (Claude, Cursor, Zed) | Lock-in vào từng platform |
Kết luận: MCP không thay thế API — nó là lớp "USB-C" giúp AI agent giao tiếp với API mà không cần bạn viết glue code. Nếu chỉ cần AI đọc dữ liệu từ 1-2 nguồn cố định, REST API truyền thống vẫn ổn. Nhưng khi muốn AI tự động khám phá và tương tác với nhiều tools động, MCP là tiêu chuẩn bắt buộc.
Bài viết liên quan
Cùng cụm MCP
- MCP là gì? Model Context Protocol giải thích đơn giản — Hiểu sâu về kiến trúc "USB-C cho AI" trước khi cài đặt
- MCP GitHub: Quản lý PR, issue, code review từ Claude — Ứng dụng đầu tiên nên thử sau khi cài xong server
- MCP Database: Truy vấn PostgreSQL/SQLite từ Claude — Hướng dẫn nâng cao cho data analysis với nhiều loại database
- MCP Slack: Đọc tin nhắn, post updates, tự động hoá — Kết nối với communication tools cho team làm việc remote
- Tự build MCP Server: Hướng dẫn cho developer — Khi bạn muốn viết server riêng cho internal API công ty
Đọc tiếp
- Subagents là gì? 6 built-in agents giải thích — Kết hợp MCP với subagents để phân tích data song song từ nhiều nguồn
- Hooks là gì? 25 events và 4 loại hook — Tự động trigger MCP calls khi có sự kiện (ví dụ: auto-post Slack khi commit code)
MCP là gì? Giao thức 'USB-C' giúp Claude Code kết nối mọi công cụ
MCP (Model Context Protocol) là 'USB-C cho AI' — kết nối Claude Code với GitHub, Database, Slack chỉ bằng vài dòng lệnh. Không cần code tích hợp phức tạp.
MCP GitHub: Claude tự động review code, quản lý PR và issue thay bạn
Biến Claude thành senior developer ảo — tự động review PR, đăng comment trực tiếp lên GitHub, quản lý issue và backlog ngay trong terminal. Tiết kiệm 80% thời gian.