Phát triển MCP server năm 2026 là đặt một lớp mỏng, được bảo vệ chặt trước sản phẩm của bạn, để AI agent như Claude hay ChatGPT gọi sản phẩm như gọi công cụ. Một server công khai, chỉ đọc trên dữ liệu sẵn có mất khoảng một đến hai tuần công của kỹ sư senior. Server có xác thực trên dữ liệu khách hàng mất ba đến sáu tuần. Server cho agent ghi dữ liệu trong sản phẩm thuộc ngành phải tuân thủ thì mất ba đến sáu tháng. Phần lớn thời gian dành cho phân quyền, giới hạn phạm vi và audit, không phải cho bản thân giao thức. Bài này trình bày kiến trúc, chi phí và checklist bảo mật 20 điểm, lấy ví dụ thật từ ba MCP server BeevR đang chạy production. Cập nhật tháng 10/2026.
MCP server đưa các chức năng của sản phẩm ra thành "công cụ" (tool) mà mọi client hỗ trợ Model Context Protocol đều tìm thấy và gọi được: Claude, connector của ChatGPT, agent trong IDE, các framework agent. Bạn viết tích hợp một lần và mọi client tương thích đều dùng được. Trước MCP, mỗi client cần một plugin riêng. MCP server không phải backend mới. Nó là một lớp adapter mỏng nằm trên API hiện có, với phân quyền riêng và nhật ký audit riêng.
Bạn cần MCP server khi khách hàng hoặc đối tác muốn dùng sản phẩm của bạn ngay trong trợ lý AI. Ví dụ: "tóm tắt tài khoản của tôi", "cơ sở này có phải kiểm kê khí nhà kính không", "lấy số liệu quý trước vào bảng phân tích". Bạn cũng cần nó khi muốn các công cụ AI trả lời câu hỏi về công ty bằng dữ liệu của chính bạn, thay vì những gì model nhớ từ lúc huấn luyện. Có lẽ bạn chưa cần MCP server nếu chưa khách hàng nào hỏi, API còn chưa ổn định, hoặc mô hình dữ liệu còn đổi hằng tuần. Hãy làm chắc API trước, vì lớp MCP dựa hoàn toàn vào nó.
Phiên bản MCP hiện hành là 2026-07-28, và nó thay đổi cách xây server. Thay đổi lớn nhất là MCP giờ đã stateless. Bước bắt tay initialize và header Mcp-Session-Id bị bỏ. Mỗi request tự mang phiên bản giao thức và capability của client trong _meta, và server bắt buộc có phương thức mới server/discover để công bố các phiên bản mình hỗ trợ. Server nào cần giữ trạng thái giữa các lần gọi giờ phải tự tạo "handle" và nhận lại handle đó như một tham số tool bình thường. ping bị bỏ; Roots, Sampling và Logging bị đánh dấu deprecated.
Phần phân quyền cũng đổi. OAuth 2.0 Dynamic Client Registration (RFC 7591) bị deprecated, nhường chỗ cho OAuth Client ID Metadata Documents, dù vẫn được giữ để tương thích ngược. Client giờ phải kiểm tra tham số iss trong phản hồi authorization để chặn tấn công mix-up. Các nguyên tắc cốt lõi giữ nguyên:
Ngoài ra, tháng 6/2026 dự án MCP công bố extension Enterprise-Managed Authorization ở trạng thái ổn định. Extension này cho phép hệ thống định danh của doanh nghiệp (khi ra mắt là Okta) cấp và thu hồi quyền truy cập MCP tập trung, thay vì người dùng phải bấm qua OAuth cho từng server. Nếu bạn bán cho khách hàng doanh nghiệp, hãy tính trước phần này.
Trên thực tế, server xây năm 2025 hoặc đầu 2026 theo các phiên bản có bắt tay (2025-06-18, 2025-11-25) vẫn chạy với những client còn hỗ trợ các phiên bản đó. Server mới nên nhắm 2026-07-28 ngay từ đầu. Hai server công khai của chúng tôi hiện vẫn đàm phán 2025-06-18 hoặc 2025-11-25, nên chúng là ví dụ đúng về đợt nâng cấp mà phần lớn các đội đang phải làm.

Dù dùng stack nào, MCP server production cũng có năm lớp, tính từ ngoài vào trong:
/.well-known/mcp/server-card.json mô tả endpoint, transport, yêu cầu xác thực và danh sách tool. Server có bảo vệ công bố thêm protected-resource metadata và authorization-server metadata.BeevR đang chạy ba MCP server theo đúng mô hình này, và bạn có thể kết nối ngay vào hai server công khai:
| Server | Xác thực | Cung cấp gì | Ghi chú |
|---|---|---|---|
| https://beevr.ai/mcp | Không (công khai) | 8 tool chỉ đọc: tìm kiếm, bảng giá, dịch vụ, case study, bài viết (EN và VI) | JSON-RPC stateless qua Streamable HTTP; GET trả 405 vì server không mở stream chủ động |
| https://ecocheck.ai/mcp | Không (công khai) | 8 tool chỉ đọc, gồm công cụ kiểm tra nghĩa vụ kiểm kê khí nhà kính và các quy định 2026 đã kiểm chứng | Có server card; cùng mô hình với beevr.ai |
| https://ecocheck.ai/mcp/account | OAuth 2.1, authorization code + PKCE (S256) | Workspace, kỳ kiểm kê, năm báo cáo và báo cáo phát thải của chính khách hàng đã đăng nhập, chỉ đọc | Chi tiết ở phần tiếp theo |
Muốn tự xem giao thức hoạt động, hãy liệt kê tool trên server công khai của chúng tôi:
curl -s https://beevr.ai/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Hoặc thêm https://beevr.ai/mcp làm custom connector trong một trợ lý AI hỗ trợ MCP, rồi hỏi các gói giá cố định của BeevR. Câu trả lời sẽ đến từ tool get_pricing, không phải từ trí nhớ của model.
Nếu bạn tự xây agent, ranh giới tool này cũng áp dụng ở phía client. Kite, framework agent mã nguồn mở của chúng tôi, có sẵn tích hợp MCP (Slack, Gmail, Google Drive, PostgreSQL, Stripe). Mọi lượt gọi tool mà agent đề xuất đều đi qua một kernel kiểm tra danh sách cho phép, ngân sách và chính sách trước khi chạy.
Server tài khoản của EcoCheck thể hiện trọn luồng, và mọi bước đều công khai để bạn tự kiểm tra:
/mcp/account trả 401 kèm WWW-Authenticate: Bearer resource_metadata="…/.well-known/oauth-protected-resource/mcp/account", scope="ecocheck/read". Header này cho client biết phải xin quyền ở đâu và xin scope nào./.well-known/oauth-authorization-server đứng trước AWS Cognito. Nó chỉ công bố luồng authorization code, PKCE chỉ S256, client công khai (token_endpoint_auth_method: none) và có endpoint thu hồi token./oauth/register. Nó chỉ chấp nhận redirect URI trong danh sách cho phép (Claude, ChatGPT và MCP Inspector chạy local) và trả về client ID công khai. Agent không bao giờ tạo tài khoản khách hàng.ecocheck/read và chỉ cho GET/HEAD trên danh sách route cho phép. Danh sách thành viên, file minh chứng và xuất tài liệu đều trả 403. Mọi kiểm tra quyền workspace và tổ chức sẵn có vẫn chạy, vì agent hành động với tư cách chính khách hàng đó.Có hai quyết định thiết kế quan trọng hơn cả. Thứ nhất, quy tắc chỉ đọc nằm trong API sở hữu dữ liệu, nên một lỗi ở adapter MCP không thể nới rộng quyền truy cập. Thứ hai, token là của chính khách hàng, nên agent không bao giờ thấy nhiều hơn những gì khách hàng thấy trong ứng dụng. Phía người dùng được đội EcoCheck giải thích trong hướng dẫn kết nối EcoCheck qua MCP.
Cũng cần nói rõ một điểm cần cập nhật năm 2026: server này đăng ký client qua Dynamic Client Registration, cách mà đặc tả 2026-07-28 nay đã deprecated để nhường cho Client ID Metadata Documents. Cách này vẫn được phép để tương thích ngược, nhưng bản xây mới nên hỗ trợ Client ID Metadata Documents ngay từ đầu.

Chi phí phụ thuộc ba câu hỏi: server mở dữ liệu của ai, agent có được thay đổi gì không, và chế độ tuân thủ nào áp dụng. Bản thân lớp giao thức chỉ vài trăm dòng code. Bảng dưới quy đổi công sức ra tiền theo hai mức giá đã công bố: mức senior khu vực châu Á $31–$41/giờ trong bài giá thuê ngoài phần mềm Việt Nam 2026 của chúng tôi, và mức $100–$300/giờ thường thấy ở các công ty tầm trung tại Mỹ.
| Loại server | Phạm vi | Công sức điển hình (tuần công kỹ sư senior) | Ở mức $31–$41/giờ | Ở mức $100–$300/giờ |
|---|---|---|---|---|
| Công khai, chỉ đọc (như beevr.ai/mcp) | 5–10 tool trên nội dung hoặc API công khai sẵn có, server card, rate limit, test | 1–2 | $1,2K–$3,3K | $4K–$24K |
| Có xác thực, chỉ đọc (như ecocheck.ai/mcp/account) | OAuth 2.1 + PKCE với hệ thống định danh của bạn, metadata RFC 9728/8414, đăng ký client, allowlist route trong API, giới hạn theo người dùng, nhật ký audit | 3–6 | $3,7K–$9,8K | $12K–$72K |
| Đọc và ghi | Scope theo từng tool và step-up authorization, xác nhận với hành động có hệ quả, idempotency, rollback, rà soát mô tả tool, test lạm dụng | 6–12 | $7,4K–$19,7K | $24K–$144K |
| Ngành tuân thủ hoặc doanh nghiệp đa tenant | Toàn bộ phần trên, cộng test cô lập tenant, khoanh vùng luồng dữ liệu HIPAA/PCI, lưu trữ log, SSO doanh nghiệp/managed authorization, pentest bên ngoài | 12–24+ | $15K–$39K+ | $48K–$288K+ |
Các khoảng công sức là ước tính lập kế hoạch của chúng tôi, không phải báo giá. Chúng giả định đội đã nắm OAuth và API phía sau server, và chưa gồm phí audit hay pentest bên ngoài. Chi phí vận hành thường nhỏ, vì MCP server stateless chỉ là một hàm HTTP nhẹ. Chi phí thật nằm ở các lượt gọi API và model mà agent kích hoạt phía bạn. Phần chi phí của agent xem thêm ở chi phí xây dựng và vận hành AI agent.

Rủi ro chia thành ba nhóm: model đọc phải thứ gì, server tin ai, và sau sự cố bạn chứng minh được gì. OWASP MCP Top 10, hiện ở giai đoạn beta, là bản đồ hữu ích nhất. Theo thứ tự, danh sách gồm:
Ba phát hiện cho thấy đây không phải chuyện lý thuyết:
Bức tranh quản trị rộng hơn (ai được nối agent nào vào đâu, giới hạn chi tiêu ra sao) có trong bài quản trị AI agent của chúng tôi.
Đây là danh sách 20 điểm chúng tôi áp cho chính server của mình. Mục có dấu sao là những gì đặc tả 2026-07-28 yêu cầu hoặc khuyến nghị mạnh.
Phân quyền
S256, cho mọi dữ liệu không công khai.*401 với WWW-Authenticate chứa resource_metadata cùng scope cần thiết.*Quyền tối thiểu
insufficient_scope.*Tool
Vận hành
Trước khi ra mắt, chạy server qua MCP Inspector và ít nhất hai client thật. Sau đó chạy lại các test đường bị từ chối trong checklist: sai scope, token hết hạn, ID của tenant khác, phương thức ghi, input quá cỡ.
Hãy tự xây khi dữ liệu là của bạn, nhạy cảm hoặc thuộc diện quản lý, vì logic phân quyền phải nằm cạnh dữ liệu. MCP gateway dạng dịch vụ hợp với việc mở các tool SaaS bên thứ ba cho nội bộ, hoặc cho bản prototype. Với server dành cho khách hàng trên chính sản phẩm của bạn, gateway vẫn cần API của bạn thực thi scope, tenant và audit, và đó vốn là phần việc lớn nhất. Dù chọn cách nào, agent bao quanh server vẫn cần kỷ luật production như mọi agent khác: xem đưa AI agent từ pilot lên production.
MCP server công khai, chỉ đọc trên dữ liệu bạn đã phục vụ sẵn mất một đến hai tuần công kỹ sư senior, gồm cả test và server card. Server chỉ đọc có OAuth trên dữ liệu khách hàng mất ba đến sáu tuần. Server đọc-ghi hoặc trong ngành tuân thủ lâu hơn, vì phải khoanh scope, làm luồng xác nhận và kiểm thử bảo mật.
Không, với dữ liệu công khai: hai server công khai của beevr.ai và ecocheck.ai không cần thông tin đăng nhập. Với dữ liệu riêng của người dùng thì có: đặc tả MCP định nghĩa OAuth 2.1 kèm PKCE, server đóng vai resource server và công bố metadata RFC 9728. Đừng bao giờ đưa API key hay mật khẩu vào cuộc trò chuyện với agent.
Còn, nhưng đã bị deprecated từ phiên bản 2026-07-28. Client ID Metadata Documents giờ là cách khuyến nghị để client tự định danh. DCR được giữ cho các authorization server chưa hỗ trợ cách mới. Nếu vẫn giữ DCR, hãy giới hạn redirect URI bằng allowlist so khớp chính xác.
Tool poisoning là khi chỉ dẫn độc hại được giấu trong mô tả hoặc output của tool, và model làm theo, ví dụ gửi dữ liệu cho kẻ tấn công. Trong benchmark MCPTox, kiểu tấn công này thành công trung bình 36,5%. Cách phòng: mô tả tool được rà soát và quản lý phiên bản, output chặt chẽ, scope tối thiểu, và người dùng xác nhận các hành động có hệ quả.
Server có thể được thiết kế để nằm gọn trong một hệ thống tuân thủ, nhưng tuân thủ là của cả hệ thống, không phải của giao thức. Giữ PHI hay dữ liệu thẻ ngoài output của tool, trừ khi endpoint model đã có thỏa thuận phù hợp; ghi log mọi truy cập; và đưa server vào phạm vi phân tích rủi ro. Phía y tế có trong bài AI agent tuân thủ HIPAA.
BeevR xây MCP server production và các agent gọi chúng cho sản phẩm trong ngành tuân thủ, giá cố định theo từng giai đoạn và bạn sở hữu toàn bộ code từ ngày đầu. Bạn có thể kết nối ngay vào server công khai của chúng tôi tại https://beevr.ai/mcp. Để đưa sản phẩm của bạn sẵn sàng cho agent, xem dịch vụ phát triển AI agent hoặc kể cho chúng tôi bạn muốn agent làm gì với sản phẩm của mình.