MCP server là hệ thống kết nối hạ tầng mới đầy hứa hẹn cho Claude Code. Chỉ cần thêm một GitHub server, agent của bạn có thể tự mở pull request. Thêm một filesystem server, nó sẽ đọc được cấu trúc repo của bạn. Các bản demo trông thật kỳ diệu. Nhưng điều không ai demo chính là hóa đơn.
Chi phí không nằm ở các lệnh gọi API mà các công cụ thực hiện. Nó nằm ở chính bản thân các công cụ đó.
Mỗi khi bạn đăng ký một MCP server, bạn không chỉ đang thêm một khả năng mới. Bạn đang thêm một khối văn bản vào cửa sổ ngữ cảnh (context window) của mình, và khối văn bản đó sẽ bị tính phí trong mỗi lượt (turn) duy nhất. Cho dù agent có sử dụng công cụ đó hay không, bạn vẫn phải trả tiền cho sự tồn tại của nó. Đồng hồ tính phí bắt đầu chạy ngay khi server được kết nối.
Trả tiền thuê cho những công cụ bạn chẳng bao giờ chạm tới
Đây là cơ chế thường bị bỏ qua. Mỗi định nghĩa công cụ trong một MCP server đều đi kèm với một cái tên, một mô tả và một JSON schema để cho mô hình biết công cụ đó yêu cầu những đối số nào. Toàn bộ payload đó được đưa vào ngữ cảnh hệ thống (system context) khi bắt đầu mỗi lượt. Mô hình cần phải thấy toàn bộ danh mục để có thể quyết định xem có nên gọi một công cụ hay không, nhưng chính bạn mới là người phải trả tiền cho sự hiển thị đó.
Chi phí phát sinh (overhead) cho mỗi công cụ là không hề nhỏ. Trong thực tế, một định nghĩa công cụ đơn lẻ tiêu tốn từ 80 đến 150 token. Điều đó có nghĩa là một server khiêm tốn cung cấp mười công cụ sẽ âm thầm "ngốn" từ 800 đến 1.500 token trước khi bạn kịp gõ một câu duy nhất. Bạn không phải đang trả tiền cho năng lực tính toán. Bạn đang trả tiền cho đặc quyền được có sẵn các lựa chọn đó.
Tôi đã chạy thử các con số qua một phiên làm việc tiêu chuẩn gồm 20 lượt để xem chính xác điều này cộng dồn như thế nào.
Nếu không tải MCP server nào, chi phí phát sinh bằng không. Cửa sổ ngữ cảnh chỉ chứa cuộc hội thoại của bạn.
Nếu tải một server tối giản tùy chỉnh với ba công cụ được giới hạn phạm vi chặt chẽ, mức thuế sẽ là 180 token mỗi lượt. Qua 20 lượt, bạn mất 3.600 token. Không phải là thảm họa, nhưng là tiền thật.
Máy chủ filesystem phổ biến, với bảy công cụ được cung cấp, sẽ đẩy con số này lên 640 token mỗi lượt. Trong cùng một phiên làm việc, bạn đã đốt hết 12.800 token chỉ để duy trì kết nối. Bạn thậm chí còn chưa đọc một tệp nào. Bạn còn chưa liệt kê một thư mục nào. Bạn chỉ đơn thuần là giữ cho server luôn nằm trong "thực đơn".
Và rồi còn có GitHub server. Với 26 công cụ được đăng ký, nó đổ 3.100 token vào mỗi lượt. Sau 20 tin nhắn qua lại, chi phí phát sinh tổng cộng là 62.000 token. Với mức giá của Sonnet 4, đó là 0,19 USD tiền thuế ngữ cảnh thuần túy. Bạn đã mất 19 cent cho phần chi phí phát sinh trước khi agent kịp cân nhắc đến việc tạo một issue.
Con số đó nghe có vẻ nhỏ khi đứng tách biệt. Nhưng thực tế không phải vậy.
Vấn đề của các Agent chạy xuyên đêm
Điều này trở nên nhức nhối trong các vòng lặp tự trị (autonomous loops) chạy dài. Nếu bạn đang sử dụng Claude Code như một agent tự lặp lại các bước, mức thuế mỗi lượt này sẽ nhân lên một cách tàn khốc. Một agent chạy xuyên đêm qua 2.000 lượt với GitHub server được tải sẵn sẽ không chỉ tốn 62.000 token chi phí phát sinh. Nó tốn tới 6,2 triệu token.
Đó là 18,60 USD chi cho những thứ hoàn toàn không tạo ra năng suất. Agent có thể đã ngủ suốt cả đêm mà không chạm vào bất kỳ công cụ GitHub nào. Nó có thể đã làm việc hoàn toàn trong các tệp cục bộ. Bạn vẫn bị tính phí cho toàn bộ 26 định nghĩa công cụ GitHub trong mỗi một trong số 2.000 lượt đó vì chúng đã được đăng ký trong phiên làm việc.
Điểm mấu chốt cần ghi nhớ là bạn trả tiền cho các công cụ đã đăng ký, chứ không phải các công cụ được gọi. Mô hình không kiểm tra xem nó thực sự sử dụng những công cụ nào rồi sau đó giảm hóa đơn cho bạn. Nếu server đã được kết nối, toàn bộ danh sách công cụ (manifest) của nó sẽ được đưa lại vào ngữ cảnh trong mỗi chu kỳ. Đây là một loại thuế tính trên "tiềm năng", chứ không phải trên "hành động".
Đối với các nhà phát triển đang chạy các agent lập trình lặp đi lặp lại, các bộ khung kiểm thử (test harnesses), hoặc các tác vụ đánh giá hàng loạt (batch review jobs), đây là một "kẻ sát nhân ngân sách" thầm lặng. Một cuộc hội thoại của con người với 20 lượt là nhẹ nhàng. Nhưng một vòng lặp agent với 200 hoặc 2.000 lượt mới là lúc các con số trở nên cực kỳ đắt đỏ.
Cách kiểm soát chi phí
MCP thực sự hữu ích. Bạn nên sử dụng nó. Nhưng hãy coi nó như một tiện ích mà bạn chỉ bật lên khi cần cho công việc hiện tại, chứ không phải một thành phần cố định mà bạn gắn chặt vào mọi phiên làm việc.
Giới hạn cấu hình theo dự án và tác vụ
Đừng tải mọi server vào cấu hình Claude Code toàn cục (global configuration) theo mặc định. Hãy xây dựng các cấu hình MCP theo phạm vi dự án sao cho khớp với công việc bạn thực sự đang làm. Nếu bạn đang tái cấu trúc (refactoring) một module cục bộ, có lẽ bạn chỉ cần filesystem server và không cần gì khác. Nếu bạn đang phân loại (triage) các issue, hãy tải GitHub server cho tác vụ cụ thể đó và ngắt kết nối khi bạn chuyển sang phát triển cục bộ.
Hãy coi nó giống như việc để các ứng dụng chạy ngầm trên điện thoại của bạn. Một hoặc hai ứng dụng thì không sao. Nhưng hai mươi ứng dụng chạy ngầm sẽ làm cạn pin mà không vì lý do gì cả.
Ưu tiên các Server có ít công cụ hơn
Not all MCP servers are designed with the same discipline. Some expose a lean interface of two or three focused actions. Others ship a sprawling catalog of 25 or 30 tools, many of which you will never invoke. A server with three tools might cost you 180 tokens per turn. One with 26 tools can cost 3,100. That is a 17x jump in overhead for a capability gap that may not matter to you.
Before installing a server, look at its tool manifest. If it registers a dozen overlapping operations and you only need one, consider whether you can configure it down, fork it, or write a slimmer wrapper. Every tool definition you can strip out is a direct and permanent token saving on every future turn.
Trim Tool Descriptions
The 80 to 150 token range per tool is not a law of nature. It is a function of how verbose the descriptions and schemas are. A bloated 400-token description eats five times the context of an 80-token description, and that fivefold penalty applies on every single turn.
Audit the servers you rely on. If a tool description reads like marketing copy, rewrite it. Cut adjectives. Cut examples that do not clarify the schema. Tighten the JSON. The model needs to understand what the tool does, but it does not need a paragraph of preamble. Treat tool definitions like code: the shorter and clearer, the better.
The Real Takeaway
MCP extends what Claude Code can reach. It does not extend your context window for free. The overhead is deterministic, recurring, and entirely disconnected from whether the tools see action.
Load only the servers your current task demands. Disconnect them when you are done. Audit tool counts and description lengths like you would audit any other dependency. The rule is simple: if the tool is not adding value in this specific session, it should not be adding tokens to your bill.
Source measurements and methodology: I added MCP servers to Claude Code — here’s what they cost in tokens
Join the GyaanSetu AI learning community for more engineering breakdowns: t.me/GyaanSetuAi
