Mình đang làm dự án, muốn hỏi Claude: “database schema hiện tại trông như thế nào?” — và nhận về câu trả lời kiểu “Tôi không có quyền truy cập vào database của bạn.” Quen thuộc chưa?
Đó là điểm yếu cố hữu của AI assistant: model rất giỏi, nhưng bị cô lập hoàn toàn khỏi môi trường làm việc thực tế của bạn. MCP (Model Context Protocol) sinh ra để giải quyết đúng chỗ đau này — cho phép AI kết nối trực tiếp với file system, database, GitHub, hay bất kỳ tool nào bạn đang dùng.
Bài này tổng hợp 7 MCP server phổ biến nhất, kèm hướng dẫn cài đặt cụ thể để dùng ngay. Nếu bạn muốn tự build MCP server từ đầu, blog đã có bài riêng cho phần đó — ở đây mình chỉ tập trung vào việc tận dụng server có sẵn.
MCP hoạt động như thế nào — hiểu nhanh trong 2 phút
MCP là giao thức mở do Anthropic phát triển. Hình dung như USB-C cho AI: thay vì mỗi tool có cách kết nối riêng, MCP chuẩn hóa luồng giao tiếp giữa AI client (Claude Desktop, Cursor, VS Code…) và các “server” cung cấp dữ liệu hoặc hành động.
Mỗi MCP server là một process độc lập, expose ra các “tools” mà AI có thể gọi. Server filesystem expose tool read_file, write_file, list_directory. Khi bạn hỏi Claude “file config.yaml có gì?”, Claude tự gọi tool đó — thay vì bảo bạn paste nội dung vào chat.
Thiết lập môi trường trước khi bắt đầu
Hầu hết MCP server chạy qua Node.js (npx) hoặc Python (uvx). Cài sẵn hai thứ này:
# Node.js 18+ — dùng nvm cho dễ quản lý version
nvm install 20
nvm use 20
# uv — Python package manager nhanh hơn pip
pip install uv
Cấu hình MCP cho Claude Desktop nằm ở file JSON:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Cấu trúc cơ bản:
{
"mcpServers": {
"ten-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-ten-server"],
"env": {
"API_KEY": "your-key-here"
}
}
}
}
Sau mỗi lần chỉnh file config, restart Claude Desktop để apply thay đổi.
Top MCP Servers thực chiến cho developer
1. Filesystem — Đọc/ghi file local không cần copy-paste
Server cơ bản nhất nhưng mình dùng nhiều nhất. Claude có thể đọc, ghi, tìm kiếm file trực tiếp trên máy — review code, refactor, đọc log mà không cần paste từng đoạn vào chat.
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/projects",
"/Users/yourname/documents"
]
}
Truyền các đường dẫn thư mục muốn cho phép truy cập. Claude chỉ thao tác được trong các thư mục đó — nằm ngoài danh sách là Claude không thấy.
2. GitHub — Tương tác với repository qua chat
Server tiết kiệm thời gian nhất trong workflow của mình. Clone repo, đọc file, tạo issue, liệt kê PR — tất cả qua chat, không cần chuyển tab.
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
Tạo Personal Access Token tại GitHub Settings → Developer settings → Personal access tokens. Cấp quyền repo là đủ. Sau đó câu hỏi kiểu “Tóm tắt 10 commit gần nhất của repo X” hay “Tạo issue Y cho repo Z” đều chạy được.
3. PostgreSQL — Query database bằng ngôn ngữ tự nhiên
Mình đã chạy cái này trên production database và kết quả ổn định hơn dự tính — Claude tự inspect schema rồi viết query chính xác, không cần giải thích cấu trúc bảng mỗi lần.
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://localhost/mydb"
]
}
Thay mydb bằng tên database thực. Server này chỉ có quyền đọc theo mặc định — an toàn khi kết nối production.
Dùng SQLite thay PostgreSQL? Config đổi thành:
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/path/to/database.db"]
}
4. Brave Search — Tìm kiếm web real-time
Knowledge cutoff của Claude dừng ở một mốc cố định — sau đó model không biết gì mới. Server này cho phép Claude search web khi cần thông tin cập nhật: documentation version mới, lỗi vừa xuất hiện, hay release notes tuần trước.
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "BSA_xxxxxxxxxx"
}
}
API key đăng ký miễn phí tại api.search.brave.com. Gói free cho 2.000 query/tháng — dùng cá nhân thừa sức.
5. Puppeteer — Tự động hóa trình duyệt
Puppeteer chạy Chromium ngầm, cho phép Claude mở URL, click, điền form, chụp screenshot. Hữu ích nhất cho testing UI hoặc scrape những trang không có API.
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
Không cần config thêm. Lần đầu chạy sẽ tự download Chromium (~200MB). Xong rồi bạn có thể nói: “Mở trang X, screenshot phần hero section” hay “Kiểm tra form login có hiển thị error message đúng không”.
6. Fetch — Gọi HTTP request tùy ý
Nhẹ hơn Puppeteer nhiều: chỉ gọi HTTP endpoint và đọc response, không cần browser. Dùng tốt cho test REST API, đọc documentation online, hoặc lấy dữ liệu từ public API.
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
7. Memory — Claude nhớ thông tin giữa các session
Claude quên sạch sau mỗi conversation — kể cả những thứ bạn vừa giải thích xong. Server memory tạo knowledge graph persistent trên máy. Mình store kiểu: “Project Alpha: PostgreSQL 15, deploy trên AWS ECS, CI/CD qua GitHub Actions, team 3 người” — mở chat mới là Claude đã có context, không phải giải thích lại từ đầu.
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
Config hoàn chỉnh: Kết hợp nhiều server
File config kết hợp đủ bộ — copy và điều chỉnh theo nhu cầu:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/projects"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
},
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "BSA_xxxxxxxxxx"
}
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
Lưu ý thực tế: Chạy nhiều server cùng lúc tốn RAM và làm danh sách tool của Claude dài thêm — cả hai đều ảnh hưởng tốc độ phản hồi. Thực tế mình thấy 3–4 server là điểm cân bằng tốt.
Gỡ lỗi khi MCP server không hoạt động
Ba lỗi phổ biến nhất:
- Server không xuất hiện trong Claude: JSON config sai format. Paste vào
jsonlint.comđể validate nhanh — một dấu phẩy thừa là đủ để cả file fail. - npx lỗi “command not found”: Node.js chưa cài hoặc chưa có trong PATH. Restart terminal sau khi cài Node rồi thử lại.
- Permission error với filesystem: Phải dùng absolute path, không dùng
~hay biến môi trường trong args.
Claude Desktop ghi log tại ~/Library/Logs/Claude/mcp*.log (macOS) — xem đây trước khi Google.
Kết luận
Sau khi dùng đủ bộ server này, cách mình tương tác với Claude thay đổi hẳn. Không còn cảnh paste từng đoạn code, giải thích schema từ đầu, hay mở tab mới để check docs — Claude đã có đủ context để làm việc thực sự.
Nếu mới bắt đầu: cài filesystem và github trước. Hai cái đó đã xử lý phần lớn nhu cầu hàng ngày. Thấy thiếu gì thì thêm dần. Cộng đồng đang ship server mới mỗi tuần — repository modelcontextprotocol/servers trên GitHub là chỗ cập nhật tốt nhất.

