3A.COM.VN

Công Cụ AI

Tối ưu token Claude Code MCP: 7 server ngốn 67.300 token theo một issue GitHub, đo bằng /context và cắt thế nào

Một issue GitHub báo 7 MCP server ngốn 67.300 token (33,7% cửa sổ 200k) trước khi gõ prompt. Bài này chỉ cách tối ưu token Claude Code MCP: đo bằng /context, chỉnh tool search, tắt server thừa.

Sản phẩm trong bài:
ClaudeMCP ProtocolGitHub
Hoàng Nam· Chuyên gia Đánh giá Công cụ AI8 phút đọc20/10/20260 lượt xem
Tối ưu token Claude Code MCP: 7 server ngốn 67.300 token theo một issue GitHub, đo bằng /context và cắt thế nào
ClaudeMCP ProtocolGitHub

Mở `/context` trong một phiên Claude Code rồi gắn thêm từng MCP server, bạn sẽ thấy dòng MCP tools phình ra trước khi gõ một chữ nào. Đó là cơ chế, không phải lỗi: mỗi server khai báo tool bằng JSON, client gửi chỗ JSON đó cho model. Bài này là tin nhanh: chỉ có số liệu truy được về nguồn, kèm các nút chỉnh có thật trong tài liệu chính hãng để tối ưu token Claude Code MCP mà không phải mua thêm gì. 3A chưa tự đo, nên bài không có bảng số đo riêng.

Ghi chú

Ngày đọc nguồn: tất cả trang chính hãng và GitHub trong bài đọc ngày 19/10/2026. Danh sách link nằm ở mục Nguồn tham khảo cuối bài.

MCP ăn token của bạn ở đâu trước khi bạn gõ prompt?

Một MCP server trả danh sách tool qua JSON-RPC 2.0, thông điệp `tools/list`. Mỗi phần tử có tên, mô tả và `inputSchema`. Phần schema này là thứ tốn token. Tài liệu chính hãng của Claude Code cho ví dụ một phần tử `tools/list` như sau:

json
{
  "name": "get_schema",
  "description": "Returns the full database schema",
  "_meta": { "anthropic/maxResultSizeChars": 200000 }
}

Ví dụ trên lấy từ [tài liệu MCP của Claude Code](https://code.claude.com/docs/en/mcp), đọc 19/10/2026. Có ba nguồn tốn token riêng biệt, người ta hay gộp làm một:

Dự án nội bộ · 3A AI Stack Advisor

Đừng trả tiền thừa cho SaaS AI — Nhận lộ trình công cụ & chi phí tối ưu trong 10 giây

Mô tả bài toán của doanh nghiệp bạn (CSKH Zalo OA, Coding, RAG tài liệu nội bộ, Báo cáo P&L). Hệ thống cố vấn của 3A sẽ đề xuất bộ công cụ đã qua kiểm thử thực chiến.

  • **Định nghĩa tool** (tên, mô tả, schema): tốn nếu nạp sẵn. Cắt bằng tool search hoặc tắt server.
  • **Kết quả tool trả về**: tốn mỗi lần gọi. Cắt bằng `MAX_MCP_OUTPUT_TOKENS` (mặc định 25.000, cảnh báo cố định ở 10.000) hoặc lọc ở phía server.
  • **Hướng dẫn server (server instructions)**: nạp mỗi phiên, kể cả khi hoãn nạp tool. Docs ghi mức cắt: 4.096 ký tự cho instructions và mô tả tool nạp sẵn, 16.384 ký tự cho mô tả tool nạp qua tool search. Biến `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` thay cả hai giới hạn bằng một số ký tự, cần Claude Code v2.1.280 trở lên.

Con số 67.300 token từ đâu ra và tin được đến mức nào?

Con số lan truyền nhiều nhất là "7 MCP server ăn 67.300 token, 33,7% cửa sổ 200k". Tôi lần về gốc: đó là phép đo của một người dùng, không phải của Anthropic. Nó nằm trong issue [anthropics/claude-code#11364](https://github.com/anthropics/claude-code/issues/11364), tựa "Lazy-load MCP tool definitions to reduce context usage", mở ngày 10/11/2025. Bot đóng issue ngày 14/11/2025 vì trùng với #7336 và khoá hội thoại ngày 22/11/2025. Trang không kiểm chứng độc lập các số của người báo cáo.

Số trong issue #11364Giá trị người báo cáo nêuNguồn, ngày đọc
Định nghĩa tool của 7 server67,3k token (33,7% của 200k)[Issue #11364](https://github.com/anthropics/claude-code/issues/11364), 19/10/2026
Tổng context khi có 7 server86,6k token (43,3%)[Issue #11364](https://github.com/anthropics/claude-code/issues/11364), 19/10/2026
Định nghĩa tool của cấu hình còn 3 server42,6k token (21,3%)[Issue #11364](https://github.com/anthropics/claude-code/issues/11364), 19/10/2026
GitHub MCP, 27 tool
khoảng 18k token[Issue #11364](https://github.com/anthropics/claude-code/issues/11364), 19/10/2026
Mỗi tool550 đến 850 token[Issue #11364](https://github.com/anthropics/claude-code/issues/11364), 19/10/2026

Phép chia của tôi: 18k chia 27 tool ra khoảng 670 token một tool, nằm trong khoảng 550 đến 850. Chỉ là kiểm chéo nội bộ trong cùng một issue, không phải đo độc lập. Số này là của một máy, một thời điểm (tháng 11/2025), một phiên bản Claude Code. Dùng nó để hình dung bậc độ lớn, đừng chép vào báo cáo như số của bạn.

Tool search thay đổi gì và chỉnh ENABLE_TOOL_SEARCH ra sao?

Theo [docs MCP](https://code.claude.com/docs/en/mcp#scale-with-mcp-tool-search) (19/10/2026), tool search bật mặc định: chỉ tên tool và server instructions nạp lúc bắt đầu phiên, định nghĩa đầy đủ được hoãn đến khi Claude cần. Claude Code không đặt giới hạn cứng số tool mỗi server, giới hạn thực tế là ngân sách cửa sổ context. Biến `ENABLE_TOOL_SEARCH` điều khiển hành vi này:

  • bỏ trống: hoãn nạp toàn bộ tool MCP, nạp theo nhu cầu.
  • `auto`: nạp sẵn khi tổng định nghĩa dưới 10% cửa sổ, đạt 10% thì hoãn tất cả.
  • `auto:N`: như `auto` với ngưỡng N phần trăm, N từ 0 đến 100.
  • `true`: giữ hoãn nạp kể cả khi `ANTHROPIC_BASE_URL` trỏ tới host không phải của hãng.
  • `false`: nạp sẵn tất cả, không hoãn.
bash
# ngưỡng 5%
ENABLE_TOOL_SEARCH=auto:5 claude

# tắt hẳn tool search
ENABLE_TOOL_SEARCH=false claude

Cần một server luôn hiện diện mà không qua bước tìm thì đặt `alwaysLoad` trong cấu hình server. Mỗi tool nạp sẵn chiếm context, và lúc khởi động phải chờ tool của server đó, tối đa theo timeout kết nối chuẩn 5 giây (cùng trang docs):

json
{
  "mcpServers": {
    "core-tools": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "alwaysLoad": true
    }
  }
}

Cắt token MCP bằng những lệnh nào?

Các nút dưới đây đều có trong docs chính hãng, đọc 19/10/2026. Tôi xếp theo logic cơ chế, không theo số đo, vì 3A chưa đo.

  • **Tắt server không dùng**: chạy `/mcp` để xem các server đã cấu hình và tắt cái bạn không dùng ([trang chi phí](https://code.claude.com/docs/en/costs)).
  • **Giữ tool search ở mặc định** hoặc đặt `auto:N` ([docs MCP](https://code.claude.com/docs/en/mcp#scale-with-mcp-tool-search)).
  • **Ưu tiên CLI khi có**: `gh`, `aws`, `gcloud`, `sentry-cli` hiệu quả context hơn MCP vì không thêm danh sách tool nào ([trang chi phí](https://code.claude.com/docs/en/costs)).
  • **Lọc đầu ra trước khi vào context** bằng hook `PreToolUse`: trang chi phí lấy ví dụ một file log 10.000 dòng, hook chỉ trả về dòng `ERROR`.
  • **Giữ CLAUDE.md dưới 200 dòng**, chuyển quy trình riêng sang skill ([trang chi phí](https://code.claude.com/docs/en/costs)).
  • **`/clear` khi chuyển việc**: trang chi phí ghi context cũ tốn token ở mọi tin nhắn sau đó.

Nếu bạn tự viết MCP server: kết quả thành công vượt 50.000 ký tự (với tool không khai báo `anthropic/maxResultSizeChars`) bị lưu ra file và hội thoại chỉ nhận tham chiếu file, bất kể số token. Tác giả server có thể nâng ngưỡng của riêng tool, trần cứng là 500.000 ký tự ([docs MCP](https://code.claude.com/docs/en/mcp)).

Muốn tự đo, docs trỏ tới `/context` để xem cái gì đang chiếm cửa sổ. Cách làm gọn: chạy `/context` ở phiên không gắn server, thêm server bằng `claude mcp add`, mở phiên mới và chạy lại, rồi so với `ENABLE_TOOL_SEARCH=false claude`. Tôi không đưa bảng số vì 3A chưa chạy phép này.

Rủi ro, chi phí ẩn và giới hạn áp dụng của việc tối ưu này

Cảnh báo kỹ thuật

Đừng tối ưu mù Hoãn nạp tool có đánh đổi: model phải qua bước tìm tool trước khi dùng lần đầu. Bài này không có số đo độ trễ hay tỉ lệ chọn đúng tool của hai chế độ. Muốn biết, bạn chạy cùng một loạt tác vụ ở cả hai chế độ rồi đếm số lượt gọi tool và số lần chọn sai.

Các giới hạn cần biết trước khi áp dụng:

  • Số 67.300 là của một người, một thời điểm. Cấu hình của bạn có thể thấp hoặc cao hơn nhiều.
  • Mức tiết kiệm của tool search phụ thuộc môi trường. Docs ghi Claude Code tắt tool search khi `ANTHROPIC_BASE_URL` trỏ tới host không phải của hãng vì đa số proxy không chuyển tiếp khối `tool_reference`, và nạp sẵn tool trên model cũ hơn Opus 4 và Sonnet 4. Ai đứng sau gateway hoặc dùng model cũ có thể đang trả đủ mà không biết.
  • Docs ghi tool search không được hỗ trợ trên triển khai Microsoft Foundry chạy trên Azure, nơi tool MCP nạp sẵn.
  • Tắt server là quyết định có giá: cần tool đó thì phải bật lại. Trang chi phí còn ghi dòng `Prompt cache (main)` trong `/usage` có thể báo nguyên nhân miss kiểu `likely cause: tool definitions changed`, nên đổi tập server giữa phiên là một nguồn cache miss.
  • Chi phí lớn không nằm riêng ở MCP: trang chi phí chỉ ra phiên dài không `/clear` và để Opus làm model mặc định là hai nguyên nhân thường gặp khi chi tiêu API tăng bất ngờ.
  • Trang chi phí nêu trung bình khoảng 13 đô một nhà phát triển mỗi ngày làm việc, 90% người dùng dưới 30 đô. Đó là trung bình toàn cục, không cho biết MCP chiếm bao nhiêu phần.

Có nên trả tiền cho gateway để tối ưu token Claude Code MCP không?

Kết luận của tôi: **Chỉ dùng gói Free**, nghĩa là dùng thứ đã có sẵn trong Claude Code.

Lý do theo cơ chế: tool search mặc định đã hoãn nạp định nghĩa tool, `/mcp` tắt server tốn một phím, `/context` đo miễn phí, `MAX_MCP_OUTPUT_TOKENS` chặn kết quả khổng lồ. Bốn nút này xử lý ba nguồn tốn token ở đầu bài. Gateway chỉ đáng cân nhắc khi bạn bắt buộc đứng sau proxy (lúc đó tool search có thể bị tắt) hoặc cần báo cáo chi tiêu theo người dùng, việc mà trang chi phí nói có OpenTelemetry và LiteLLM làm được. Kết luận này dựa trên tài liệu, 3A chưa thử gateway nào nên không chấm điểm chúng.

Nguồn tham khảo

Ngày đọc: 19/10/2026.

  • [Claude Code, MCP](https://code.claude.com/docs/en/mcp), đọc 19/10/2026: tool search, `ENABLE_TOOL_SEARCH`, `alwaysLoad`, giới hạn ký tự, `MAX_MCP_OUTPUT_TOKENS`.
  • [Claude Code, Manage costs](https://code.claude.com/docs/en/costs), đọc 19/10/2026: giảm overhead MCP, `/clear`, CLAUDE.md, hook, số chi phí trung bình.
  • [Issue anthropics/claude-code#11364](https://github.com/anthropics/claude-code/issues/11364), đọc 19/10/2026: toàn bộ số 67,3k, 86,6k, 42,6k, 18k, 550 đến 850 token là số do người báo cáo đo, mở 10/11/2025.

— Hoàng Nam, thử trước khi bạn xuống tiền.

— Hoàng Nam, thử trước khi bạn xuống tiền.

Bài liên quan