Bỏ qua để vào nội dung chính
Audit MCP server trên máy dev: 3 lỗi cấu hình cần bịt

Audit MCP server trên máy dev: 3 lỗi cấu hình cần bịt

Bởi Zoe Taylor
17 thg 9, 20264 phút đọc

Một lần scan máy dev cho thấy 12/14 MCP server không pin version và 5 API key nằm plaintext trong config. Checklist 10 phút để tự kiểm tra máy bạn.

Bạn cài Claude Code, Cursor và Codex trên cùng một laptop, mỗi tool giữ một file config riêng. Không tool nào trả lời được câu hỏi: cộng lại, đám agent đó đang chạm được vào những gì? Dưới đây là ba lỗi cấu hình MCP hay gặp, kèm checklist tự audit trong 10 phút.

Bối cảnh: một lần scan thật trên máy dev

Một developer vừa công bố kết quả scan chính máy mình: 6 AI agent và 14 MCP server chạy song song — Claude Code, Cursor, Codex, OpenCode, OpenClaw và DeepSeek Harness. Tác giả ghi rõ số liệu đến từ lần scan ngày 2026-09-01 và được kiểm lại ngày 2026-09-12. Ba phát hiện bên dưới là của máy tác giả; tác giả cho rằng đây gần với cấu hình mặc định trên phần lớn máy dev hiện nay, nên đáng để đối chiếu.

Lỗi 1: MCP server không pin version

Theo báo cáo, 12 trong 14 MCP server chạy không pin version: npx @upstash/context7-mcp (unpinned), npx @playwright/mcp@latest, npx @modelcontextprotocol/server-github (unpinned).

Tác giả tóm tắt rủi ro: “Every npx -y is a supply-chain decision. @latest means the code that runs at startup is whatever was published to npm most recently — not the version you tested.” Server GitHub trong máy đó đang giữ một personal access token và vẫn kéo @latest mỗi lần khởi động. Tác giả cũng khẳng định năm 2025 từng có package MCP độc hại trên npm thu gom file .env — đây là claim của tác giả, bài viết không dẫn nguồn kiểm chứng.

Cách bịt gọn nhất là ghim version cụ thể trong config: npx -y pkg@1.2.3, không để @latest sống trong file bạn dùng hằng ngày.

Lỗi 2: API key nằm plaintext trong config

Cũng trong lần scan đó, 5 API key nằm dạng plaintext: GitHub token (x2) trong ~/.dsh/mcp-manager.json, OpenAI key trong ~/.codex/config.toml, GitHub token trong ~/.cursor/mcp.json, OpenAI key trong ~/.config/opencode/opencode.json. Scanner che giá trị khi in báo cáo, nhưng giá trị thật vẫn nằm trên đĩa.

Tự kiểm tra rất nhanh: mở đúng bốn đường dẫn kiểu trên trong máy bạn và tìm các chuỗi token. Nếu có, chuyển sang keychain của hệ điều hành hoặc secret manager, rồi rotate những key đã từng nằm plaintext — các file config này thường đã đi theo backup và thư mục sync.

Lỗi 3: không ai giữ inventory chung

Phát hiện thứ ba khó sửa nhất: “Cursor knows its own permissions. OpenClaw knows its own. Nothing answers ‘what can all of my agents do together?’”. Mỗi agent chỉ biết quyền của riêng nó. Danh sách hợp nhất — agent nào, MCP server nào, chạm vào repo và key nào — là thứ bạn phải tự dựng và tự cập nhật.

Khi nào cần tới gateway

Ở quy mô team, vấn đề đổi hình dạng. Một bài so sánh open-source MCP gateway 2026 mô tả: “Distributing API tokens, database passwords, and OAuth credentials to individual agent environments exposes sensitive infrastructure to accidental exfiltration.” Gateway gom nhiều MCP server sau một control plane có virtual key, RBAC và audit log, thay vì mỗi máy giữ token riêng.

Bài đó xếp Bifrost đứng đầu và nêu con số overhead 11 microsecond mỗi request, cùng Code Mode giảm 50% token — đây là số liệu do bài viết đưa ra, chưa có kiểm chứng độc lập, nên hãy đọc như thông tin tham khảo khi lập shortlist.

Ngưỡng thực tế: máy cá nhân thì pin version cộng keychain là đủ. Khi nhiều dev dùng chung token cho cùng một MCP server và không ai trả lời được ai đã gọi tool nào, gateway mới đáng chi phí vận hành.

Làm gì trong tuần này

  • Liệt kê mọi MCP server trong tất cả file config agent, kèm transport và package name.
  • Pin version cho từng server, xoá @latest.
  • Đưa token ra keychain, rotate mọi key từng nằm plaintext.
  • Commit danh sách đó vào repo team — inventory không tự sinh ra.

Không spam, hủy đăng ký bất kỳ lúc nào.

Bài viết liên quan