# MCP servers cho Claude Code năm 2026: 7 tích hợp và cách cài đặt

> MCP là gì và cách kết nối trong 5 phút bằng lệnh claude mcp add. 7 máy chủ: GitHub, Postgres, Slack, Notion, Sentry, Playwright. Cho phép theo danh sách qua hooks.

Source: https://ailoot.ai/blog/vi/mcp-servers-claude-code/
Canonical: https://ailoot.ai/blog/vi/mcp-servers-claude-code/
Language: vi
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-172
Revision: sha256-6c4a8baedd7569d174833cc61c617f101db77dc499e8bee3f3dc2294ec3af75f


Bạn có thể xem hướng dẫn bổ sung về cách làm việc với Ailoot trong [tài liệu](https://ailoot.ai/docs/).



## Máy chủ MCP là gì và tại sao Claude Code cần nó?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

MCP (Model Context Protocol) là một tiêu chuẩn mở của Anthropic, cho phép Claude Code truy cập các công cụ và dữ liệu bên ngoài thông qua một giao diện thống nhất. Một giao thức thay vì mười API khác nhau. Anthropic gọi đây là “USB-C cho ứng dụng AI”: cắm cổng vào là Claude có thể thấy cơ sở dữ liệu, email, ứng dụng nhắn tin hoặc kho mã của bạn.

</div>

Anthropic công bố MCP vào ngày 25 tháng 11 năm 2024 dưới dạng một tiêu chuẩn mở. Chỉ trong một năm, giao thức này đã trở thành tiêu chuẩn ngành: OpenAI, Google DeepMind và Microsoft đều hỗ trợ. Kho lưu trữ chính thức `modelcontextprotocol/servers` có các máy chủ tham chiếu từ chính dự án MCP (Filesystem, Memory, Sequential Thinking, Fetch và những máy chủ khác); các nhà cung cấp như GitHub, Notion, Stripe, Linear, Cloudflare và Sentry xuất bản máy chủ MCP trong kho lưu trữ riêng của họ. Các chỉ mục cộng đồng có hàng nghìn máy chủ.

Về mặt kỹ thuật, MCP chạy trên JSON-RPC 2.0. Kiến trúc rất đơn giản: Claude Code của bạn là client, bất kỳ dịch vụ nào cũng là server, còn MCP server ở giữa có ba thành phần: `tools` (những gì AI có thể gọi), `resources` (những gì AI có thể đọc) và `prompts` (các mẫu có sẵn).

<figure>
<blockquote>
Cũng như USB-C cung cấp một cách tiêu chuẩn để kết nối thiết bị với các thiết bị ngoại vi khác nhau, MCP cung cấp một cách tiêu chuẩn để kết nối mô hình AI với các nguồn dữ liệu và công cụ khác nhau.
</blockquote>
<figcaption>— Model Context Protocol, https://modelcontextprotocol.io/</figcaption>
</figure>

Vì sao điều này quan trọng với người làm vibe coding: trước MCP, mỗi kết nối giữa Claude và một dịch vụ bên thứ ba là một tích hợp riêng với wrapper riêng. Với MCP, kết nối Postgres, Slack và GitHub chỉ cần ba lệnh tương tự nhau; khi không còn cần dịch vụ, ngắt kết nối cũng dễ dàng như vậy.

## MCP khác Skills và Subagents như thế nào?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

Ba cơ chế này trông có vẻ giống nhau nhưng giải quyết các vấn đề khác nhau. Skills là quy trình làm việc và prompt của bạn dưới dạng mã. Subagents là những “đồng nghiệp” chuyên biệt, tách biệt và có ngữ cảnh riêng. MCP cung cấp các công cụ bên ngoài để Claude truy cập dịch vụ và dữ liệu. Chi phí token của chúng khác nhau: Skill rẻ nhất, còn MCP thường đắt hơn. Ban đầu MCP chỉ đưa tên công cụ và hướng dẫn của máy chủ vào ngữ cảnh; Claude tải mô tả đầy đủ khi cần. Phần lớn chi phí đến từ phản hồi của dịch vụ: chúng có thể lớn và vẫn nằm trong cuộc trò chuyện.

</div>

Bảng đơn giản giúp phân biệt:

| Cơ chế | Là gì | Khi nào dùng | Chi phí token |
|----|----|----|----|
| Skill | Tệp chứa hướng dẫn và prompt trong `.claude/skills/` | Quy trình lặp lại: viết email, lập báo cáo, đăng bài | Thấp. Được tải khi có trigger |
| Subagent | Agent riêng có ngữ cảnh và công cụ của riêng nó | Tác vụ dài, song song: đánh giá, kiểm toán, nghiên cứu | Trung bình. Có ngữ cảnh riêng |
| MCP server | Dịch vụ có tools/resources qua JSON-RPC | Cần truy cập dữ liệu trực tiếp: cơ sở dữ liệu, email, ứng dụng nhắn tin, kho mã | Trung bình hoặc cao. Chỉ tên công cụ nằm trong ngữ cảnh; mô tả được tải khi cần và phản hồi từ dịch vụ có thể lớn |

Kết luận thực tế: nếu một tác vụ được đặc tả một lần rồi lặp lại dưới dạng văn bản, đó là Skill. Nếu AI cần phản hồi trực tiếp từ hệ thống bên ngoài, đó là MCP. Nếu tác vụ dài, có nhiều nhánh và cần một bộ não riêng, đó là Subagent.

Tìm hiểu thêm về hai cơ chế liên quan: [Claude Code Skills: Cách xây dựng thư viện của riêng bạn](https://ailoot.ai/blog/vi/claude-code-skills-library/) và [Claude Code Subagents: 5 ví dụ có sẵn](https://ailoot.ai/blog/vi/claude-code-subagents/).

## Cách cài đặt MCP server: lệnh đầu tiên của bạn trong 5 phút

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

Cùng một cú pháp áp dụng cho mọi trường hợp: `claude mcp add [name] -- [launch command]`. Máy chủ sẽ xuất hiện trong danh sách `claude mcp list`. Sau đó Claude sẽ tìm các công cụ của máy chủ và bắt đầu dùng chúng trong cuộc trò chuyện. Không cần chỉnh sửa cấu hình thủ công — mọi thứ đều được thực hiện qua CLI.

</div>

Cú pháp đầy đủ từ tài liệu chính thức:

```bash
claude mcp add <name> [options] -- <command> [args...]
```

Có ba transport được hỗ trợ: `--transport stdio` (mặc định, một tiến trình cục bộ), `--transport http` (HTTP từ xa) và `--transport sse` (được đánh dấu là không còn khuyến nghị; chỉ dùng nếu máy chủ chưa chuyển đổi).

Có ba phạm vi được hỗ trợ thông qua cờ `--scope`:

- `local` — chỉ trong thư mục dự án hiện tại (mặc định).
- `project` — được ghi vào `.mcp.json`, commit vào kho lưu trữ và dùng được cho cả nhóm.
- `user` — áp dụng toàn cục cho mọi dự án trên máy.

Ví dụ tối thiểu với Filesystem server tham chiếu của dự án MCP. Máy chủ khởi chạy trong nửa phút:

```bash
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem@2026.8.31 /Users/me/projects
claude mcp list
```

Sau khi chạy `list`, bạn sẽ thấy `filesystem` trong danh sách nếu thư mục nêu trong lệnh tồn tại; nếu không, máy chủ sẽ không khởi chạy. Máy chủ sẽ nhìn thấy các thư mục làm việc của Claude Code — tức là thư mục nơi bạn khởi chạy nó. Tôi sẽ giải thích lý do và thời điểm máy chủ này thực sự hữu ích ở mục 5.2 bên dưới.

Để kiểm tra MCP đã kết nối chưa, chạy `/mcp` trong một phiên Claude Code. Lệnh này hiển thị tất cả máy chủ, trạng thái và danh sách công cụ của chúng. Hướng dẫn bổ sung về cách làm việc với Ailoot có trong [tài liệu](https://ailoot.ai/docs/). Hãy xem README của MCP server đã chọn để biết các lệnh cụ thể của máy chủ đó.

## stdio hay HTTP: Bạn nên chọn transport nào?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

stdio là một tiến trình cục bộ trên máy bạn; mọi thứ hoạt động không cần mạng và không cần OAuth. HTTP là dịch vụ từ xa, được truy cập bằng token hoặc OAuth và có thể dùng chung giữa các thiết bị. Nếu MCP server được cài qua `npx` hoặc `uvx`, nó dùng stdio. Nếu dịch vụ có địa chỉ công khai riêng, nó dùng HTTP. SSE chính thức được đánh dấu là không còn khuyến nghị, vì vậy đừng phụ thuộc vào nó.

</div>

So sánh theo các tiêu chí chính:

| Tiêu chí | stdio | HTTP |
|----|----|----|
| Chạy ở đâu | Cục bộ (tiến trình con của Claude Code) | Máy chủ từ xa |
| Xác thực | Không cần | OAuth 2.1 hoặc Bearer token |
| Cổng mạng | Không có | Địa chỉ công khai |
| Trường hợp sử dụng | Filesystem, Postgres, tiện ích cục bộ | GitHub, Slack, Notion, Linear, Sentry |
| Kết nối lại | Không cần | Exponential backoff, tối đa 5 lần thử |
| Triển khai | Cài gói cục bộ | Dịch vụ của nhà cung cấp |

Quy tắc chung: mọi thứ được lưu trên đĩa hoặc trong cơ sở dữ liệu cục bộ dùng stdio. Mọi thứ trên đám mây dùng HTTP. SSE chính thức đã bị ngừng khuyến nghị; đừng chọn nó.

## 7 MCP server có sẵn cho doanh nhân

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

Dưới đây là bảy cấu hình đáp ứng 80% tác vụ của người làm vibe coding: mã nguồn (GitHub), tệp (Filesystem), cơ sở dữ liệu (Postgres qua DBHub), giao tiếp nhóm (Slack), kho kiến thức (Notion), theo dõi lỗi (Sentry) và quy trình trên trình duyệt (Playwright). Với mỗi cấu hình bên dưới, tôi đưa ra một lệnh cài đặt một dòng và ví dụ chính xác về cách bạn có thể yêu cầu Claude thực hiện công việc trong một cuộc trò chuyện thực tế.

</div>

### 5.1. GitHub MCP — Máy chủ chính thức từ GitHub

Chức năng: cho Claude Code truy cập issues, pull requests, tệp trong kho lưu trữ và các lần chạy action. Máy chủ là mã nguồn mở và có hơn 30,000 sao trên GitHub.

Cài đặt (HTTP qua OAuth):

```bash
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
```

Ngoài ra, dùng stdio qua Docker nếu bạn cần PAT token thay cho OAuth.

Ví dụ: “Đọc các issue đang mở được gắn nhãn `bug`, nhóm theo thành phần và đề xuất thứ tự xử lý.” Claude sẽ gọi GitHub MCP, đọc tất cả issue và trả về danh sách được sắp xếp theo mức độ ưu tiên.

Kho lưu trữ: [github/github-mcp-server](https://github.com/github/github-mcp-server).

### 5.2. Filesystem MCP — Máy chủ tham chiếu của dự án MCP

Chức năng: cho AI truy cập các tệp trên máy tính trong những thư mục được phê duyệt. Máy chủ do chính dự án MCP phát hành; registry npm ghi Model Context Protocol a Series of LF Projects, LLC là tác giả.

Cài đặt (stdio), với phiên bản được ghim:

```bash
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem@2026.8.31 /Users/me/projects
```

Khi Claude Code kết nối, nó truyền các thư mục làm việc của mình cho máy chủ, thay thế mọi thứ được chỉ định trong lệnh. Thư mục làm việc của Claude Code là thư mục nơi bạn khởi chạy nó, cộng với các thư mục được thêm bằng lệnh `/add-dir` hoặc cờ `--add-dir`. Bạn không thể chỉ định một thư mục riêng chứa mockup cho máy chủ bằng lệnh. Thư mục trong lệnh vẫn phải tồn tại, nếu không máy chủ sẽ không khởi chạy.

Vì vậy, trong Claude Code, máy chủ này phần lớn trùng lặp với các công cụ tích hợp sẵn. Để truy cập tệp trong thư mục khác, chỉ cần `/add-dir`: sau đó các công cụ riêng của Claude Code cũng có thể đọc thư mục đó. Máy chủ hữu ích hơn cho những chương trình không có khả năng truy cập tệp riêng. Trong Claude Desktop, có thể gặp vấn đề khác: các công cụ của máy chủ bị từ chối vì phần mô tả dùng định dạng schema cũ; vấn đề này vẫn chưa được khắc phục.

Chỉ cấp quyền truy cập vào những thư mục bạn thực sự cần, cả trong lệnh lẫn qua `/add-dir`. Đừng cấp quyền truy cập vào thư mục gốc của ổ đĩa — đó là lỗ hổng bảo mật đầu tiên.

Ví dụ: trước tiên chạy `/add-dir ~/Documents/design`, rồi yêu cầu “Chuyển tất cả mockup từ `~/Documents/design/landing-v3/` vào dự án hiện tại và đổi tên theo quy ước `hero-*.png`.”

### 5.3. Postgres MCP — DBHub (Bytebase)

Chức năng: kết nối Claude với Postgres, MySQL, SQL Server, MariaDB hoặc SQLite. Máy chủ hỗ trợ chế độ chỉ đọc để AI agent không thể xóa cơ sở dữ liệu chỉ bằng một lệnh. Nó thường được dùng thay cho reference server `server-postgres` đã lưu trữ của Anthropic.

Cài đặt (HTTP, chỉ đọc):

```bash
claude mcp add postgres -- npx -y @bytebase/dbhub --dsn "postgresql://user:pass@localhost:5432/mydb?sslmode=disable" --readonly
```

Với cơ sở dữ liệu production, luôn dùng một người dùng riêng có quyền chỉ đọc và ẩn danh dữ liệu cá nhân qua VIEW hoặc một tuyến API trung gian. Đừng kết nối với cơ sở dữ liệu production bằng quyền ghi.

Ví dụ: “Truy vấn khách hàng có trạng thái đăng ký `expired` trong tháng qua và liệt kê 20 khách hàng đứng đầu theo tổng số tiền thanh toán.”

Kho lưu trữ: [bytebase/dbhub](https://github.com/bytebase/dbhub).

### 5.4. Slack MCP — Giao tiếp nhóm

Chức năng: cho Claude đọc các kênh Slack và gửi tin nhắn. Hữu ích cho tự động hóa: “Khi bản dựng thành công, đăng lên `#releases`”; “Tổng hợp hàng tuần từ `#engineering`.”

Cài đặt (stdio thông qua wrapper npx, chẳng hạn `@modelcontextprotocol/server-slack` hoặc phiên bản tương đương của nhà cung cấp):

```bash
claude mcp add slack \
  -e SLACK_BOT_TOKEN=xoxb-... \
  -e SLACK_TEAM_ID=T0... \
  -- npx -y @modelcontextprotocol/server-slack
```

Xác thực bằng Slack Bot Token; quyền truy cập được giới hạn thông qua scopes ở phía Slack. Bạn chỉ có thể cấp cho AI `chat:read` và `chat:write:user`, khi đó AI sẽ không thể chỉnh sửa cài đặt workspace. Xem README của máy chủ đã chọn để biết các lệnh hiện tại; hệ sinh thái thay đổi nhanh chóng.

Ví dụ: “Mỗi sáng lúc 9:00, gửi danh sách PR được merge hôm qua đến `#daily`.”

### 5.5. Notion MCP — Kho kiến thức

Chức năng: cho Claude truy cập các trang và cơ sở dữ liệu Notion. Đây là kho kiến thức nằm ngoài dự án của bạn: nếu bạn lưu ghi chú, danh sách khách hàng hoặc chính sách biên tập ở đó, AI có thể đọc chúng.

Cài đặt (HTTP qua OAuth):

```bash
claude mcp add --transport http notion https://mcp.notion.com/mcp
```

Ngoài ra, có thể dùng plugin `@makenotion/claude-code-notion-plugin` chính thức của Anthropic.

Ví dụ: “Trong cơ sở dữ liệu ‘Customers’ của Notion, tìm tất cả những người có trạng thái ‘active’ và chưa có cuộc gọi nào trong hơn hai tuần. Soạn email cho từng người.”

Hướng dẫn của Notion: [developers.notion.com/guides/mcp](https://developers.notion.com/guides/mcp/get-started-with-mcp).

### 5.6. Sentry MCP — Theo dõi lỗi

Chức năng: kết nối Claude với lỗi trong hệ thống production của bạn. Khi một trang gặp lỗi 500, bạn có thể yêu cầu: “Hiển thị 10 issue mới nhất trong Sentry cho dự án và giải thích nguyên nhân gốc của từng issue,” rồi nhận phân tích ngay lập tức.

Cài đặt (HTTP):

```bash
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
```

Xác thực qua OAuth của Sentry. Có thể giới hạn quyền truy cập vào một dự án cụ thể.

Ví dụ: “Lấy ba issue thường gặp nhất trong 24 giờ qua. Giải thích bằng ngôn ngữ dễ hiểu điều gì đã xảy ra và đề xuất cách khắc phục.”

Kho lưu trữ: [getsentry/sentry-mcp](https://github.com/getsentry/sentry-mcp).

### 5.7. Playwright MCP — Quy trình trên trình duyệt

Chức năng: cung cấp trình duyệt cho Claude. AI có thể mở trang, nhấp, điền biểu mẫu và chụp ảnh màn hình. Hữu ích để kiểm tra UI, thử nghiệm thủ công sau khi xuất bản và phân tích quy trình làm việc.

Cài đặt (stdio):

```bash
claude mcp add playwright -- npx -y @playwright/mcp@latest
```

Phiên bản v0.0.75, phát hành ngày 7 tháng 5 năm 2026, đang được Microsoft tích cực duy trì (hơn 32,000 sao).

Ví dụ: “Mở trang chủ website của chúng tôi, kiểm tra xem tất cả thẻ hiển thị chính xác không, rồi chụp ảnh màn hình trên máy tính và điện thoại.”

Kho lưu trữ: [microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp).

Hãy xem README của phiên bản Playwright MCP đã chọn để biết lệnh ghim phiên bản, cờ cho nhiều phiên chạy đồng thời và các lỗi cài đặt thường gặp.



## Cách kiểm soát bảo mật bằng PreToolUse hook

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

MCP trao cho AI rất nhiều quyền: nó có thể ghi vào cơ sở dữ liệu, gửi tin nhắn và xóa tệp. PreToolUse hook kiểm soát lời gọi khớp, nhưng regex tiền tố SQL không phải phân quyền cơ sở dữ liệu và matcher chỉ Postgres không phủ Slack hay công cụ tệp. Dùng quyền dịch vụ và hệ thống tệp thực trước, thử scope hook riêng.

</div>

Danh sách chặn tiền tố SQL không là ranh giới chỉ đọc: SQL chữ thường, comment, `UPDATE`, `INSERT`, `ALTER`, nhiều statement và hàm có tác dụng phụ không được phủ bằng ba tiền tố hoa. Cấp kết nối role riêng có grant chỉ đọc, xác minh trên cơ sở dữ liệu thử bỏ được. Hook là kiểm soát công cụ bổ sung.

Ví dụ **cách ly tạm** hẹp này chặn mọi lời gọi qua ba family MCP nêu tên tới khi chính sách cụ thể được xem và thử. Nó chặn đọc lẫn ghi. Khớp tên server/công cụ thực; server đổi tên, Bash tích hợp hay connector khác nằm ngoài mẫu.

Đặt quy tắc riêng trong `.claude/settings.json`:

```json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "mcp__postgres__.*",
        "hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
      },
      {
        "matcher": "mcp__slack__.*",
        "hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
      },
      {
        "matcher": "mcp__filesystem__.*",
        "hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
      }
    ]
  }
}
```

Lưu script `.claude/hooks/deny-unapproved-mcp.sh`. Nó trả [giao kèo quyết định PreToolUse có tài liệu](https://code.claude.com/docs/en/hooks#pretooluse-decision-control), không dùng dạng cấp gốc `decision: approve/block` cũ:

```bash
#!/bin/bash
printf '%s\n' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"deny","permissionDecisionReason":"This MCP server family is quarantined pending a reviewed policy."}}'
```

Script không phân tích hoặc phân loại SQL; luôn deny khi khớp. Thử matcher và đầu ra hook trong phiên cách ly trước nối dữ liệu quý: `SELECT 1`, `delete` chữ thường, `UPDATE` có comment đầu, công cụ Slack đọc/gửi và Filesystem đọc `.env` đều phải bị deny nếu tên khớp. Công cụ family khác phải ngoài ví dụ; xác minh ranh giới đó riêng.

Muốn làm cơ sở dữ liệu chỉ đọc, dùng grant đã xác minh và thay quarantine bằng chính sách đã xem cho công cụ thật. Slack chỉ đọc cần credential không quyền gửi. Tệp cần allowed roots và quyền tiến trình hạn chế. Đừng nói hook ngăn truy cập qua công cụ khác, shell, tệp đính kèm prompt hoặc policy mà tác nhân sửa được.

Cách tiếp cận tương tự được trình bày chi tiết hơn trong hướng dẫn [Plan Mode trong Claude Code](https://ailoot.ai/blog/vi/claude-code-plan-mode/) — có logic “kiểm tra trước khi thực thi” tương tự.

## Nên làm gì nếu bạn có 40+ công cụ và Claude bị rối?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

Bảy máy chủ có thể dễ dàng cung cấp 50–100 công cụ. Claude Code dùng Tool Search theo mặc định: khi khởi động, chỉ tên công cụ và hướng dẫn của máy chủ được đưa vào ngữ cảnh; Claude tải mô tả đầy đủ khi cần đến công cụ. Nếu tắt chức năng tìm kiếm, mọi mô tả đều được tải cùng lúc và khi có khoảng 40 công cụ, Claude bắt đầu bối rối: chọn sai công cụ hoặc tìm đến MCP trong khi một lệnh thông thường đã đủ.

</div>

Theo [tài liệu Claude Code](https://code.claude.com/docs/en/mcp#scale-with-mcp-tool-search), tính năng này hiện được bật mặc định và không cần bật thủ công.

Các trường hợp ngoại lệ mà Claude Code tải mọi công cụ ngay lập tức: làm việc qua proxy bên thứ ba (khi `ANTHROPIC_BASE_URL` được đặt thành địa chỉ không thuộc Anthropic), các mô hình đời cũ hơn thế hệ 4.5 trên Google Cloud và các triển khai Microsoft Foundry trên Azure. Biến `ENABLE_TOOL_SEARCH` thay đổi hành vi như sau:

- không đặt — mọi MCP tools đều được hoãn lại và tải khi cần;
- `true` — tương tự, đồng thời Claude Code cố gắng bật tính năng tìm kiếm qua proxy;
- `auto` — chế độ ngưỡng: khi tổng dung lượng mô tả công cụ chiếm ít hơn 10% cửa sổ ngữ cảnh, chúng được tải ngay; vượt mức đó thì bị hoãn;
- `auto:N` — tương tự nhưng có ngưỡng phần trăm tùy chỉnh, chẳng hạn `auto:5`;
- `false` — hành vi cũ; mọi công cụ được đưa vào ngữ cảnh ngay lập tức.

Với những công cụ quan trọng phải luôn hiển thị, có cờ `alwaysLoad: true` trong `.mcp.json` bên cạnh mô tả máy chủ. Mỗi công cụ như vậy chiếm dung lượng ngữ cảnh ngay từ phút đầu tiên, vì vậy chỉ dùng cho công cụ mà Claude cần trong hầu hết câu trả lời.

Nếu bạn có từ năm MCP server trở lên và Claude bối rối không biết gọi công cụ nào, trước tiên hãy kiểm tra xem tính năng tìm kiếm có bị tắt không: tìm `ENABLE_TOOL_SEARCH=false` trong phần cài đặt và xem bạn có đang làm việc qua proxy hay không.

[Giảm ngữ cảnh bằng /compact](https://ailoot.ai/blog/vi/claude-code-token-limits-saving/) cũng có thể hữu ích.

## Khi nào không cần MCP: Skill, Subagent hay CLI sẽ tốt hơn?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

Xét theo token, MCP là cách tốn kém nhất để cung cấp cho Claude khả năng bên ngoài. Nếu có thể dùng một công cụ CLI có sẵn (`gh issue list`, `psql`, `curl`) hoặc Skill một trang để xử lý tác vụ, hãy dùng chúng thay vì tạo MCP servers. Quy tắc: chỉ nên dùng MCP khi AI cần trao đổi trực tiếp hai chiều với dịch vụ, không phải khi chỉ cần một câu trả lời đơn lẻ.

</div>

Thứ tự theo chi phí token và độ phức tạp:

1.  **Lệnh CLI qua Bash** — gần như miễn phí. AI chạy `gh pr list`, `psql -c` hoặc `curl` và nhận phản hồi như người dùng terminal bình thường.
2.  **Skill** — rẻ. Mẫu prompt có sẵn kèm hướng dẫn cần gọi gì và xử lý kết quả ra sao. Được tải dựa trên trigger trong tên thư mục.
3.  **Subagent** — trung bình. Ngữ cảnh riêng cho một tác vụ dài, với phiên token riêng.
4.  **MCP server** — đắt. Chỉ tên công cụ được giữ trong ngữ cảnh, nhưng mô tả công cụ được tải khi Claude tìm thấy nó trước lúc gọi; phản hồi từ dịch vụ có thể lớn: Claude Code cảnh báo khi phản hồi của công cụ vượt quá 10,000 token. Ngoài ra còn cần phiên OAuth cho HTTP.

Lời khuyên nghe có vẻ ngược đời: để phân tích trang web, làm việc với git, mở PDF và dùng tiện ích mã nguồn mở, hãy chọn **CLI**, không phải MCP. AI gọi lệnh terminal dễ dàng như con người, và token chỉ được dùng cho lệnh cùng phản hồi của lệnh đó, không cần mô tả công cụ hay phần phụ trợ của máy chủ.

MCP phù hợp trong hai trường hợp:

- Dịch vụ **đóng**: Slack, Notion, Sentry, Linear. Có cả công cụ CLI, nhưng MCP cho phép kiểm soát truy cập chi tiết hơn qua OAuth và scope.
- Cần **trao đổi trực tiếp hai chiều**: AI kết nối với Postgres, kiểm tra schema, đưa ra truy vấn tiếp theo, nhận dữ liệu rồi thực hiện bước kế tiếp. Với CLI, quy trình này sẽ thành 10 lệnh thủ công.

## 6 kiểu kết nối MCP phản tác dụng

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

Sáu lỗi cụ thể thường khiến người làm vibe coding vấp phải trong những tuần đầu dùng MCP. Có thể sửa mỗi kiểu sai này trong một phút: mở `claude mcp list`, xem lại danh sách rồi kiểm tra scopes và hooks. Hầu hết vấn đề được giải quyết bằng cách gỡ một máy chủ không cần thiết, chứ không phải thêm máy chủ mới; phần này là danh sách kiểm tra ngắn để rà soát từ trên xuống dưới.

</div>

1.  **Tủ MCP.** Bạn kết nối 10 máy chủ “để phòng khi cần”; Claude bối rối không biết gọi công cụ nào và phản hồi của chúng làm đầy ngữ cảnh. Giải pháp: giữ lại 3–5 máy chủ cho dự án hiện tại và gỡ phần còn lại bằng `claude mcp remove`.

2.  **Quyền ghi vào cơ sở dữ liệu production.** Bạn kết nối Postgres MCP với cơ sở dữ liệu production mà không có `--readonly`, người dùng riêng hoặc allowlist hook. Chỉ một prompt — “xóa các bản ghi thử nghiệm” — là dữ liệu production bị xóa. Giải pháp: role cơ sở dữ liệu riêng có grant chỉ đọc đã xác minh, chế độ chỉ đọc server khi có và kiểm soát công cụ đã thử. Chặn tiền tố `DROP|TRUNCATE|DELETE` chưa đủ phân quyền.

3.  **Thông tin nhận dạng cá nhân không được ẩn danh.** Bạn kết nối trực tiếp với cơ sở dữ liệu chứa email, số điện thoại và thông tin hộ chiếu của khách hàng. Claude nhìn thấy dữ liệu và dữ liệu đó lọt vào nhật ký của Anthropic. Giải pháp: dùng VIEW hoặc tuyến API trung gian trả về dữ liệu đã che, chẳng hạn `j***@gmail.com`.

4.  **Dùng MCP thay cho Skill.** Bạn cần “tạo báo cáo doanh số theo định dạng X” — một tác vụ thường lệ mà Skill với prompt có sẵn có thể xử lý. Đừng tạo MCP server.

5.  **Dùng MCP thay cho CLI mã nguồn mở.** Bạn cần chuyển PDF thành văn bản. Đã có `pdftotext`. Đừng xây dựng “PDF MCP” — nó chỉ làm lãng phí token.

6.  **Không theo dõi chi phí token.** Bạn nhìn thấy máy chủ đã kết nối trong `claude mcp list`, nhưng không biết nó dùng bao nhiêu trong mỗi cuộc trò chuyện. Một tuần sau, bạn vẫn không biết rằng “MCP đã ngốn 40% ngữ cảnh, và tôi đã trả tiền cho việc này suốt thời gian qua.” Giải pháp: định kỳ tắt các máy chủ không dùng đến và theo dõi mức sử dụng thay đổi ra sao qua [theo dõi giới hạn sử dụng Claude Code](https://ailoot.ai/blog/vi/claude-code-token-limits-saving/).

## Cách khắc phục sự cố kết nối MCP

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

Các vấn đề thường gặp nhất: OAuth callback không hoạt động, tên máy chủ trùng với máy chủ hiện có hoặc công cụ không xuất hiện trong `claude mcp list` sau khi chạy `add`. Quy trình xử lý sự cố tiêu chuẩn giúp khắc phục: `list` hiển thị những gì đã kết nối, `status` kiểm tra chỉ báo trạng thái, còn nếu trạng thái màu đỏ thì `logs` trả về stack trace. Sau khi điều chỉnh `--scope` hoặc biến ENV, hãy khởi động lại mọi thứ.

</div>

Danh sách kiểm tra từng bước:

1.  **Máy chủ có hiển thị trong danh sách không?**

    ```bash
    claude mcp list
    ```

    Nếu không, `claude mcp add` đã không hoàn tất. Nguyên nhân thường gặp nhất là `--scope`: bạn đã thêm vào `local` nhưng đang kiểm tra từ một dự án khác.

2.  **Trạng thái máy chủ có màu xanh không?**

    ```bash
    claude mcp status <name>
    ```

    Màu đỏ nghĩa là tiến trình không khởi chạy (với stdio) hoặc máy chủ không phản hồi (với HTTP).

3.  **Log của máy chủ có thông tin hữu ích không?**

    ```bash
    claude mcp logs <name>
    ```

    Nếu thấy stack trace, vấn đề thường nằm ở gói (`npx` không tìm thấy gói hoặc phiên bản Node thấp hơn 20).

4.  **OAuth callback không quay về được?** Thường vấn đề nằm ở `--callback-port` hoặc bộ lọc mạng. Chuyển tiếp một cổng cụ thể:

    ```bash
    claude mcp add --transport http --callback-port 8765 [name] [url]
    ```

5.  **Tên công cụ bị trùng?** Hai máy chủ cung cấp một công cụ cùng tên, khiến Claude gọi nhầm. Dùng Tool Search (xem tiêu đề H2 trước đó) hoặc gỡ máy chủ thừa thủ công bằng `claude mcp remove`.

6.  **Không thấy extensions (connectors) của claude.ai?** Đây là vấn đề đã biết: extensions (connectors) từ giao diện web claude.ai không khả dụng cho Claude Code khi dùng API key. Giải pháp: kết nối MCP qua CLI, không phải giao diện web.

## Tiếp theo: OAuth, MCP server của riêng bạn và Plugin Marketplace

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key points in this section">

Điểm chính

Sau bảy máy chủ có sẵn, ba bước tiếp theo là thiết lập OAuth cho các HTTP server của riêng bạn (nếu muốn chia sẻ MCP với nhóm), viết MCP riêng cho một dịch vụ đặc thù và kết nối với Plugin Marketplace của Anthropic. Marketplace ra mắt vào ngày 9 tháng 10 năm 2025 và đóng gói MCP thành các plugin có thể cài đặt bằng một lệnh.

</div>

Plugin Marketplace đẩy nhanh công việc cho những ai không muốn ghi nhớ lệnh cài đặt. Định dạng này là manifest `.claude-plugin/marketplace.json`, mô tả một nhóm máy chủ trong một gói.

Cài đặt plugin từ marketplace:

```bash
claude plugin install <plugin-name>
```

Một plugin có thể chứa nhiều MCP servers, Skills và Subagents cùng lúc — một cấu hình đóng gói cho tình huống cụ thể như thương mại điện tử, tiếp thị hoặc bộ phận pháp lý.

Viết MCP server của riêng bạn theo đặc tả `modelcontextprotocol.io`. Một mẫu tối thiểu dùng Anthropic Python hoặc TypeScript SDK; sau đó mô tả các tools và kết nối transport. Độ phức tạp tương đương viết REST API bằng FastAPI.

Nếu dự án của bạn đã có [CLAUDE.md được cấu hình](https://ailoot.ai/blog/vi/claude-md-template/) và hiểu về [context engineering](https://ailoot.ai/blog/vi/context-engineering/), việc thêm MCP của riêng bạn mất một ngày. Nếu chưa, tốt hơn hết hãy học các kiến thức cơ bản trước.

<div class="section" role="doc-bibliography" aria-label="Sources">

### Nguồn

- [Model Context Protocol — trang chính thức](https://modelcontextprotocol.io/)
- [Anthropic giới thiệu MCP — ngày 25 tháng 11 năm 2024](https://www.anthropic.com/news/model-context-protocol)
- [Tài liệu MCP của Claude Code](https://code.claude.com/docs/en/mcp)
- [Claude Code: MCP Tool Search](https://code.claude.com/docs/en/mcp#scale-with-mcp-tool-search)
- [Thông báo Claude Code Plugins — ngày 9 tháng 10 năm 2025](https://claude.com/blog/claude-code-plugins)
- [Code with Claude 2026](https://claude.com/code-with-claude)
- [modelcontextprotocol/servers — registry chính thức](https://github.com/modelcontextprotocol/servers)
- [github/github-mcp-server](https://github.com/github/github-mcp-server)
- [microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp)
- [bytebase/dbhub — Postgres MCP](https://github.com/bytebase/dbhub)
- [getsentry/sentry-mcp](https://github.com/getsentry/sentry-mcp)
- [makenotion/claude-code-notion-plugin](https://github.com/makenotion/claude-code-notion-plugin)
- [Hướng dẫn Notion MCP](https://developers.notion.com/guides/mcp/get-started-with-mcp)
- [Kho Claude Code của Anthropic — issues và changelog](https://github.com/anthropics/claude-code)

</div>





Để tiếp tục làm việc với các mô hình, hãy truy cập [Ailoot](https://ailoot.ai/).

## Câu hỏi thường gặp

### Hook này có làm truy cập cơ sở dữ liệu production chỉ đọc không?

Không. Ví dụ chặn mọi lời gọi khớp các family MCP được nêu, không phân loại SQL. Quyền chỉ đọc phải đến từ role riêng có grant đã xác minh; hook là lớp bổ sung.

### Nên thử phạm vi hook thế nào?

Trong phiên cách ly, xác nhận tên công cụ khớp bị chặn cả đọc lẫn ghi, kể cả SQL chữ thường hoặc có comment đầu. Thử công cụ khác nằm ngoài matcher; đường chưa phủ cần quyền hoặc chính sách riêng.


## Ailoot · Công ty và danh mục dự án của công ty

Ailoot dựa trên kinh nghiệm vận hành tích lũy, cơ sở khách hàng lớn, dịch vụ ổn định và việc kiểm soát KPI liên tục.

Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.

Ailoot áp dụng kinh nghiệm vận hành này để cung cấp quyền truy cập API vào các tính năng AI trong sản phẩm của khách hàng, tác tử, ứng dụng và quy trình tự động hóa.
