Kết nối AI Agent với remote MCP server (2026)

Piotr Grudzień
Ngày đăng Thời gian đọc: 25 phút
Kết nối AI Agent của bạn với remote MCP server: chọn server, bật công cụ của server, xem agent trả lời

AI Agent của bạn trả lời dựa trên knowledge bạn cung cấp. Một số câu hỏi cần thông tin không phù hợp để đưa vào knowledge base: thứ gì đó hiện tại, thứ gì đó được tính toán, hoặc thứ gì đó nằm trong một hệ thống bạn không sở hữu. Remote MCP server là cách Agent của bạn truy xuất thông tin đó ngay giữa cuộc hội thoại. Hướng dẫn này kết nối một Quickchat AI Agent với một server như vậy, không cần code, trên gói miễn phí: bạn sẽ chọn một server từ catalog hơn 240 server, chỉ bật đúng một công cụ của nó, điều hướng nó bằng một đoạn prompt, và xem lệnh gọi thật diễn ra trong Inbox.

Chúng ta sẽ xây dựng thật. Ví dụ dùng Hoist, một API upload file có thể resume cho developer, và DeepWiki, một MCP server công khai của Cognition có thể trả lời câu hỏi về bất kỳ repository GitHub công khai nào. Mọi cài đặt, URL, và prompt bên dưới là đúng những gì đã được dùng để tạo ảnh chụp màn hình. Nếu bạn đã có agent, các bước tương tự sẽ kết nối nó với bất kỳ server live nào trong bảng bên dưới, và nếu bạn muốn giao phần nhấp chuột cho người khác, một AI assistant có thể xây dựng toàn bộ thiết lập này cho bạn qua MCP server riêng của Quickchat AI.

Đây là phần thực hành của một cặp bài. Nếu bạn muốn đọc nền tảng giao thức trước, hãy xem MCP là gì và hoạt động thế nào; hướng dẫn này tập trung vào cách thực hiện.

Bạn sẽ xây dựng gì

Một Agent hỗ trợ cho Hoist làm hai việc. Nó trả lời các câu hỏi riêng của Hoist (gói, giới hạn kích thước file, vùng lưu trữ, webhooks) từ knowledge base của nó. Và khi khách truy cập hỏi thư viện mã nguồn mở tus-js-client hoạt động thế nào, thư viện mà khách hàng của Hoist cài trong ứng dụng của họ, nó gọi một remote MCP tool để trả lời từ source live của thư viện đó trên GitHub, rồi liên hệ câu trả lời trở lại việc dùng Hoist.

Trường hợp thứ hai là điểm chính. Bạn không thể và không nên sao chép toàn bộ nội bộ của một thư viện upstream vào knowledge base, nhưng Agent của bạn có thể tra cứu chúng theo nhu cầu.

Bạn cần hai thứ: tài khoản Quickchat AI miễn phí (đăng ký tại đây) và khoảng mười lăm phút. URL server, danh sách công cụ được phép, và prompt đều có trong hướng dẫn này.

AI agent kết nối với remote MCP server như thế nào?

Một remote MCP action trỏ Agent của bạn tới một server, khám phá các công cụ server đó cung cấp, và cho phép bạn chọn những công cụ Agent được phép gọi.

MCP, Model Context Protocol, là cách tiêu chuẩn để một server cung cấp một tập công cụ cho AI. Server công bố tên, mô tả, và các đối số của từng công cụ; bất kỳ MCP client nào cũng có thể liệt kê các công cụ đó và gọi chúng. Khi ChatGPT hoặc Claude cung cấp cùng các server này dưới dạng connectors trong phần cài đặt, đây là cơ chế phía sau từ đó. Toàn bộ thủ thuật chỉ có vậy, và đó là lý do một màn hình kết nối hoạt động giống nhau cho server lịch hẹn, server thanh toán, và server tài liệu.

Ba việc xảy ra khi Agent của bạn dùng remote MCP tool.

Luồng một lệnh gọi remote MCP tool từ model, qua whitelist của Quickchat, tới server Luồng ba bước: model chọn công cụ, Quickchat AI áp dụng whitelist và auth của bạn, server chạy công cụ. Toàn bộ trao đổi xuất hiện trong Inbox.

  1. Agent của bạn, tức model, chọn một công cụ. Nó thấy mọi công cụ bạn đã bật, mỗi công cụ kèm mô tả do server viết, và quyết định khi nào gọi một công cụ, giống như cách nó quyết định dùng bất kỳ AI Action nào.
  2. Quickchat AI áp dụng quy tắc của bạn. Trước khi gửi bất kỳ thứ gì, nó kiểm tra whitelist công cụ của bạn, gắn connection headers hoặc OAuth token nếu server cần, và từ chối mọi địa chỉ server phân giải tới mạng nội bộ.
  3. Server chạy công cụ và trả dữ liệu. Agent dùng kết quả trong câu trả lời, và toàn bộ trao đổi được ghi lại trong Inbox.

Có hai loại giá trị đi vào một lệnh gọi công cụ, và việc phân biệt chúng sẽ quan trọng sau. Các giá trị integration điền là xác định: URL server, headers, và tokens, những thứ model không thể điền sai. Các giá trị model điền là quyết định theo ngữ cảnh: các đối số từng công cụ cần, chẳng hạn query tìm kiếm hoặc tên repository, những thứ nó có thể điền sai. Mọi thứ trong phần tinh chỉnh đều quay lại sự phân tách này.

MCP đã thay đổi gì trong 2026

Nếu lần cuối bạn đọc về MCP là khi mọi tutorial đều nhắc tới SSE, nền tảng đã thay đổi. Bản sửa đổi đặc tả 2026-07-28 đã làm core protocol trở thành stateless, loại bỏ session header khỏi streamable HTTP, và deprecated transport HTTP-plus-SSE cũ với một giai đoạn chuyển đổi (changelog ngắn và đáng đọc lướt, và Claude hỗ trợ trong cùng tuần). Hệ quả thực tế cho bạn khá đơn giản: remote MCP server giờ chỉ là một endpoint HTTPS thông thường, không khác gì thao tác với bất kỳ web service nào khác. Quickchat AI dùng streamable HTTP, và vẫn fallback về transport SSE legacy khi URL path của server kết thúc bằng /sse, nên các server cũ vẫn hoạt động.

Dòng thời gian của MCP remote transport: HTTP cộng SSE lúc ra mắt, streamable HTTP vào tháng 3 năm 2025, stateless core vào ngày 28 tháng 7 năm 2026 Ba bản sửa đổi đã đưa remote MCP từ một cặp SSE có session thành một endpoint HTTPS stateless. Dấu ngoặc là lộ trình 12 tháng của HTTP cộng SSE.

Bước 1: Tạo Agent và cấp knowledge base cho nó

Bắt đầu với một support Agent hoạt động được, để nó có nội dung riêng để trả lời trước khi bạn thêm công cụ live.

Tạo tài khoản miễn phí và AI Agent mới, rồi đặt tên cho nó (của chúng tôi là Hoist). Trong Identity, đặt nhiệm vụ của nó trong AI Main Prompt (prompt đầy đủ nằm ở Bước 4).

Trang Identity: tên của Agent và AI Main Prompt Trang Identity của Hoist. Tên và AI Main Prompt là hai trường hướng dẫn này điền; Guidelines chứa các thông tin sản phẩm.

Sau đó thêm một knowledge base ngắn: hai gói của Hoist và giới hạn của chúng, cách lấy API key, vùng lưu trữ, và webhook upload.completed. Đây là đường cơ sở. Mọi thứ Agent đã có thể trả lời, nó nên trả lời từ đây. MCP tool chỉ dành cho các câu hỏi mà knowledge này không thể chứa.

Bạn nên kết nối remote MCP server nào trước?

Chọn server có công cụ trả lời được các câu hỏi knowledge base của bạn không thể trả lời, và ưu tiên server keyless cho kết nối đầu tiên để bạn có thể hoàn tất trong một phiên.

Trong Agent của bạn, mở Actions & MCPs, nhấp Add Action, và chọn MCP. Thứ đầu tiên bạn thấy là catalog: hơn 240 remote MCP server có tìm kiếm và danh mục, từ lịch hẹn và CRM đến thanh toán, thương mại điện tử, và công cụ developer.

Catalog MCP bên trong Quickchat AI: tìm kiếm, danh mục, và các ô server kết nối bằng một lần nhấp Catalog MCP: 242 server phía sau một ô tìm kiếm. Chọn một ô sẽ bắt đầu kết nối ngay.

Ba chi tiết trong màn hình này đáng biết:

  • Mỗi ô là một lần nhấp. Chọn một ô sẽ điền URL của server và kết nối ngay; không có gì cần cấu hình trước.
  • Huy hiệu lấp lánh nghĩa là “Tuned by Quickchat”. Với các server đó, Quickchat AI cung cấp bộ công cụ được khuyến nghị: ví dụ kết nối Calendly, chỉ năm công cụ mà agent thực sự cần cho lập lịch được bật trong vài chục công cụ của nó, với các mặc định hợp lý bạn có thể reset về bất kỳ lúc nào bằng Use recommended.
  • Catalog được tuyển chọn, không phải toàn bộ. Các server cần URL theo từng cửa hàng hoặc từng instance nằm sau Enter a URL manually ở cuối, mục này chấp nhận bất kỳ MCP server nào trên internet.

Catalog thiên về các server có ích cho khách hàng của bạn. Trong tutorial này chúng ta dùng DeepWiki, nằm trong danh mục Search & web, và vì “server nào thực sự đáng kết nối” là câu hỏi mà mọi bài danh sách thường né tránh, đây là danh sách của chúng tôi, đã được kiểm thử thay vì tái chế.

Tám remote MCP server keyless bạn có thể thử hôm nay

Mỗi server này đã trả lời một yêu cầu MCP initialize thật vào ngày 28 tháng 8 năm 2026. Không tài khoản, không key: dán URL, hoặc nhấp ô catalog của nó, là bạn được kết nối.

ServerCông cụ của server làm gìURL
DeepWiki (Cognition)Trả lời câu hỏi về bất kỳ repository GitHub công khai nàohttps://mcp.deepwiki.com/mcp
Context7 (Upstash)Tra cứu tài liệu hiện tại cho các thư viện phần mềmhttps://mcp.context7.com/mcp
Hugging FaceTìm kiếm models, datasets, và papershttps://huggingface.co/mcp
Microsoft LearnTìm kiếm tài liệu chính thức của Microsofthttps://learn.microsoft.com/api/mcp
Cloudflare DocsTìm kiếm tài liệu của Cloudflarehttps://docs.mcp.cloudflare.com/mcp
GitMCPĐọc docs và code của bất kỳ GitHub repo nàohttps://gitmcp.io/{owner}/{repo}
FirecrawlScrape và tìm kiếm webhttps://mcp.firecrawl.dev/mcp
ExaTìm kiếm web neuralhttps://mcp.exa.ai/mcp

Mỗi tên server liên kết tới tài liệu chính thức của nó. Ngoài tầng keyless, các server gắn với tài khoản mà bạn đã nghe tới (GitHub, Linear, Notion, Stripe, Sentry, Atlassian, PayPal, Canva) cũng đang live; chúng xác thực bằng popup OAuth thay vì key. Một cảnh báo từ việc kiểm thử toàn bộ phần này: vài bài tổng hợp “best MCP servers” lưu hành các endpoint không phản hồi, hoặc domain hoàn toàn không phân giải, vì danh sách này sao chép danh sách khác. Hãy tin URL trả lời yêu cầu initialize, hoặc một catalog có người bảo trì, hơn là một bài listicle. Server hosted của Notion là lựa chọn gắn với tài khoản tốt để bắt đầu: kết nối nó với help-center agent chỉ cần một phê duyệt OAuth và hai công cụ được bật, và việc ghi ngược vào Notion database cho thấy lợi ích của việc tuyển chọn công cụ.

Kết nối server bằng một lần nhấp

Với server keyless, kết nối là bước ngắn nhất trong hướng dẫn này.

Tìm DeepWiki trong catalog (ô tìm kiếm là nhanh nhất) và nhấp ô của nó.

Tìm DeepWiki trong catalog Tìm kiếm lọc catalog khi bạn gõ: còn một kết quả, một lần nhấp để kết nối.

Quickchat AI liên hệ server, xác minh server nói MCP, và liệt kê các công cụ tìm thấy, tất cả trong vài giây.

Nhấp ô DeepWiki: Quickchat AI kiểm tra server và khám phá công cụ của nó Quá trình probe đang chạy: Quickchat AI xác minh server nói MCP và liệt kê công cụ, trong ngân sách 20 giây.

Khi kiểm tra hoàn tất, action được tạo và tự động bật. DeepWiki công bố ba công cụ, và cả ba đều được bật, chúng ta sẽ cắt gọn ngay sau đây.

Nếu server của bạn không có trong catalog, nhấp Enter a URL manually. Bạn sẽ có cùng kết nối với hai trường:

Nhập thủ công: trường MCP server URL và connection headers tùy chọn Đường dẫn thủ công: MCP server URL, Connection headers tùy chọn cho server dùng key, và Connect.

  • MCP server URL là endpoint, trong trường hợp của chúng ta là https://mcp.deepwiki.com/mcp. HTTPS là bắt buộc, và URL phân giải tới địa chỉ private hoặc internal sẽ bị từ chối ngay.
  • Connection headers (optional) là nơi đặt key nếu server của bạn cần, ví dụ Key là Authorization và Value là Bearer YOUR_TOKEN. Quickchat AI lưu header và gắn nó vào mọi request ở phía server, nên token không bao giờ xuất hiện trong prompt hoặc cuộc hội thoại.

Nếu server cần đăng nhập thì sao?

Nhiều server hữu ích nhất gắn với tài khoản: lịch hẹn, thanh toán, CRM. Với chúng, không có key nào để dán. Kết nối tới một server như Calendly và Quickchat AI phát hiện OAuth challenge rồi hướng dẫn bạn qua quy trình:

Một OAuth server: Quickchat AI phát hiện cần ủy quyền và cung cấp popup Connect with Calendly Phát hiện OAuth server: không có key để dán, chỉ có Connect with Calendly và một popup phê duyệt.

Nhấp Connect with Calendly, phê duyệt quyền truy cập trong popup, và các công cụ xuất hiện, giống như luồng keyless. Bên dưới, đây là OAuth 2.1 với dynamic client registration và PKCE: Quickchat AI tự đăng ký với server, trao đổi mã dùng một lần, lưu token đã mã hóa, và refresh token cho bạn. Bạn có thể Reconnect hoặc Disconnect từ action bất kỳ lúc nào, và nếu bạn đóng cửa sổ giữa lúc ủy quyền, kết nối sẽ tiếp tục từ nơi bạn dừng.

Chúng tôi đã xây dựng một agent hoàn chỉnh trên OAuth server trong một hướng dẫn riêng: AI scheduling assistant trên MCP server của Calendly, kiểm tra availability thật và đặt cuộc họp thật.

Chọn công cụ Agent được phép gọi

Panel Tools là nơi bạn cấp quyền tối thiểu, và là màn hình quan trọng nhất trong hướng dẫn này.

Mở action bạn vừa tạo (Edit Action trên card của nó) và tìm mục Tools. Nó liệt kê mọi công cụ server công bố, với công tắc cho từng công cụ và bộ đếm ở đầu.

Panel Tools cho DeepWiki: bật một trong ba công cụ, và tắt Default tool activation Quyền tối thiểu trong một panel: bật ask_question, tắt hai công cụ còn lại, và tắt Default tool activation để công cụ tương lai chờ bạn xem xét.

DeepWiki công bố ba công cụ:

ToolChức năngHoist có cần không?
ask_questionNhận repo và câu hỏi, trả về câu trả lời dựa trên sourceCó
read_wiki_structureNhận repo, trả về outline tài liệu của repoKhông
read_wiki_contentsNhận repo, trả về tài liệu của repoKhông

Chỉ bật ask_question. Hai công cụ còn lại không gây hại, nhưng mỗi công cụ được bật là thêm một thứ model có thể dùng, thêm một mô tả trong context, và thêm một hành vi bạn phải kiểm thử. Công cụ đang tắt không tồn tại đối với model.

Sau đó tắt Default tool activation. Toggle đó quyết định điều gì xảy ra với các công cụ server thêm trong tương lai: tắt nghĩa là công cụ mới vẫn bị disable cho đến khi bạn xem xét. Việc này quan trọng hơn vẻ ngoài của nó. Remote server là phần mềm do người khác cập nhật; danh sách công cụ bạn phê duyệt hôm nay không phải hợp đồng. Thế giới npm đã học điều này theo cách khó khi một package MCP được đánh giá tốt phát hành các bản sạch trong nhiều tháng rồi âm thầm thêm exfiltration email (sự cố postmark-mcp; phần an toàn nói thêm về nó). Bạn không thể audit quy trình release của bên thứ ba, nhưng bạn có thể bảo đảm các năng lực mới của họ không âm thầm chảy vào Agent. Toggle này là bảo đảm đó.

Trên server Tuned by Quickchat, cùng panel này bắt đầu ở trạng thái được khuyến nghị: kết nối Calendly và năm trong 36 công cụ của nó được bật, phần còn lại tắt và Default tool activation đã tắt. Use recommended reset về bộ đã tuyển chọn đó sau khi bạn thử nghiệm. Với server lớn hơn, panel có thêm ô tìm kiếm, và Enable all cùng Disable all làm đúng như tên gọi.

Panel Tools cho server được tuyển chọn: bật 5 trong 36 công cụ, có Use recommended Server Tuned by Quickchat được cắt gọn sẵn: bật 5 trong 36 công cụ của Calendly, và Use recommended reset lựa chọn sau khi bạn thử nghiệm.

Cho Agent biết khi nào cần dùng công cụ

Main prompt là nơi duy nhất bạn kiểm soát khi công cụ chạy và nó hỏi về điều gì.

Đây là phần gây ngạc nhiên ngay cả với những người biết rõ MCP: các trường tên và mô tả của action là nhãn dành cho bạn, và model không bao giờ đọc chúng. Thứ model đọc là mô tả công cụ do server công bố, cộng với main prompt của Agent. Chúng tôi đã xác minh điều này từ code đang chạy và bằng một thử nghiệm đối kháng, trong phần tinh chỉnh bên dưới. Vì vậy việc điều hướng diễn ra ở đúng một nơi bạn kiểm soát. Trong Identity, dán nội dung này vào AI Main Prompt và thay bằng chi tiết sản phẩm của bạn:

Bạn là trợ lý hỗ trợ cho Hoist, một API upload file có thể resume dành cho developer. Hoist cung cấp cho developer một endpoint upload hosted, có thể resume, cùng với storage. Khách hàng upload file trực tiếp từ ứng dụng web và mobile của họ bằng thư viện mã nguồn mở tus-js-client, thư viện này dùng giao thức tus resumable upload để giao tiếp với Hoist.

Trả lời các câu hỏi về chính Hoist (gói và giới hạn, API keys, vùng lưu trữ, webhooks, retention) từ knowledge của bạn. Hãy ngắn gọn và thân thiện.

Nhiều khách hàng Hoist hỏi thư viện tus-js-client họ cài trong ứng dụng thực sự hoạt động thế nào: nó resume sau khi mất kết nối ra sao, nó fingerprint một file thế nào, cách đặt chunk size hoặc retry delays, và nó hỗ trợ những option nào. Hành vi đó nằm trong source code của thư viện, không nằm trong docs của Hoist. Khi khách truy cập hỏi một câu chi tiết về cách tus-js-client hoạt động, hãy gọi công cụ ask_question với repoName "tus/tus-js-client" và câu hỏi của họ, rồi trả lời bằng nội dung công cụ trả về, liên hệ nó trở lại việc dùng Hoist. Không dùng công cụ cho các câu hỏi về sản phẩm, giá, hoặc cài đặt tài khoản của chính Hoist.

Hai điều trong prompt đó làm việc chính. Nó nêu tên repository chính xác (tus/tus-js-client), vì repoName là đối số model điền trong mọi lệnh gọi, và một câu biến suy luận đó thành một hằng số (phần tinh chỉnh đo suy luận này đứng vững thế nào khi không có nó). Và nó giới hạn phạm vi công cụ vào câu hỏi nội bộ thư viện, để Agent tiếp tục trả lời các câu hỏi riêng của Hoist từ knowledge.

Một điều nữa model thấy, nhưng không xuất hiện trong prompt của ai: khi Agent có công cụ đã kết nối, Quickchat AI thêm một mục Connected Action Tools ngắn, thường trực vào system prompt với các quy tắc chung để dùng công cụ tốt. Prompt của bạn nằm trên policy đó, nên bạn viết khi nào và cái gì, còn nền tảng lo phần cách làm.

Kiểm thử và xem lệnh gọi công cụ diễn ra

Hỏi một câu chỉ source của thư viện mới trả lời được, rồi mở cuộc hội thoại và đọc lệnh gọi.

Trong AI Preview, hỏi: “Wifi của người dùng bị rớt giữa chừng khi upload. tus-js-client resume như thế nào?” Agent trả lời bằng cơ chế thực tế, rồi liên hệ nó trở lại Hoist.

Agent giải thích hành vi resume của tus-js-client và liên hệ với Hoist Hai trường hợp trong một thread: câu trả lời về thư viện liên hệ lại với Hoist, và câu hỏi sản phẩm bên dưới được trả lời từ knowledge, không có lệnh gọi công cụ.

Để chứng minh nó đã dùng công cụ, và không bịa câu trả lời đó, mở cuộc hội thoại trong Inbox của bạn và mở rộng bản ghi actions called.

Bản ghi action-call trong Inbox hiển thị lệnh gọi ask_question với repoName, câu hỏi, kết quả live, và thời lượng Bản ghi trung thực: ask_question với repoName chính xác và câu hỏi model đã viết, kết quả live, và thời lượng lệnh gọi.

Bạn thấy tên công cụ, các đối số chính xác model đã viết (repoName và question), kết quả live, và thời gian lệnh gọi mất. Đó là bản ghi trung thực: Agent đã gọi một công cụ thật trên một server thật và trả lời từ nội dung trả về.

Card của action cũng giữ số liệu: tổng số lệnh gọi đang chạy, tỷ lệ thành công, và lần chạy gần nhất.

Card action với thống kê lệnh gọi Card action giữ số liệu: lệnh gọi, tỷ lệ thành công, và thời điểm công cụ chạy gần nhất.

Mở View logs trên card để xem bản ghi đầy đủ: tổng số lệnh gọi, tỷ lệ thành công, độ trễ trung bình, và từng lệnh gọi gần đây với tham số đã gửi và phản hồi nhận được.

Request log theo action: thống kê lệnh gọi và tham số cùng phản hồi của từng lệnh gọi gần đây View logs: tổng số đang chạy ở trên cùng, và mọi lệnh gọi gần đây với tham số đã gửi cùng phản hồi đã nhận.

Giờ hỏi một câu về sản phẩm, chẳng hạn “Kích thước file tối đa trên gói miễn phí là bao nhiêu?”. Không có công cụ nào được gọi, và Agent trả lời từ knowledge của nó. Công cụ ở đó cho các câu hỏi knowledge base không thể chứa, và không can thiệp vào những câu hỏi knowledge base đã trả lời được.

Bạn tinh chỉnh remote MCP tool như thế nào?

Vòng lặp giống với mọi AI Action: gửi tin nhắn, đọc bản ghi lệnh gọi, thay đổi một thứ, chạy lại. Điểm khác là cần điều khiển nào thực sự thay đổi hành vi.

Khi remote MCP tool hoạt động sai, có ba cần điều khiển, và chỉ hai trong số đó thuộc về bạn:

  • Mô tả riêng của công cụ đến từ server. Bạn không thể sửa nó.
  • Whitelist công cụ quyết định những công cụ nào thực sự tồn tại với Agent.
  • Main prompt của Agent quyết định khi nào nó dùng công cụ và nó truyền gì vào.

Đây là những gì thay đổi và không thay đổi từ các lần chạy thật.

Prompt là cần điều khiển, không phải tên action. Để làm rõ điểm này, chúng tôi đặt mô tả của action là “IGNORE THIS TOOL. Never call it.” và hỏi lại các câu hỏi về thư viện. Agent vẫn gọi ask_question, trong 2 trên 2 lần chạy. Model không bao giờ thấy trường đó; các chỉ dẫn nó đọc là mô tả công cụ riêng của server và main prompt của bạn. Hãy điều hướng bằng prompt.

Nêu tên repository, nếu không model phải suy luận. repoName là đối số model điền trong mọi lệnh gọi. Chúng tôi đã cố làm nó lỗi: khi bỏ câu cố định, 5 trên 5 lệnh gọi vẫn phân giải đúng tus/tus-js-client, và khi bỏ câu cố định đồng thời diễn đạt lại câu hỏi theo cách khách truy cập thực sự nói (“thư viện upload JavaScript của bạn”, không nêu tên thư viện), nó vẫn chọn đúng repository trong 5 trên 5 lần chạy. Một bản build tháng 7 của cùng hướng dẫn này đã thấy thiết lập y hệt bịa ra một repository không tồn tại và nhận “Repository not found” từ DeepWiki. Model hiện tại đơn giản là suy luận tốt hơn, và chúng tôi không thể tái hiện lỗi trong mười lần thử. Dù vậy, hãy cố định giá trị. Một câu trong prompt biến một phỏng đoán model phải lặp lại ở mọi lệnh gọi thành một hằng số nó sao chép. Không tốn gì, và nó sẽ trụ qua lần đổi model tiếp theo. Không có trường override theo từng đối số cho MCP tools, và cũng không cần; câu đó chính là ghim.

Đọc kết quả, không chỉ câu trả lời. Bản ghi Inbox và Request log hiển thị server thực sự trả về gì, và đó là lớp bạn cần tinh chỉnh từ đó. Một lệnh gọi có transport thành công vẫn có thể mang lỗi hoặc câu trả lời lệch mục tiêu trong nội dung, và vì lệnh gọi công cụ thất bại được trả lại cho model thay vì cắt câu trả lời, Agent thường vẫn tạo một câu khôi phục nghe hợp lý trong cả hai trường hợp. Bản ghi cho bạn biết cần dùng cần điều khiển nào: không có lệnh gọi nào trỏ tới prompt hoặc whitelist, lệnh gọi có đối số sai trỏ tới một giá trị cần cố định, và kết quả tốt nhưng câu trả lời xấu trỏ ngược về prompt.

Kết quả công cụ có thể dùng cho câu trả lời sau không? Lưu vào memory

Với các công cụ trả về dữ liệu có cấu trúc, bạn có thể capture giá trị từ từng kết quả vào memory của cuộc hội thoại, nơi Agent có thể dùng chúng sau này.

Mở rộng bất kỳ dòng công cụ nào trong panel Tools và bạn sẽ thấy Save to memory: một danh sách quy tắc JSONPath, mỗi quy tắc ánh xạ một path trong kết quả công cụ tới một memory key, tối đa mười quy tắc cho mỗi công cụ.

Trình chỉnh sửa Save to memory theo từng công cụ trên công cụ đặt lịch của Calendly, với ba quy tắc capture được điền sẵn Công cụ đặt lịch của Calendly có sẵn ba quy tắc capture: event URI, cancel link, và reschedule link được đưa vào conversation memory.

Các công cụ của DeepWiki trả về văn bản, nên không có gì để capture trong build Hoist của chúng ta, và trình chỉnh sửa để trống. Nơi tính năng này nổi bật là các server giao dịch. Trên server Calendly đã được tuyển chọn, công cụ đặt lịch đi kèm ba quy tắc được điền sẵn: khi Agent đặt một cuộc họp, URI của event, cancel link, và reschedule link được capture. Hỏi hủy sau đó ba tin nhắn và Agent đã có chính xác URL hủy, không cần tra lại, không cần đoán. Giá trị đã capture trở thành một phần của dữ liệu cuộc hội thoại mà model đọc, đây là thứ gần nhất MCP tools có để đưa output của một công cụ vào đối số của công cụ tiếp theo.

Hai chi tiết cho người quan tâm tới bảo mật, vì tính năng này được xây dựng với một cuộc tấn công cụ thể trong đầu. Giá trị đã capture nằm trong namespace do phía server sở hữu, nên khách truy cập không thể giả mạo chúng bằng cách gõ thứ trông giống một memory entry. Và một capture thất bại, vì shape kết quả đã đổi hoặc path không match gì, không bao giờ làm model mất kết quả công cụ; câu trả lời vẫn tiếp tục và capture đơn giản là bị bỏ qua.

Kiểm thử ở quy mô lớn bằng Simulations

Một cuộc hội thoại chứng minh công cụ chạy. Để kiểm tra Agent xử lý cả một tập câu hỏi theo cách bạn muốn, dùng Simulation Testing, trong tab Testing.

Xây một dataset nhỏ trộn hai trường hợp: các câu hỏi nội bộ thư viện nên dùng công cụ, và các câu hỏi sản phẩm Agent nên trả lời từ knowledge. Cung cấp tiêu chí chấm điểm cho evaluator, và đưa thông tin sản phẩm thật vào đó, để nó phân biệt được gói hoặc vùng đúng với nội dung bịa. Sau đó chạy tập câu hỏi và đọc điểm.

Một lần chạy Simulation Testing chấm Agent trên các câu hỏi thư viện và sản phẩm Lần chạy năm câu hỏi: 4.8 trên 5 tổng thể, với điểm theo từng câu trả lời và phần giải thích của judge cho từng câu.

Lần chạy năm câu hỏi của chúng tôi đạt 4.8 trên 5: điểm tối đa cho cả câu trả lời sản phẩm và giải thích resume cùng chunk-size, câu trả lời retry bị trừ xuống 4. Evaluation chấm câu trả lời của Agent, không phải bản thân lệnh gọi công cụ, nên hãy dùng kèm Inbox: bản ghi Inbox chứng minh công cụ chạy với input đúng, và Simulation cho thấy câu trả lời đứng vững qua nhiều câu hỏi cùng lúc.

Hai chi phí cần biết trước khi bạn chạy. Mỗi tin nhắn mô phỏng được tính vào số AI messages hàng tháng của gói, giống cuộc hội thoại thật. Và Simulation thực sự chạy Agent của bạn, nghĩa là MCP tools đang active sẽ chạy thật trong một lần chạy. Vô hại với công cụ read-only như ask_question; đáng cân nhắc trước khi bạn mô phỏng một agent có công cụ ghi vào lịch hoặc hệ thống thanh toán.

Kết nối tới MCP server có an toàn không?

An toàn dựa trên whitelist và việc chọn đúng loại server, không dựa trên prompt.

  • Whitelist theo quyền tối thiểu. Agent chỉ có thể gọi các công cụ bạn bật. Bật công cụ bạn cần, và với Default tool activation tắt, công cụ server thêm sau này vẫn tắt cho đến khi bạn xem xét. Với server read-only như DeepWiki, điều nhiều nhất một ask_question đã được whitelist có thể làm là đọc dữ liệu công khai. Sự cố OpenAI Hugging Face là cùng bài học ở quy mô frontier-lab: agent được cấp phạm vi rộng hơn nhiệm vụ cần đã tìm ra cách dùng nó.
  • Xem server như chuỗi cung ứng. Bạn đang tin code của người khác và quy trình release của người khác. Ưu tiên server first-party do công ty sở hữu dữ liệu vận hành, đọc danh sách công cụ trước khi bật, và để toggle default-off hấp thụ bất kỳ thứ gì họ phát hành tiếp theo. Sự cố postmark-mcp, mười lăm bản phát hành sạch rồi bản thứ mười sáu BCC cho kẻ tấn công, là case study cần nhớ.
  • Giữ secrets ngoài prompt. Nếu server của bạn cần token, đặt nó trong connection header, hoặc dùng luồng OAuth nơi Quickchat AI giữ token đã mã hóa cho bạn. Dù bằng cách nào, credential được gắn ở phía server, và model không bao giờ thấy nó, nên không cuộc hội thoại nào có thể làm rò rỉ nó.
  • Địa chỉ internal bị chặn. Quickchat AI từ chối kết nối MCP action tới địa chỉ private, loopback, hoặc link-local, và áp dụng cùng kiểm tra cho mọi endpoint mà OAuth server quảng bá, nên URL server không thể bị biến thành cách truy cập thứ gì đó bên trong mạng.
  • Server chậm không thể làm Agent của bạn treo. Mọi kết nối đều bị giới hạn: 10 giây để kết nối, 20 giây để đọc, trong ngân sách 20 giây cho mỗi server trên mỗi câu trả lời. Lệnh gọi công cụ thất bại hoặc timeout được trả lại cho model dưới dạng lỗi, nên Agent giải thích điều nó không thể kiểm tra thay vì chết giữa câu trả lời.
  • Biết một giới hạn thực tế. Khác với API Action, MCP tool không có run condition theo từng cuộc hội thoại: bạn không thể nói “chỉ chạy công cụ này khi khách truy cập là admin đã xác minh.” Whitelist áp dụng theo công cụ, cho mọi người. Nếu server cung cấp công cụ ghi hoặc xóa mà bạn cần gate theo người hỏi, đừng bật nó ở đây. Hãy xây thao tác đó dưới dạng API Action với điều kiện Run only when, và để kết nối MCP xử lý phần read-only.

Và hãy tránh cám dỗ kết nối mọi thứ. Mỗi công cụ được bật thêm mô tả của nó vào thứ model cân nhắc ở mọi câu trả lời, và các đo lường đã công bố cho thấy khả năng chọn công cụ sụp đổ khi số lượng tăng: gần như hoàn hảo ở hai mươi công cụ, không dùng được sau một trăm. Đồng thuận thực hành về một vài server cho mỗi agent khớp với những gì chúng tôi thấy. Một server được chọn kỹ với một công cụ được chọn kỹ, đúng như hướng dẫn này xây dựng, tốt hơn một bức tường công tắc.

Để ChatGPT hoặc Claude xây dựng phần này cho bạn

Mọi thứ bên trên là nhấp và dán. Nếu bạn muốn mô tả thay vì tự làm, hãy đưa hướng dẫn này cho một AI assistant đã kết nối với tài khoản Quickchat AI của bạn.

Quickchat AI có MCP server riêng để quản lý tài khoản của bạn: nhấp Manage your AI ngay dưới Agent switcher trong sidebar dashboard để mở các tab kết nối cho ChatGPT, Claude, Claude Code, Cursor, và Codex. Trên ChatGPT, bạn cũng có thể bỏ qua dashboard hoàn toàn: cài Quickchat AI app for ChatGPT trực tiếp và đăng nhập khi được hỏi. Sau khi kết nối, assistant có thể tạo agents, viết knowledge bases, cấu hình actions bao gồm MCP connections, đọc conversations, và chạy Simulations, với role và confirmation gates của bạn được áp dụng trên mọi lệnh gọi.

Sheet Manage your AI: kết nối ChatGPT, Claude, Claude Code, Cursor, hoặc Codex với tài khoản Quickchat AI của bạn Manage your AI: các tab kết nối cho ChatGPT, Claude, Claude Code, Cursor, và Codex. Một lần đăng nhập, không cần API key.

Sau đó dán prompt như sau vào assistant đã kết nối:

Dùng tài khoản Quickchat AI của tôi, xây agent từ hướng dẫn tại quickchat.ai/post/connect-ai-agent-to-mcp-server.

Tạo một AI Agent tên Hoist cho một API upload file có thể resume dành cho developer. Viết cho nó một knowledge base ngắn: hai gói (Free: 5 GB storage, file tối đa 2 GB, retention 30 ngày; Pro giá $29/tháng: 500 GB storage, file tối đa 50 GB, retention không giới hạn), API keys trong Settings, vùng lưu trữ EU và US, và webhook upload.completed.

Kết nối remote MCP server https://mcp.deepwiki.com/mcp và chỉ bật công cụ ask_question.

Đặt main prompt để agent trả lời các câu hỏi về Hoist từ knowledge của nó, và gọi ask_question với repoName "tus/tus-js-client" cho các câu hỏi về cách thư viện tus-js-client hoạt động.

Sau đó tạo một simulation dataset với hai câu hỏi về thư viện và hai câu hỏi về sản phẩm, chạy nó, và báo cáo điểm.

Nửa MCP của luồng đó chạy trên hai công cụ mà server của Quickchat AI cung cấp đúng cho việc này: list_remote_mcp_server_tools xem trước các công cụ một server cung cấp trước khi tạo bất kỳ thứ gì, và create_remote_mcp_action kết nối server với allow-list theo quyền tối thiểu, đã active và sẵn sàng. Assistant báo cáo nó đã bật gì và vì sao, cùng thông tin bạn sẽ đọc trên panel Tools. Và khi bạn đăng nhập sau đó, Quickchat AI nhận ra tài khoản đã được quản lý qua MCP và bỏ qua hoàn toàn Getting Started onboarding, dashboard mở thẳng vào agent mà assistant của bạn đã xây.

Một ghi chú khắc phục sự cố cho đường dẫn ChatGPT: nếu popup đăng nhập mở ra trống, hãy tạm dừng ad blocker cho chatgpt.com. Một heuristic phổ biến của blocker làm hỏng mọi popup connector của ChatGPT, bao gồm của chúng tôi, và việc chặn diễn ra hoàn toàn trên trang của ChatGPT.

Nếu bạn muốn script, route REST cần đúng hai lệnh gọi với API token (gói Business):

POST https://app.quickchat.ai/v1/api/ai_actions/remote_mcp
Authorization: Bearer YOUR_API_TOKEN
{"name": "DeepWiki", "remote_mcp_url": "https://mcp.deepwiki.com/mcp", "headers": [], "allowed_tools": []}

PATCH https://app.quickchat.ai/v1/api/ai_actions/ACTION_ID
Authorization: Bearer YOUR_API_TOKEN
{"is_active": true}

Lệnh create trả về action với default_tool_is_active bật, nên các công cụ được khám phá tại thời điểm trả lời hoạt động ngay; siết whitelist trong dashboard sau đó, hoặc truyền allowed_tools rõ ràng.

Đưa vào hoạt động

Khi Agent hoạt động đúng trong AI Preview và Inbox hiển thị các lệnh gọi bạn kỳ vọng, hãy deploy nó.

MCP action thuộc về Agent, không thuộc về một channel, nên cùng công cụ hoạt động trên website widget, WhatsApp, Discord, Slack, và mọi nơi khác bạn đặt Agent. Hãy nhớ rằng mọi cuộc hội thoại, bao gồm các cuộc bạn chạy trong AI Preview khi kiểm thử, đều được tính vào số AI messages hàng tháng của gói.

Một giao thức, ba hướng

“MCP” xuất hiện ở ba nơi khác nhau trong Quickchat AI, và nhầm lẫn chúng là nguồn gây rối phổ biến nhất chúng tôi thấy trong các cuộc trao đổi hỗ trợ. Hướng dẫn này đã đề cập hàng đầu tiên:

Ba hướng của MCP: kết nối Agent của bạn tới server, expose Agent của bạn như server, và quản lý tài khoản qua MCP Một giao thức, ba hướng. Hướng dẫn này là làn trên cùng; hai hàng còn lại có hướng dẫn riêng.

Kết nối Agent của bạn tới một server cấp cho nó công cụ live, đúng thứ chúng ta vừa xây. Hướng ngược lại, expose Agent của bạn như một MCP server, cho phép ChatGPT, Claude, và Cursor gọi Agent của bạn như một công cụ và trả lời từ knowledge base của bạn. Và quản lý tài khoản của bạn qua MCP là đường build-it-with-AI từ phần trước, trỏ vào dashboard của bạn thay vì khách truy cập.

Hướng dẫn liên quan

Cơ chế AI Actions tương tự kết nối Agent với bất kỳ công cụ hoặc API nào. Các hướng dẫn từng bước khác:

Để đọc thêm về chính giao thức: GPT Actions so với MCP, MCP so với plain HTTP APIs, và APIs cho AI agents.

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

Remote MCP server là gì, và khác gì với server local?

Remote MCP server là một tool server bạn truy cập qua HTTPS tại một URL công khai, do bên khác vận hành, không cần cài đặt gì; các ứng dụng AI cho người dùng như ChatGPT và Claude hiển thị cùng các server này dưới dạng connectors trong phần cài đặt. Local MCP server là một tiến trình chạy trên máy của bạn, chỉ các client trên máy đó mới dùng được. Một AI agent được host và hướng tới khách hàng cần loại remote: một URL cố định mà nó có thể gọi từ cloud trong mọi cuộc hội thoại.

MCP có dùng HTTP không? SSE đã thay đổi thế nào?

Có. Kể từ bản sửa đổi đặc tả 2026-07-28, remote MCP server là một endpoint HTTPS đơn giản, stateless, dùng streamable HTTP, còn transport HTTP-plus-SSE cũ đã bị deprecated với một giai đoạn chuyển đổi. Trong thực tế bạn dán một URL. Quickchat AI dùng streamable HTTP và vẫn fallback về SSE cho các server legacy có URL path kết thúc bằng /sse.

AI agent của tôi biết một MCP server cung cấp công cụ nào bằng cách nào?

Nó hỏi server. MCP định nghĩa một yêu cầu tools/list: client kết nối tới URL server và server trả về tên, mô tả, và input schema của từng công cụ. Trong Quickchat AI, bước khám phá này chạy khi bạn kết nối, nên các công cụ xuất hiện dưới dạng danh sách công tắc, và agent đọc lại danh sách công cụ trực tiếp tại thời điểm trả lời.

Tôi có thể kết nối MCP server mà không viết hoặc host code không?

Có. Kết nối là một lần nhấp trong catalog, hoặc dán URL, rồi bật các công cụ bạn muốn. Mọi thứ trong hướng dẫn này là giá trị copy-paste, và không có code nào cần viết, host, hoặc deploy trên bất kỳ gói nào.

Có miễn phí không?

Có. MCP actions có trên mọi gói Quickchat AI, bao gồm gói miễn phí, và một MCP server đã kết nối được tính là một action trong giới hạn 15 AI Actions cho mỗi agent. Tạo API token cho route REST là phần duy nhất cần gói Business.

Tôi có cần OAuth không, hay có MCP server không cần xác thực?

Có cả hai loại. Các server tài liệu và tìm kiếm như DeepWiki, Context7, và Microsoft Learn là mở: dán URL là bạn được kết nối. Các server gắn với tài khoản như Calendly, Notion, hoặc Stripe dùng OAuth: thay vì dán key, một popup mở ra, bạn phê duyệt quyền truy cập, và Quickchat AI lưu token. API key dạng plain trong connection header cũng hoạt động với các server dùng cách đó.

Tôi đã kết nối MCP server. Tôi thực sự dùng nó thế nào?

Cho agent biết khi nào cần dùng nó. Thêm một đoạn vào AI Main Prompt, nêu các tình huống công cụ hữu ích và mọi giá trị nó nên truyền, rồi hỏi một câu phù hợp trong AI Preview. Kết nối cấp cho agent khả năng; prompt cấp cho nó ngữ cảnh để dùng.

Vì sao agent của tôi không gọi MCP tool?

Gần như luôn do một trong ba lý do: công cụ đang tắt trong panel Tools của action, main prompt chưa bao giờ nói cho agent khi nào dùng nó, hoặc câu hỏi bạn hỏi đã được knowledge base trả lời, nên agent không có lý do gọi ra ngoài. Kiểm tra panel Tools trước, sau đó thêm hướng dẫn rõ ràng vào prompt, rồi kiểm thử bằng một câu hỏi mà knowledge base chắc chắn không thể trả lời.

Tôi nên kết nối bao nhiêu MCP server với một agent?

Ít hơn bạn nghĩ. Mô tả của mọi công cụ được bật được nạp cho model ở mọi lần trả lời, và các kiểm thử đã công bố cho thấy khả năng chọn công cụ giảm khi số lượng tăng, với độ chính xác gần như hoàn hảo ở khoảng 20 công cụ nhưng sụp đổ hoàn toàn sau 100. Các practitioner thường quy về một vài server cho mỗi agent. Kết nối một hoặc hai server agent của bạn thực sự cần và chỉ bật các công cụ bạn dùng.

Tôi giới hạn những gì một MCP server đã kết nối có thể làm bằng cách nào?

Chỉ bật các công cụ agent cần trong panel Tools và tắt Default tool activation, để công cụ server thêm sau này vẫn tắt cho đến khi bạn xem xét. Agent không bao giờ có thể gọi công cụ bạn chưa bật. Giữ thông tin xác thực trong connection headers thay vì prompt, và đặt các thao tác ghi thực sự nhạy cảm phía sau API Action có run condition thay vì MCP tool.

ChatGPT hoặc Claude có thể xây dựng thiết lập Quickchat AI này cho tôi không?

Có. Kết nối ứng dụng AI của bạn với MCP server riêng của Quickchat AI từ dashboard, sau đó yêu cầu nó tạo agent, viết knowledge base, kết nối MCP server, và chạy kiểm thử. Cũng có một route REST: tạo MCP action là một POST cộng một PATCH với API token.

Điều gì xảy ra nếu MCP server chậm hoặc ngừng hoạt động giữa cuộc hội thoại?

Cuộc hội thoại không bị treo. Quickchat AI giới hạn mọi server bằng timeout ngắn, 10 giây để kết nối và 20 giây để đọc, trong ngân sách 20 giây cho mỗi server ở mỗi câu trả lời. Một lệnh gọi thất bại hoặc timeout được trả về cho model dưới dạng lỗi, nên agent trả lời mà không có công cụ và giải thích điều nó không thể kiểm tra. Inbox ghi lại lệnh gọi thất bại.