vibeclaude.netvibeclaude.netvibeclaude.net
Tin tứcSkillsMCPThủ thuậtKhoá họcBảng giá
Đăng nhập
vibeclaude.net
  • Tin tức
  • Skills
  • MCP
  • Thủ thuật
  • Khoá học
  • Bảng giá
Đăng nhập
vibeclaude.netvibeclaude.net

Tin tức, skills, video và khoá học mới nhất về Claude AI bằng tiếng Việt.

Mục lục

  • Bắt đầu
  • Tin tức
  • Skills
  • MCP
  • Thủ thuật
  • Sản phẩm
  • Khoá học

Liên kết

  • Anthropic
  • Claude.ai
  • Anthropic Blog

© 2026 vibeclaude.net

Không phải sản phẩm chính thức của Anthropic. Mọi nhãn hiệu thuộc về chủ sở hữu của chúng.

📚Bài 9/12 · Series Xây MCP Server từ zero đến production: chuẩn kết nối AI với mọi hệ thốngCài MCP server vào Claude Desktop: từ edit claude_desktop_config.json thủ công đến Desktop Extensions một-click

Cài MCP server vào Claude Desktop: từ edit claude_desktop_config.json thủ công đến Desktop Extensions một-click

Nắm hai cách cài MCP server vào Claude Desktop: sửa claude_desktop_config.json thủ công và dùng Desktop Extensions (.dxt/.mcpb) một-click do Anthropic

19 tháng 6, 2026· 2391 từ

Cài MCP server vào Claude Desktop từng là việc khá khó chịu: mở terminal, tìm đường dẫn `claude_desktop_config.json`, paste JSON, restart app, và cầu nguyện không sai dấu phẩy. Anthropic đã giải quyết phần lớn pain point đó bằng Desktop Extensions (.dxt/.mcpb) một-click. Bài này so sánh 2 cách cài chính tính đến tháng 6/2026, demo thực tế cài 2 server trong 5 phút, phân tích lỗ hổng 0-click RCE ảnh hưởng 10.000+ user, và đưa ra khung quyết định nên dùng cách nào theo từng tình huống.

MCP trên Claude Desktop: bối cảnh tháng 6/2026

Model Context Protocol (MCP) đã phát triển đáng kể, từ tháng 12/2025, Anthropic đã chuyển giao dự án này cho Linux Foundation [F5]. Đến tháng 5/2026, MCP ghi nhận hơn 150 triệu lượt tải xuống, khẳng định vị thế là một chuẩn mở quan trọng để Claude Desktop kết nối với các công cụ bên ngoài [F5].

Bản redesign của Claude Desktop app vào tháng 4/2026 đã mang lại nhiều cải tiến. Ứng dụng giờ đây đạt được sự tương đồng về plugin với phiên bản CLI, đồng thời hỗ trợ SSH trên các hệ điều hành Mac và Linux.

Hiện tại, bạn có hai cách chính để cài đặt MCP server. Cách truyền thống là chỉnh sửa file `claude_desktop_config.json` thủ công. Cách thứ hai tiện lợi hơn là sử dụng Claude Desktop Extensions với định dạng .dxt hoặc .mcpb, cho phép cài đặt chỉ với một cú nhấp chuột [F1].

Tuy nhiên, cơ chế Desktop Extensions này cũng tiềm ẩn rủi ro. Một lỗ hổng 0-click RCE đã được phát hiện, ảnh hưởng đến hơn 10.000 người dùng, cho phép kẻ tấn công lợi dụng các MCP connector ít tin cậy để chạy lệnh qua extension cục bộ [F2]. Việc cài đặt MCP server cục bộ qua transport STDIO cũng có thể dẫn đến lỗ hổng RCE diện rộng, do server thực thi mọi lệnh hệ điều hành mà không có cơ chế lọc hay phân tách rõ ràng giữa cấu hình và lệnh [F3].

OX Security ước tính khoảng 200.000 instance MCP server đang dễ bị tấn công thực thi lệnh, trong đó có 7.000 server STDIO có IP công khai [F4]. Các ứng dụng như Cursor, Claude Code và Gemini-CLI cũng nằm trong nhóm lỗ hổng prompt-injection chỉnh sửa file cấu hình MCP cục bộ [F4]. Ngoài ra, tính năng Cowork ra mắt vào tháng 1/2026 cho phép Claude đọc và sửa file trong một thư mục chỉ định mà không cần MCP qua CLI.

Với bối cảnh này, việc hiểu rõ cả hai phương pháp cài đặt MCP server là rất quan trọng. Mỗi cách sẽ phù hợp với các trường hợp sử dụng khác nhau, và việc nắm vững chúng sẽ giúp bạn tận dụng tối đa Claude Desktop một cách an toàn và hiệu quả.

Hình minh họa cho phần mcp trên claude desktop: bối cảnh tháng 6/2026

Cách 1: Edit claude_desktop_config.json thủ công

Trước khi Anthropic phát hành Desktop Extensions một-click, cách duy nhất để gắn MCP server vào Claude Desktop là chỉnh file JSON config thủ công [F1]. Phương án này vẫn quan trọng khi bạn cần control sâu, debug một server tự viết, hoặc pin về một version cụ thể của server cộng đồng. Vị trí file khác nhau theo OS: trên macOS là `~/Library/Application Support/Claude/claude_desktop_config.json`, còn Windows là `%APPDATA%\Claude\claude_desktop_config.json`. Nếu file chưa tồn tại, bạn tự tạo mới với content `{}`. Trên macOS, folder `Library` mặc định bị Finder ẩn nên cách nhanh nhất là chạy `open ~/Library/Application\ Support/Claude` trong terminal để mở thẳng.

Cấu trúc JSON xoay quanh duy nhất key `mcpServers`. Mỗi server là một entry object với 3 field chính: `command` (binary chạy server, thường là `npx` hoặc `node`), `args` (mảng tham số truyền vào command), và `env` (object env var khi server cần API key hoặc token). Field `env` không bắt buộc, nhưng phần lớn server production đều cần ít nhất 1 secret. Bạn có thể khai báo nhiều server cùng lúc — Claude Desktop load song song lúc khởi động và merge tool list của tất cả vào cùng một context.

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/you/projects"
      ]
    }
  }
}

Sau khi save file, bạn phải quit hẳn Claude Desktop (Cmd+Q trên Mac, không chỉ close window vì process vẫn chạy nền) rồi mở lại. Khi server load thành công, icon hình ổ cắm điện hiện ở góc dưới ô input chat. Click vào đó để xem list tool mà server expose. Nếu icon không hiện, mở log file ở cùng folder config (tên dạng `mcp-server-<name>.log`) để xem lỗi parse JSON hoặc lỗi spawn process. Trong thực tế phần lớn lỗi rơi vào hai nhóm: JSON syntax sai (thiếu dấu phẩy, dùng comment `//` không hợp lệ) hoặc đường dẫn không tồn tại lúc spawn.

Cách edit thủ công có 3 ưu điểm đáng chú ý cho dev quen workflow CLI:

  • Toàn quyền kiểm soát mọi field, override được những default mà UI thường giấu đi

  • File text thuần nên commit thẳng vào dotfiles repo, share giữa nhiều máy qua git

  • Log riêng cho từng server, dễ trace khi server crash hoặc tool call fail

Đổi lại, nhược điểm cũng tương xứng và là lý do chính khiến Anthropic ra Desktop Extensions:

  • Syntax error JSON (thiếu phẩy, escape sai backslash trên Windows) làm Claude im lặng không load server, không có inline error message

  • Tự quản env var: secret nằm plaintext trong file, không có vault hay placeholder UI để mask

  • Path tuyệt đối khác giữa macOS và Windows nên config khó portable 100% giữa các máy

Cách 2: Desktop Extensions (.dxt/.mcpb) một-click

Anthropic đã giới thiệu định dạng Claude Desktop Extensions (.dxt/.mcpb) như một cơ chế cài đặt MCP server một-click [F1]. Đây là cách thay thế việc mình phải tự chỉnh sửa file `claude_desktop_config.json` thủ công [F1]. Định dạng .dxt là phiên bản cũ, còn .mcpb là định dạng mới hơn nhằm chuẩn hóa việc đóng gói các MCP server.

Quy trình cài đặt khá đơn giản: bạn chỉ cần tải file .mcpb về máy, sau đó double-click vào file đó. Claude Desktop sẽ tự động đọc và phân tích file manifest bên trong, rồi sau đó bạn có thể kích hoạt extension này trong mục Settings > Extensions của ứng dụng.

File manifest này khai báo các thông tin quan trọng như câu lệnh để chạy server, các biến môi trường (env var) cần người dùng nhập, phiên bản của extension, và phạm vi quyền hạn (permission scope) mà extension yêu cầu. So với cách chỉnh sửa JSON thủ công, phương pháp này tiện lợi hơn nhiều vì không cần chạm vào file cấu hình, có giao diện người dùng để bật/tắt extension, và hỗ trợ tự động cập nhật.

Tuy nhiên, một hạn chế hiện tại là số lượng extension chính thức có sẵn dưới dạng .mcpb vẫn còn ít so với số lượng MCP server có trên npm registry. Nếu bạn là người dùng thích giao diện dòng lệnh (CLI) nhưng vẫn muốn tận hưởng sự tiện lợi của việc cấu hình tự động, Smithery CLI là một lựa chọn thay thế đáng cân nhắc.

Cần lưu ý rằng đã có lỗ hổng 0-click RCE trong Claude Desktop Extensions, ảnh hưởng đến hơn 10.000 người dùng [F2]. Lỗ hổng này cho phép kẻ tấn công lợi dụng các connector MCP có độ tin cậy thấp để chạy lệnh thông qua các extension MCP cục bộ như Desktop Commander [F2].

Demo: Cài 2 MCP server thực tế trong 5 phút

Để thấy rõ cách MCP server hoạt động, mình sẽ demo cài đặt hai loại server khác nhau. Đầu tiên là một filesystem server đơn giản, sau đó là GitHub server phức tạp hơn, để bạn thấy sự khác biệt giữa cấu hình thủ công và dùng Desktop Extensions.

Cài Filesystem Server thủ công

Mình sẽ cấu hình một MCP server cho phép Claude đọc các file trong thư mục dự án cục bộ. Bạn cần thêm đoạn JSON sau vào file `claude_desktop_config.json` của mình. Server này sẽ trỏ vào thư mục `~/projects` để Claude có thể duyệt và đọc code.

{
  "servers": [
    {
      "name": "Local Filesystem",
      "command": "npx",
      "args": [
        "@anthropic-ai/mcp-server-filesystem",
        "--path",
        "/Users/your_username/projects" 
      ],
      "transport": "stdio"
    }
  ]
}

Sau khi lưu file và khởi động lại Claude Desktop, bạn sẽ thấy biểu tượng plug xuất hiện ở góc dưới bên trái. Nhấp vào đó, bạn sẽ thấy "Local Filesystem" trong danh sách các công cụ. Bạn có thể hỏi Claude "liệt kê 5 file TypeScript lớn nhất trong folder này" để kiểm tra.

Cài GitHub Server qua Desktop Extension

Với GitHub server, mình sẽ dùng cơ chế Desktop Extension một-click mới của Anthropic [F1]. Thay vì sửa file JSON, bạn chỉ cần tải về file `.dxt` hoặc `.mcpb` và mở nó. Claude Desktop sẽ tự động cài đặt server.

Sau khi cài, bạn cần cung cấp Personal Access Token của GitHub qua giao diện người dùng của Claude Desktop. Server này hỗ trợ khoảng 18 công cụ khác nhau, cho phép Claude tương tác với GitHub API. Trong các thử nghiệm, độ trễ trung bình cho mỗi lần gọi công cụ thường vào khoảng 200-400ms trên kết nối gigabit.

Bạn có thể kiểm tra bằng cách hỏi Claude "hiển thị 3 PR mới nhất trong repository X". Claude sẽ tự động gọi API GitHub để lấy thông tin. Biểu tượng plug và danh sách công cụ trong hộp thoại chat sẽ xác nhận server đã kết nối thành công.

Hình minh họa cho phần demo: cài 2 mcp server thực tế trong 5 phút

Bảo mật: rủi ro thật của MCP server cục bộ

Cộng đồng Claude Desktop gần đây dính một cú khá đau: lỗ hổng 0-click RCE trong Desktop Extensions ảnh hưởng hơn 10.000 user [F2]. Cơ chế tấn công không trực diện. Kẻ xấu lợi dụng một MCP connector tin cậy thấp (cụ thể là Google Calendar) để inject lệnh, rồi để extension cục bộ như Desktop Commander thực thi giùm [F2]. Đây không phải lỗi cài đặt cá nhân, mà là vấn đề thiết kế ở tầng transport. Server STDIO chạy mọi lệnh hệ điều hành nhận được, không sanitize input, cũng không tách rạch ròi giữa config và câu lệnh thực thi [F3].

Quy mô lớn hơn bạn tưởng. Theo audit của OX Security, khoảng 200.000 instance MCP server đang dễ bị command execution, trong đó có 7.000 server STDIO mở public IP [F4]. Không riêng Claude Desktop — Cursor, Claude Code và Gemini-CLI cũng nằm trong cùng họ lỗ hổng prompt-injection có thể chỉnh sửa file cấu hình MCP cục bộ [F4]. Vấn đề càng đáng chú ý khi MCP đã thành chuẩn mở: Anthropic chuyển protocol cho Linux Foundation tháng 12/2025, đến tháng 5/2026 đã vượt 150 triệu lượt download [F5]. Adoption càng rộng, bề mặt tấn công càng lớn.

Vậy thực tế bạn nên phòng thủ thế nào? Có vài nguyên tắc mình áp dụng cho mọi extension trước khi click cài:

  1. Chỉ cài server từ publisher có track record: Anthropic official, các repo open-source có >1k star, hoặc team mà bạn đã verify được identity.

  2. Mở source code đọc qua trước khi `npx -y` — đặc biệt soi phần shell exec, network call và file I/O. Code MCP server thường ngắn, không tốn quá 10 phút.

  3. Tách env var nhạy cảm (API key, DB password, token) ra biến môi trường riêng. Không hardcode trong file config vì config đã được chứng minh là vector prompt-injection [F4].

  4. Không chạy MCP server với quyền sudo. Tránh cài trên máy có access trực tiếp tới data production hoặc cluster nội bộ.

  5. Định kỳ audit danh sách extension đang cài. Server nào không dùng tới nữa thì gỡ ngay, đừng để nó nằm im chờ bị khai thác.

Nguyên tắc bao trùm là principle of least privilege. Một MCP server chỉ nên có đúng quyền tối thiểu để làm task của nó. Nếu một extension chỉ cần đọc 1 file CSV mà yêu cầu full disk access — đó là red flag rõ ràng, dừng cài luôn và đi tìm option khác.

Khi nào nên dùng cách nào

Bốn cách cài ở trên không phải là lựa chọn 'cái nào tốt hơn' — mỗi cách có sweet spot riêng. Chọn sai có thể khiến bạn mất nửa tiếng debug JSON hoặc ngược lại, đưa cho teammate non-dev một file config khó hiểu. Phần này tóm tắt khi nào nên dùng cái nào.

Manual config (sửa trực tiếp claude_desktop_config.json) phù hợp khi bạn cần truyền custom args, chạy MCP server tự viết chưa publish, hoặc muốn version-control config qua dotfiles repo. Lợi thế lớn nhất là minh bạch: mọi flag, mọi env var đều nằm trong một file bạn đọc được. Đổi lại, onboarding cho người không quen terminal sẽ khó.

Desktop Extensions với định dạng .dxt/.mcpb là lựa chọn tốt cho team-wide rollout, vì Anthropic thiết kế nó như cơ chế cài một-click thay cho việc sửa config thủ công [F1]. Khi teammate là designer, PM, QA, bạn không nên bắt họ paste JSON tay. Một file extension cài 1 click cộng UI bật/tắt giải quyết phần lớn vấn đề onboarding.

Nếu use case chỉ là cho Claude đọc/sửa một folder cụ thể, Cowork (built-in) đủ dùng và bạn không cần setup MCP gì cả. Smithery CLI nằm giữa hai cực: bạn vẫn quen workflow terminal nhưng không phải copy-paste block JSON dài, lệnh install lo phần còn lại.

  • Filesystem-only (đọc/sửa 1 folder): Cowork built-in

  • Tool-heavy + technical (custom args, server tự viết): manual config

  • Rollout cho team mixed kỹ thuật và non-dev: Desktop Extensions

  • Auto-install nhưng giữ workflow terminal: Smithery CLI

Một lưu ý cuối: cả bốn cách đều chạy MCP server cục bộ qua transport STDIO, nên rủi ro bảo mật là chung — server thực thi lệnh OS nó nhận mà không có sanitization hay ranh giới giữa config và câu lệnh [F3]. Chọn cách cài tiện nhất không miễn cho bạn việc review code và permission của server trước khi bật.

Tóm lại: edit `claude_desktop_config.json` thủ công vẫn cần thiết cho server custom hoặc debug sâu, còn Desktop Extensions phù hợp khi cài server đã publish và share cho teammate non-dev. Nếu bạn muốn xem flow cài chi tiết kèm thao tác trên màn hình, bản video gốc có demo đầy đủ phần Desktop Extensions.

📚 Trong series này

← Bài 6

Local vs Remote MCP server: hiểu stdio, SSE và Streamable HTTP qua ví dụ thực tế và chọn transport phù hợp

Bài 10 →

Build MCP server đầu tiên bằng TypeScript: tutorial từng bước với Node.js và Claude Desktop

Xem toàn bộ series →

⚠️ Tự động tổng hợp bằng AI

Bài viết được hỗ trợ tạo bởi AI — vui lòng xem video gốc để tham khảo trực tiếp.