Mục lục Series | Chương tiếp theo: Phần 1: Protocol Fundamentals & Transport Evolution →


Answer-first: Vận hành Model Context Protocol (MCP) trong production doanh nghiệp đòi hỏi thay thế kết nối ad-hoc bằng cụm MCP Gateway, xác thực định danh OAuth 2.1 và lọc tham số bằng AST parser. Kiến trúc này giúp cắt giảm 78% chi phí bảo trì, hạ độ trễ P99 từ 185ms xuống 18ms và bảo vệ dữ liệu.

📖 Bản tiếng Anh (English Edition): Executive Summary: Model Context Protocol in Production — The Control Plane of AI


1. Sự Đổ Vỡ Của Kiến Trúc Tích Hợp Ad-Hoc Truyền Thống

Trong giai đoạn đầu bùng nổ của trí tuệ nhân tạo tạo sinh (2023–2024), hầu hết các đội ngũ kỹ thuật tích hợp Large Language Models (LLMs) với hệ thống nội bộ bằng cách tự viết các hàm bọc (custom wrapper) đơn lẻ. Mỗi framework như LangChain, AutoGen hay các script Python nội bộ tự định nghĩa schema, mã lỗi và cơ chế xác thực riêng. Mô hình này phù hợp cho giai đoạn thử nghiệm (Proof of Concept - PoC), nhưng nhanh chóng sụp đổ khi đưa vào vận hành thực tế ở quy mô lớn (Production).

Nguyên nhân cốt lõi mang tính cấu trúc: Khi doanh nghiệp sở hữu $N$ mô hình AI khác nhau (Claude 3.5, GPT-4o, Gemini 1.5 Pro và các mô hình mã nguồn mở như DeepSeek-R1) cùng $M$ dịch vụ dữ liệu nội bộ (PostgreSQL, Elasticsearch, JIRA, Kubernetes API, SAP), mạng lưới tích hợp sẽ phình to thành một ma trận phức tạp với độ phức tạp $O(N \times M)$. Bất kỳ thay đổi nhỏ nào về schema dữ liệu hoặc chính sách bảo mật đều đòi hỏi cập nhật song song trên hàng chục codebase khác nhau.

graph TD
    subgraph KienTrucAdHocCu ["Ma Trận Rối Loạn N x M (Cũ)"]
        AgentA["Support Agent (Python)"] -->|Custom Wrapper| DB1[("PostgreSQL")]
        AgentA -->|Static API Key| Svc1["Dịch Vụ Billing"]
        AgentB["Code Reviewer (Node.js)"] -->|Raw SQL| DB1
        AgentB -->|Shared Token| GitOps["GitHub API"]
        AgentC["Data Analyst (Go)"] -->|Ad-Hoc JSON| DB1
        AgentC -->|Custom Header| K8sAPI["Kubernetes API"]
    end
    
    subgraph KienTrucSOTA2027 ["Hệ Sinh Thái Chuẩn Hóa MCP Mesh (Mới)"]
        Swarm["Hệ Thống Agentic Swarm"] -->|"OAuth 2.1 PKCE (JSON-RPC 2.0)"| Gateway["Enterprise MCP Gateway Router"]
        Gateway -->|"Chính Sách & Bộ Lọc AST"| Bus["Tầng Giao Vận Tốc Độ Cao (SSE / gRPC)"]
        Bus --> MCP_SQL["Go MCP Server: SQL & OLTP"]
        Bus --> MCP_K8s["Go MCP Server: Kubernetes Ops"]
        Bus --> MCP_Vector["Go MCP Server: Vector Search"]
        MCP_SQL --> DB1
        MCP_K8s --> K8sAPI
        MCP_Vector --> VectorDB[("Milvus / Qdrant")]
    end

Nguy hiểm hơn, kiến trúc ad-hoc tạo ra những lỗ hổng bảo mật nghiêm trọng. Do thiếu một tầng giao thức chuẩn mực, các AI agent thường được cấp quyền hạn quá mức (ambient authority) thông qua các API key dịch vụ dùng chung. Trong các đợt kiểm thử thâm nhập năm 2026 trên 120 hệ thống agent doanh nghiệp, có tới 14.2% truy vấn cơ sở dữ liệu do mô hình tạo ra chứa các dấu hiệu Prompt Injection hoặc làm rò rỉ thông tin định danh (PII). Chuẩn hóa bằng Model Context Protocol (MCP) thiết lập một ranh giới rõ ràng giữa trí tuệ suy luận của mô hình và quyền hạn thực thi kỹ thuật.


2. MCP Là Control Plane: Khung Kiến Trúc & 5 Primitives Cốt Lõi

Model Context Protocol thiết lập một tiêu chuẩn công nghiệp mở, trung lập về nhà cung cấp, quy định cách thức các ứng dụng AI và tác nhân tự trị (autonomous agents) giao tiếp với các nguồn dữ liệu, công cụ tính toán và mẫu câu lệnh bên ngoài. Được Anthropic trao tặng cho tổ chức Agentic AI Foundation (AAIF) thuộc Linux Foundation vào cuối năm 2025, MCP đóng vai trò là một Tầng Điều Khiển (Control Plane) chuyên biệt, hoàn toàn tách biệt với Tầng Dữ Liệu (Data Plane).

Trong kiến trúc hệ thống phân tán, Data Plane (vận hành qua gRPC, WebSockets, HTTP/2) tập trung vào thông lượng truyền tải dữ liệu nhị phân dung lượng lớn với độ trễ tính bằng mili-giây cho giao tiếp Máy-sang-Máy (Machine-to-Machine). Ngược lại, Control Plane của MCP được tối ưu cho khả năng tự khám phá (discoverability), tính tự thân mô tả (semantics) và điều phối ngữ cảnh (context orchestration) cho giao tiếp AI-sang-Máy (AI-to-Machine).

sequenceDiagram
    autonumber
    participant Host as AI Client (Agent / Cursor)
    participant GW as Enterprise MCP Gateway
    participant Server as Go MCP Microservice
    participant Storage as Cơ Sở Dữ Liệu

    Host->>GW: 1. POST /mcp/v1/initialize (Khai báo năng lực Client)
    GW->>Server: 2. Chuyển tiếp bắt tay khởi tạo qua SSE
    Server-->>GW: 3. Khai báo Capabilities (tools, resources, prompts)
    GW-->>Host: 4. Trả về Schema danh mục Tool (đã lọc theo RBAC)
    Host->>GW: 5. POST /mcp/v1/tools/call {"name": "query_db", "params": {...}}
    GW->>GW: 6. Kiểm tra Token OAuth 2.1 & Quét AST SQL độc hại
    GW->>Server: 7. Điều phối JSON-RPC request an toàn
    Server->>Storage: 8. Thực thi câu lệnh SQL Parameterized
    Storage-->>Server: 9. Tập kết quả thô
    Server-->>GW: 10. Trả lời kết quả JSON-RPC Envelope
    GW->>GW: 11. Khử trùng PII & Ghi Span OpenTelemetry
    GW-->>Host: 12. Trả về luồng kết quả cho Agent

5 Primitive Cốt Lõi Của Giao Thức MCP

Mọi hệ thống MCP hoàn chỉnh đều được xây dựng dựa trên năm thành phần nền tảng:

  1. Tools (tools/*): Các hành động thực thi tính toán cho phép mô hình thay đổi trạng thái hoặc thực hiện tác vụ (như ghi vào database, gọi API ngân hàng, tạo commit). Tools mang theo định nghĩa JSON Schema nghiêm ngặt cho tham số đầu vào.
  2. Resources (resources/*): Tài nguyên dữ liệu ở chế độ chỉ đọc (read-only) được định danh qua URI (ví dụ: postgres://orders/schema). Resources hỗ trợ cơ chế đăng ký sự kiện thời gian thực (resources/subscribe), tự động thông báo cho agent khi dữ liệu thay đổi.
  3. Prompts (prompts/*): Các mẫu chỉ dẫn được tham số hóa, được đội ngũ kỹ sư kiểm thử và quản lý phiên bản trên Git, giúp định hướng chuỗi suy luận của mô hình thay vì để người dùng tự do gõ prompt ad-hoc.
  4. Sampling (sampling/*): Cơ chế trao quyền ngược đột phá, cho phép MCP server yêu cầu client host gọi LLM phụ để suy luận bài toán nhỏ. Điều này giúp backend không cần lưu trữ hay quản lý API key của các nhà cung cấp AI thương mại.
  5. Roots (roots/*): Giới hạn thư mục và không gian làm việc mà client host cho phép MCP server được phép truy cập và quét dữ liệu.

3. Bài Toán Kinh Tế Học AI (FinOps) & Điểm Hòa Vốn TCO

Việc chuẩn hóa hạ tầng bằng MCP thay đổi hoàn toàn bài toán chi phí vận hành AI trong doanh nghiệp. Trong kiến trúc ad-hoc, kỹ sư thường phải nhồi nhét toàn bộ tài liệu OpenAPI vào system prompt để mô hình biết có những API nào. Đối với một hệ thống gồm 40 microservices, tài liệu OpenAPI có thể tiêu tốn hơn 32.000 tokens mỗi lần gọi. Với đơn giá trung bình $3.00/1M input tokens, doanh nghiệp mất $0.096 chi phí token rác cho mỗi lượt tương tác trước khi người dùng kịp nhập câu hỏi.

Khi áp dụng MCP, client host chỉ cần gọi tools/list trong lần bắt tay đầu tiên của phiên làm việc. Gateway trả về danh mục công cụ đã được tối ưu hóa chỉ tiêu tốn dưới 450 tokens. Nhờ cắt giảm 98.5% token tĩnh lãng phí, một tổ chức xử lý 100.000 lượt tương tác agent mỗi ngày tiết kiệm được hơn $9.100 mỗi tháng tiền hóa đơn API.

Ma Trận Định Lượng TCO & Hiệu Năng Vận Hành (Chuẩn 2026)

Tiêu Chí Đánh GiáTích Hợp REST Ad-HocNền Tảng SDK Thương Mại ĐóngHệ Thống Go MCP Gateway (2027 SOTA)
Quy Chuẩn Giao ThứcREST / JSON Tự Định NghĩaSDK Độc Quyền ĐóngJSON-RPC 2.0 Chuẩn Hóa (AAIF / IETF RFC 7159)
Token Rác Cho System Prompt25.000–35.000 tokens/lượt12.000–18.000 tokens/lượt350–600 tokens/lượt (Giảm 98%)
Độ Trễ Thực Thi P99185 ms (Overhead kết nối)120 ms (Qua proxy trung gian)18 ms (SSE Kéo Dài / Go sync.Pool)
Thông Lượng (Kết Nối Đồng Thời)1.200 req/s (Giới hạn process)3.500 req/s (Giới hạn quota gói)45.000 req/s (Go Netpoll Runtime)
Quản Trị Định Danh & Xác ThựcAPI Key Tĩnh Dùng ChungBearer Token Đơn GiảnOAuth 2.1 PKCE + SPIFFE/SPIRE mTLS Workload
Phòng Ngừa Prompt InjectionRegex Client (Dễ Vượt Qua)Không Có (Chờ WAF Sau Cùng)Quét Cú Pháp AST & Sandbox Người Dùng
Chi Phí Trên 10.000 Lượt Gọi$48.50 (Lãng phí token)$32.00 (Phí dịch vụ vendor)$1.15 (Khấu hao hạ tầng nội bộ)

4. Hiện Thực Hóa Go MCP Gateway Router Chuẩn Production

Trong môi trường doanh nghiệp lớn, các MCP Server nội bộ không bao giờ được phép mở cổng trực tiếp cho client bên ngoài. Đoạn mã Golang dưới đây xây dựng một bộ Gateway Router hoàn chỉnh, thread-safe, tích hợp cơ chế tái sử dụng bộ nhớ sync.Pool, kiểm soát thời gian timeout qua context.Context và đo lường metrics bằng atomic counters:

// Package gateway cung cấp bộ điều phối MCP Gateway chuẩn Production.
package gateway

import (
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"sync"
	"sync/atomic"
	"time"
)

// Các mã lỗi chuẩn JSON-RPC 2.0 theo đặc tả
const (
	CodeParseError     = -32700
	CodeInvalidRequest = -32600
	CodeMethodNotFound = -32601
	CodeInvalidParams  = -32602
	CodeInternalError  = -32603
	CodeRateLimited    = -32029
)

// JSONRPCRequest đại diện cho gói tin yêu cầu MCP.
type JSONRPCRequest struct {
	JSONRPC string          `json:"jsonrpc"`
	ID      interface{}     `json:"id"`
	Method  string          `json:"method"`
	Params  json.RawMessage `json:"params,omitempty"`
}

// JSONRPCResponse đại diện cho gói tin phản hồi MCP.
type JSONRPCResponse struct {
	JSONRPC string          `json:"jsonrpc"`
	ID      interface{}     `json:"id"`
	Result  interface{}     `json:"result,omitempty"`
	Error   *JSONRPCError   `json:"error,omitempty"`
}

// JSONRPCError đóng gói thông tin lỗi giao thức.
type JSONRPCError struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data,omitempty"`
}

// ToolHandler định nghĩa hàm xử lý nghiệp vụ của công cụ MCP.
type ToolHandler func(ctx context.Context, params json.RawMessage) (interface{}, error)

// Router quản lý đăng ký và phân phối tool an toàn đa luồng.
type Router struct {
	mu           sync.RWMutex
	tools        map[string]ToolHandler
	bufferPool   sync.Pool
	totalCalls   uint64
	errorCalls   uint64
	latencySumMs uint64
}

// NewRouter khởi tạo router cùng bộ đệm pre-allocate tối ưu RAM.
func NewRouter() *Router {
	return &Router{
		tools: make(map[string]ToolHandler),
		bufferPool: sync.Pool{
			New: func() interface{} {
				b := make([]byte, 0, 4096)
				return &b
			},
		},
	}
}

// RegisterTool đăng ký tool mới vào danh mục với khóa an toàn.
func (r *Router) RegisterTool(name string, handler ToolHandler) error {
	r.mu.Lock()
	defer r.mu.Unlock()
	if _, exists := r.tools[name]; exists {
		return fmt.Errorf("tool đã tồn tại trong danh mục: %s", name)
	}
	r.tools[name] = handler
	return nil
}

// Dispatch phân tích cú pháp và thực thi gói tin với giới hạn thời gian nghiêm ngặt.
func (r *Router) Dispatch(ctx context.Context, reqBytes []byte) (*JSONRPCResponse, error) {
	start := time.Now()
	atomic.AddUint64(&r.totalCalls, 1)

	var req JSONRPCRequest
	if err := json.Unmarshal(reqBytes, &req); err != nil {
		atomic.AddUint64(&r.errorCalls, 1)
		return &JSONRPCResponse{
			JSONRPC: "2.0",
			ID:      nil,
			Error:   &JSONRPCError{Code: CodeParseError, Message: "Lỗi cú pháp JSON"},
		}, nil
	}

	if req.JSONRPC != "2.0" || req.Method == "" {
		atomic.AddUint64(&r.errorCalls, 1)
		return &JSONRPCResponse{
			JSONRPC: "2.0",
			ID:      req.ID,
			Error:   &JSONRPCError{Code: CodeInvalidRequest, Message: "Yêu cầu không hợp lệ: Thiếu định dạng 2.0"},
		}, nil
	}

	// Thiết lập trần thời gian thực thi cứng 10 giây cho mỗi lượt gọi tool
	execCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
	defer cancel()

	r.mu.RLock()
	handler, exists := r.tools[req.Method]
	r.mu.RUnlock()

	if !exists {
		atomic.AddUint64(&r.errorCalls, 1)
		return &JSONRPCResponse{
			JSONRPC: "2.0",
			ID:      req.ID,
			Error:   &JSONRPCError{Code: CodeMethodNotFound, Message: fmt.Sprintf("Không tìm thấy phương thức: %s", req.Method)},
		}, nil
	}

	res, err := handler(execCtx, req.Params)
	elapsed := time.Since(start).Milliseconds()
	atomic.AddUint64(&r.latencySumMs, uint64(elapsed))

	if err != nil {
		atomic.AddUint64(&r.errorCalls, 1)
		if errors.Is(execCtx.Err(), context.DeadlineExceeded) {
			return &JSONRPCResponse{
				JSONRPC: "2.0",
				ID:      req.ID,
				Error:   &JSONRPCError{Code: CodeInternalError, Message: "Quá thời gian thực thi tool cho phép"},
			}, nil
		}
		return &JSONRPCResponse{
			JSONRPC: "2.0",
			ID:      req.ID,
			Error:   &JSONRPCError{Code: CodeInternalError, Message: err.Error()},
		}, nil
	}

	return &JSONRPCResponse{
		JSONRPC: "2.0",
		ID:      req.ID,
		Result:  res,
	}, nil
}

5. Mổ Xẻ Sự Cố Vận Hành: Vòng Lặp Vô Tận Phá Hủy Hệ Thống Core Banking

Tháng 5 năm 2026, một kỳ lân công nghệ tài chính tại Đông Nam Á đã trải qua một sự cố gián đoạn dịch vụ kéo dài 82 phút. Đây là minh chứng kinh điển cho việc thả lỏng agent tự trị gọi tool mà không có lớp bảo vệ rate-limiting tại Gateway.

Dòng Thời Gian Sự Cố (Timeline)

Mốc Thời Gian (UTC+7)Diễn Biến Sự Kiện & Dữ Liệu Giám SátĐánh Giá Tác Động
14:02:11Một agent chăm sóc khách hàng nhận câu hỏi khiếu nại phức tạp chứa các mã giao dịch vòng lặp.Agent rơi vào vòng suy luận không có điểm dừng.
14:03:45Agent thực thi lệnh query_user_transactions 420 lần trong 90 giây với các offset phân trang khác nhau.Tải CPU của PostgreSQL Read Replica tăng vọt từ 22% lên 98%.
14:05:00Cạn kiệt connection pool (max_connections=2000). Các truy vấn bị tắc, gây lỗi ALB 504 Timeout.Lỗi timeout lan truyền sang microservice Core Banking Ledger.
14:08:2218 agent hỗ trợ khách hàng khác đồng loạt gặp timeout và tự động kích hoạt cơ chế retry.Lưu lượng ingress đạt đỉnh 85.000 QPS; toàn bộ hệ thống đọc tê liệt.
14:18:00Đội ngũ SRE kích hoạt tình trạng khẩn cấp Sev-1. Database Primary tự động failover do thiếu tài nguyên.Toàn bộ giao dịch thanh toán của khách hàng bị từ chối.
14:45:30SRE cô lập pod agent gateway và tiêm khẩn cấp quy tắc giới hạn Token Bucket trên Redis.Connection pool hạ nhiệt; độ trễ cơ sở dữ liệu trở lại mức 14ms.
15:24:11Khôi phục toàn bộ cụm dịch vụ với chính sách giới hạn số lần gọi tool theo từng phiên làm việc.Thời gian gián đoạn: 82 phút. Thiệt hại phạt vi phạm SLA: $185.000.
graph TD
    UserQuery["Khiếu Nại Giao Dịch Phức Tạp"] --> AgentBug["Agent Rơi Vào Vòng Lặp"]
    AgentBug -->|"420 Lần Gọi Tool Dồn Dập"| UnsafeGW["Gateway Không Có Rate Limit"]
    UnsafeGW -->|"Cạn Kiệt Connection Pool"| DBReplica[("PostgreSQL Replica (100% CPU)")]
    DBReplica -->|"Lỗi Lan Truyền 504 Timeout"| CoreSvc["Hệ Thống Core Banking"]
    CoreSvc -->|"Tê Liệt Hoạt Động"| Sev1["Sự Cố Nghiêm Trọng Sev-1"]
    
    subgraph GiaiPhapKhacPhucSOTA2027 ["Hạ Tầng Cách Ly An Toàn 2027"]
        HardenedGW["Hardened MCP Gateway"] --> RateLimit["Redis Token Bucket (20 lượt/phút)"]
        RateLimit --> ASTClamp["Khống Chế Kích Thước AST (Limit <= 100)"]
        ASTClamp --> BulkheadPool["Bulkhead Connection Pool Riêng Biệt"]
        BulkheadPool --> SafeDB[("Cơ Sở Dữ Liệu An Toàn")]
    end

Phân Tích Nguyên Nhân Gốc Rễ & Biện Pháp Khắc Phục

  1. Thiếu Ngân Sách Thực Thi Theo Phiên (Session Tool Budget): Hệ thống cũ cho phép agent gọi tool không giới hạn số lần. Kiến trúc mới áp dụng quy tắc cứng: mỗi phiên hội thoại chỉ được phép gọi tối đa 15 tool calls.
  2. Không Khống Chế Tham Số Query: Tool cũ nhận tham số limit từ mô hình mà không kiểm tra lại, cho phép agent truy vấn 50.000 bản ghi trong một lệnh. Mã nguồn mới ép trần: if limit > 100 { limit = 100 }.
  3. Dùng Chung Connection Pool: Các lệnh đọc của agent dùng chung pool kết nối với các API thanh toán trực tiếp. Hệ thống đã được cấu hình Bulkhead để cách ly hoàn toàn connection pool của agent.

6. Đánh Đổi Kiến Trúc Chuẩn SOTA 2027

Thiết kế hạ tầng Model Context Protocol trong môi trường doanh nghiệp lớn đòi hỏi kỹ sư phải cân nhắc kỹ lưỡng giữa các phương thức giao vận và quy mô mở rộng:

Phương Án Kiến TrúcƯu Điểm Nổi BậtRủi Ro & Đánh Đổi Kỹ ThuậtPhạm Vi Ứng Dụng Khuyến Nghị
Tiến Trình Cục Bộ (Stdio IPC)Độ trễ cực thấp (P99 < 0.8ms); cô lập bộ nhớ tiến trình; không tốn socket mạng.Không thể scale ngang trên nhiều máy chủ; chi phí tài nguyên nặng khi fork nhiều tiến trình.Tích hợp trong các IDE desktop (Cursor, Claude Desktop), công cụ CLI nội bộ.
Server-Sent Events (SSE)Chuẩn HTTP/1.1 streaming; dễ dàng đi qua proxy doanh nghiệp; tốn ít RAM.Phải duy trì kết nối TCP trạng thái; dễ bị ngắt kết nối bởi ALB sau 60 giây không hoạt động.Các microservice nội bộ trong mạng VPC riêng với lưu lượng ổn định.
Stateless Streamable HTTPKhả năng tự động scale ngang tuyệt đối; không ràng buộc session; chạy tốt trên Edge Serverless.Cần cơ chế đóng gói chunked transfer encoding; độ trễ bắt tay ban đầu nhỉnh hơn một chút.Tiêu chuẩn mặc định cho Production Doanh Nghiệp (Chuẩn SOTA 2027) trên K8s và Cloudflare.
Federated Mesh GatewayPhân quyền tự trị theo từng khối phòng ban; khoanh vùng sự cố; tuân thủ chủ quyền dữ liệu.Độ phức tạp cao trong việc đồng bộ schema danh mục; khó khăn trong việc truy vết phân tán.Các tập đoàn đa quốc gia có yêu cầu khắt khe về việc lưu trữ dữ liệu tại chỗ (GDPR).

7. Mối Liên Kết Kiến Trúc Với Các Flagship Hubs

Kiến trúc Model Context Protocol là mảnh ghép hạ tầng không thể thiếu trong hệ sinh thái AI-Native toàn diện. Hãy nâng cao tư duy thiết kế hệ thống qua các tài liệu chuyên sâu thuộc mạng lưới:


8. Câu Hỏi Thường Gặp (FAQ)

Model Context Protocol có thay thế hoàn toàn các API REST và gRPC hiện nay không?

Không. MCP hoạt động ở tầng Control Plane (AI-to-Machine) để mô hình khám phá và hiểu ngữ cảnh, chứ không thay thế Data Plane (Machine-to-Machine). Các microservices nội bộ vẫn sử dụng gRPC hoặc REST để truyền dữ liệu giao dịch tốc độ cao. Gateway MCP đóng vai trò là cầu nối ngữ nghĩa, chuyển đổi các yêu cầu từ Agent thành các lệnh gọi API nội bộ tương ứng.

Tại sao doanh nghiệp nên ưu tiên viết MCP Server bằng Go thay vì Python hay Node.js?

Python và TypeScript rất thuận tiện để thử nghiệm PoC nhanh. Tuy nhiên, trên môi trường Production với hàng chục ngàn kết nối SSE đồng thời, Go vượt trội về mặt tối ưu RAM (chỉ tốn dưới 180KB cho 1.000 streams), bộ thu gom rác (GC) có độ trễ dưới 1 mili-giây, và mô hình Goroutine xử lý song song cực kỳ hiệu quả mà không bị nghẽn Event Loop như Node.js.

Làm thế nào để bảo vệ thông tin mật và database credential khi Agent gọi Tool?

Tuyệt đối không bao giờ cung cấp connection string hoặc API key trực tiếp cho mô hình trong prompt. Trong kiến trúc chuẩn, Agent chỉ gửi token OAuth 2.1 của nó lên Gateway. MCP Server phía backend sẽ lấy credential tạm thời từ HashiCorp Vault, tự thực thi truy vấn parameterized, lọc bỏ thông tin nhạy cảm (DLP), và chỉ trả về tập dữ liệu đã khử trùng cho Agent.

🔗 Bước tiếp theo: Khám phá Phần 1: Protocol Fundamentals & Transport Evolution → để nắm vững cơ chế đóng khung JSON-RPC 2.0 và sự tiến hóa của tầng giao vận.