- MCP (Model Context Protocol) là một giao thức mở, hoạt động như một trình kết nối phổ quát, cho phép các mô hình AI truy cập và tương tác với ngữ cảnh, công cụ và dữ liệu bên ngoài hệ thống của chúng, vượt ra ngoài lịch sử trò chuyện thông thường.
- Giao thức này được phát triển để chuẩn hóa việc tích hợp công cụ, tránh việc tái triển khai các chức năng tương tự, và đã được mã nguồn mở để khuyến khích một hệ sinh thái rộng lớn, cho phép các ứng dụng kết nối linh hoạt với nhiều mô hình AI.
- MCP đơn giản hóa đáng kể quá trình tích hợp công cụ cho nhà phát triển với sự hỗ trợ các máy chủ từ xa và tính năng API gốc, giúp mở rộng khả năng của mô hình AI với thông tin cập nhật theo thời gian thực hoặc khả năng tương tác trình duyệt.
Building with MCP and the Claude API
- MCP as a Universal Connector: MCP acts as a standardized way for AI models (like Claude) to access external "context" beyond their default training data, enabling interaction with the internet, applications, and custom tools.
- Open-Source Philosophy: Anthropic open-sourced MCP to establish a universal standard, avoiding vendor-specific integrations and allowing a broad ecosystem of engineers and companies to build tools that work across multiple AI models (e.g., Claude, OpenAI, Grok).
- Simplified Setup with Remote Servers: The introduction of remote MCP server support significantly reduces the setup complexity for end-users, enabling organizations to host their own accessible MCP servers (e.g.,
MCP.github.com). - Solving Knowledge Cut-off: MCP servers like "Context 7" can pull and update documentation from external websites, providing LLMs with the latest information on packages or APIs, overcoming the issue of outdated knowledge cut-off dates.
- Enhanced Web Interaction: The "Playwright MCP server" allows AI models to interact with web browsers like a human user, enabling them to "see" and provide advice on web page design (CSS/HTML) or even create self-improving loops for web development.
- Native API Integration: For developers using the Claude API, the native "MCP Connectors" feature simplifies tool integration by allowing them to specify remote MCP server URLs and authorization directly, handling the tool execution loop internally.
- Optimize Tool Descriptions: The language used to describe tools (names, detailed descriptions, examples, prompt style guidance) within an MCP server significantly impacts how the AI model understands and utilizes them, leading to much better or worse results. Treat tool descriptions as part of the prompt.
- Manage Context and Avoid Overload: An anti-pattern is to overload MCP servers or API requests with too many tools or redundant ones. This consumes tokens, confuses the AI model, and degrades performance. Be selective, ensure tools are distinct, well-defined, and relevant to the current user's prompt.
MCP (Model Context Protocol)— Giao thức Ngữ cảnh Mô hìnhAI model— Mô hình AIContext— Ngữ cảnhTool— Công cụAPI— Giao diện lập trình ứng dụngOpen-source— Mã nguồn mởStandard— Tiêu chuẩnEcosystem— Hệ sinh tháiLLM (Large Language Model)— Mô hình ngôn ngữ lớnPrompt— Lời nhắcSDK (Software Development Kit)— Bộ công cụ phát triển phần mềmAnti-pattern— Chống mẫuToken— Token
Giới thiệu MCP
Alex: Vậy là tôi đang đọc các cập nhật trạng thái của bạn, và chúng đều do Claude tạo ra phải không?
Michael: Vâng, tôi thực sự không bao giờ viết bất cứ điều gì để đọc trong thời gian ngắn. Luôn luôn là Claude.
Alex: À, tốt rồi. Chào các bạn, tôi là Alex. Tôi dẫn dắt mảng quan hệ với Claude tại Anthropic. Hôm nay chúng ta sẽ nói về MCP và Claude API, và tôi có các đồng nghiệp của mình ở đây.
Michael: Chào, tôi là Michael. Tôi là kỹ sư trong đội API tại Anthropic.
John: Tôi là John, và tôi làm việc trong đội Model Context Protocol tại Anthropic. Để bắt đầu hôm nay, tôi muốn đưa ra một cái nhìn tổng quan về MCP là gì. MCP là Model Context Protocol, và đó là một cách để cung cấp ngữ cảnh bên ngoài cho các mô hình AI. Khi bạn có một chatbot và đang trong một cuộc trò chuyện, lịch sử cuộc trò chuyện của bạn chính là ngữ cảnh của nó. Mô hình AI chỉ có khả năng thấy mọi thứ bạn đã nhập vào, điều này thực sự hữu ích cho một số loại tác vụ như "giúp tôi giải quyết vấn đề này" hoặc "viết cái này". Nhưng đôi khi Claude cần truy cập những thứ bên ngoài 'hộp' của nó. Nó cần có khả năng nói chuyện với internet hoặc liên hệ với một đại lý du lịch để đặt chuyến bay cho bạn. Và đó là lúc MCP phát huy tác dụng. Nó cung cấp các ngữ cảnh bên ngoài này cho Claude để nó có thể thực hiện tác vụ cho bạn, thay mặt bạn trong thế giới bên ngoài.
Alex: Đúng vậy. Tôi đã nghe một phép tương tự hay trong quá khứ rằng MCP giống như trình kết nối phổ quát giữa các ứng dụng và mô hình AI. Vậy là một cách để chúng ta kết nối Claude với mọi thứ khác mà nó có thể cần truy cập – tất cả các nguồn dữ liệu, công cụ, mọi thứ.
John: Vâng, chắc chắn rồi. Về cơ bản là mọi thứ trên internet.
Lý do phát triển và tính mở của MCP
Alex: Tại sao chúng ta lại xây dựng cái này? Mục đích ban đầu là gì? Tôi muốn nói, việc có những kết nối này có vẻ hữu ích, nhưng tại sao chúng ta lại thực hiện cụ thể điều đó, và tại sao lại biến nó thành một giao thức chuẩn phổ quát?
John: Tôi nghĩ khi chúng tôi bắt đầu tiến xa hơn trong việc sử dụng công cụ và với khả năng của Claude, chúng tôi bắt đầu nhận thấy rằng chúng tôi đang triển khai lại rất nhiều khả năng tương tự trong nhiều ngữ cảnh khác nhau. Ví dụ, các trợ lý mà tôi có trong trình chỉnh sửa mã của mình cần được liên kết với một công cụ tìm kiếm web. Claude.ai cũng vậy, và tất cả các giao diện khác mà chúng tôi muốn Claude có thể tương tác với thế giới bên ngoài. Và chúng tôi nghĩ sẽ tốt hơn nếu có một giao thức thống nhất duy nhất mà chúng ta có thể triển khai một bộ chức năng một lần và sử dụng nó ở mọi nơi. Tức là xây dựng một lần và cấu hình ở mọi nơi. Vì vậy, chức năng tìm kiếm web tương tự mà tôi có thể nhận được trên Claude Code cũng sẽ là chức năng tìm kiếm web tương tự mà tôi nhận được trên Claude.ai.
Alex: Được rồi, điều đó có lý. Về cơ bản, tạo ra khả năng tương thích phổ quát đó khi chúng ta có vô số ứng dụng có thể cần những kết nối tương tự này. Giờ đây, cách tiếp cận của chúng ta đối với MCP, đặc biệt là với việc mã nguồn mở nó, khá khác biệt, tôi nghĩ, so với nhiều lộ trình tích hợp khác mà các công ty khác đang theo đuổi vào thời điểm đó. Tại sao chúng ta lại nghĩ đến việc mã nguồn mở nó? Yếu tố thúc đẩy đằng sau đó là gì?
John: Tôi nghĩ có rất nhiều giá trị trong các tiêu chuẩn mở để cho phép một mạng lưới rộng lớn các kỹ sư, công ty, cá nhân xây dựng một hệ sinh thái xung quanh một thứ gì đó. Và chúng ta có thể đã xây dựng Trình kết nối ứng dụng Claude cho phép bạn kết nối mọi thứ của mình vào Claude. Nhưng sau đó bạn sẽ có một trải nghiệm người dùng thực sự tệ nếu bạn đang sử dụng nhiều mô hình AI. Nếu tôi là một công ty như Asana và tôi muốn kết nối, liệu tôi có phải triển khai Trình kết nối Claude của mình, và Trình kết nối OpenAI của mình, và Trình kết nối Grok của mình, và Trình kết nối Gemini của mình không? Và điều đó cuối cùng sẽ trở thành một cơn ác mộng. Và một trong những điều chúng tôi nhận thấy là việc các mô hình AI có quyền truy cập vào ngữ cảnh bên ngoài là tốt cho tất cả mọi người. Nó giống như tình huống 'nước lên thuyền lên'. Và chúng tôi có giao thức nội bộ này thực sự có giá trị trong việc tiêu chuẩn hóa các tương tác mô hình của chúng tôi. Và vì vậy, chúng tôi đã mã nguồn mở nó như một cách để nói rằng 'chúng tôi thấy điều này hữu ích, có thể thế giới cũng sẽ thấy điều này hữu ích'. Và nó đã trở nên vô cùng phổ biến và cực kỳ nhanh chóng. Rõ ràng là rất nhiều người có cùng nhu cầu và đã nhanh chóng tham gia, bắt đầu phack mã với nó ngay cả khi chỉ có hỗ trợ tối thiểu. Mọi người bắt đầu phack mã để tạo ra những sản phẩm phát triển và môi trường thực sự đáng kinh ngạc. Ai đó nói rằng nó đã thúc đẩy. Tôi nghĩ đó là giao thức mã nguồn mở phát triển nhanh nhất trong lịch sử.
Alex: Wow, đó thực sự là một sự phát triển vượt bậc, và có một nhu cầu lớn về nó.
John: Vâng, vì vậy chúng tôi đã mã nguồn mở nó. Và kể từ khi điều này cất cánh, nó thực sự đã vượt xa ước mơ hoang dại nhất của chúng tôi khi chúng tôi phát hành đặc tả nhỏ này. Và vì vậy chúng tôi đã thực hiện rất nhiều công việc khi điều này bắt đầu chuyển đổi từ một cách hay ho cho dự án Anthropic để Anthropic có thể lấy ngữ cảnh cho các mô hình AI của mình thành một tiêu chuẩn định hình ngành, một hệ sinh thái. Chúng tôi đã thực hiện rất nhiều công việc để chuyển nó sang một quỹ mã nguồn mở đúng nghĩa và làm việc với tất cả các nhà cung cấp khác để biến MCP thành một thứ gì đó bền vững và tồn tại lâu dài.
Tình hình hiện tại và các tính năng mới
Alex: Tình hình MCP hiện tại như thế nào, cả về cộng đồng mã nguồn mở và đặc tả kỹ thuật? Đã gần một năm, ít hơn một năm một chút kể từ khi chúng ta công bố nó lần đầu, và tôi cảm thấy nhiều người vẫn có trực giác dựa trên cách nó hoạt động vào đầu năm nay, vào đầu năm 2025 hoặc đại loại thế. Nhưng giao thức đang phát triển rất nhanh, và mọi thứ đang thay đổi. Theo quan điểm của bạn, Mike, trạng thái hiện tại của MCP là gì?
Michael: Tôi cảm thấy một khoảnh khắc 'aha' lớn đối với tôi, ít nhất, là khi chúng tôi phát hành hỗ trợ MCP từ xa. Một số điểm kỳ lạ ban đầu của giao thức là bạn phải tự chạy mọi thứ một cách hiệu quả, điều này ngăn các nhà cung cấp máy chủ MCP như Asana không thể lưu trữ các máy chủ của riêng họ mà bạn có thể truy cập rất, rất nhanh chóng, và nó khiến quá trình thiết lập rất, rất cồng kềnh. Và tôi nghĩ rằng một bước ngoặt rất lớn, theo ý kiến của tôi, là khi chúng tôi cung cấp hỗ trợ hạng nhất cho máy chủ MCP được lưu trữ từ xa đã giảm đáng kể quá trình thiết lập để người dùng cuối có thể bắt đầu khá nhanh chóng.
Alex: Và bây giờ chúng ta có một kho lưu trữ của các máy chủ này, vậy mọi người thực sự có thể tải lên chúng vào kho lưu trữ? Sau đó chúng ta cấp quyền cho chúng hay chúng ta cải thiện chúng?
John: Vâng, hoàn toàn. Dự án mã nguồn mở đã phát hành một kho lưu trữ trung tâm của các máy chủ MCP theo tinh thần mã nguồn mở. Chúng tôi có cả một kho lưu trữ được lưu trữ tại trang web của tổ chức Model Context Protocol và một tiêu chuẩn cho phép các tổ chức khác mở rộng kho lưu trữ, lấy thông tin đó vào. Và vì vậy chúng tôi đã thấy sự phát triển mạnh mẽ của các MCP GitHub, MCP Asana. Rất nhiều công ty đang xây dựng và triển khai các điểm cuối này. Và vì vậy, việc kéo cái này vào trở nên dễ dàng hơn. Trước đây, nếu bạn muốn tương tác với GitHub, bạn phải tìm một nhà phát triển ngẫu nhiên nào đó đã tùy chỉnh một Trình kết nối GitHub và sau đó tin tưởng vào cài đặt Node.js của họ trên máy tính của bạn. Và bây giờ bạn chỉ cần truy cập trang GitHub chính thức – như tôi nghĩ là MCP.github.com – bạn có thể đưa nó vào Claude Code hoặc Claude.ai của mình và sau đó mở rộng Claude với khả năng tương tác với GitHub. Đúng không? Vì vậy, nó thực sự đang trưởng thành theo một cách rất tuyệt vời.
Alex: Điều đó khá tuyệt, và tôi cũng đã sử dụng GitHub MCP cho các tác vụ trong Claude Code, và thật tuyệt khi chỉ cần có một điểm cuối URL đó, giống như một plugin. Hiện tại có bất kỳ MCP độc đáo, thú vị nào trong kho lưu trữ hoặc bên ngoài kho lưu trữ mà các bạn đã thấy không?
Michael: Tôi nghĩ có một cái mà tôi thấy thực sự, thực sự thú vị khi xem, nó được gọi là Context 7. Một trong những hạn chế lớn nhất của Mô hình ngôn ngữ lớn là chúng có một thời điểm cắt kiến thức thường bị trì hoãn vài tháng, điều này có nghĩa là việc làm việc với các gói mới nhất và tốt nhất với tư cách là một nhà phát triển phần mềm đôi khi khó khăn với LLM vì chúng sẽ chỉ cung cấp cho bạn thông tin lỗi thời. Và những gì Context 7 làm là nó lấy tài liệu từ các trang web này, như trang web Next.js hoặc thậm chí trang web API của chúng tôi và cập nhật chúng. Và tất cả những gì bạn phải làm là cấu hình kết nối MCP của mình một lần, và Claude sẽ có quyền truy cập vào thông tin mới nhất về bất cứ điều gì bạn đang phát triển đối với.
Alex: Được rồi, vâng, tôi nghĩ tôi đã nghe nói về điều đó. Vậy về cơ bản chúng ta đang kéo vào các tài liệu mới nhất, mọi thứ. Và tôi biết hiện tại chúng ta cũng đang trong giai đoạn chuyển tiếp khi nhiều người đang biến các tài liệu của họ hoàn toàn thành văn bản thô có thể truy cập được đối với LLM. Vì vậy, tôi cho rằng điều đó giống như kéo từ cùng một loại thông tin.
Michael: Vâng, vậy đây là định dạng LLMs.Tex, vâng, mà tôi đã thấy rất nhiều áp dụng trên toàn bộ ngành công nghệ, điều này thực sự thú vị khi thấy.
Alex: Tuyệt vời. Còn bạn thì sao, John?
John: Về phần mình, tôi thấy nó hữu ích, tôi nghĩ, từ công việc của tôi với tư cách là một nhà phát triển phần mềm. Tôi thực sự thích Playwright làm máy chủ MCP, cho phép Claude tương tác với trình duyệt như thể nó là một người dùng đang nhấp chuột xung quanh. Vì vậy, nếu bạn đang làm việc trên một trang web, Claude có thể đọc tất cả CSS và HTML của bạn, nhưng nó không thể thực sự nhìn vào trang web của bạn. Nhưng nếu bạn cài đặt máy chủ Playwright MCP, thì bạn có thể để Claude nhìn vào trang web của bạn và đưa ra lời khuyên về cách làm cho nó đẹp hơn hoặc khắc phục các vấn đề căn chỉnh.
Alex: Vậy là nó thực sự chụp ảnh màn hình?
John: Vâng, nó thực sự tải nó lên trong một trình duyệt, duyệt web bằng Playwright, một dự án Microsoft cho phép điều khiển trình duyệt từ xa.
Alex: Điều gì sẽ xảy ra khi bạn đưa nó vào một vòng lặp với một thứ như Claude Code?
John: Ồ, bạn có thể tạo ra một số vòng lặp tự cải thiện. Ví dụ, nếu tôi bảo Claude Code khắc phục vấn đề căn chỉnh trong tiêu đề, nó có thể thay đổi HTML của tôi, thay đổi CSS của tôi, tải lại trang nếu cần, sau đó nhìn lại và nói "Ồ, mọi thứ trông tốt hơn," hoặc "điều đó không khắc phục được." Và nó có ngữ cảnh để thấy cả thay đổi của nó và sau đó thực sự có thể chụp ảnh màn hình trang web và nói, "Ồ, tập thay đổi CSS này thực sự dẫn đến hiệu ứng mà tôi không mong muốn. Hãy hoàn tác và thử cách khác." Đó là một vấn đề căn chỉnh khác.
Alex: Vâng. Vâng, vấn đề căn chỉnh CSS có lẽ là một vấn đề thậm chí khó hơn.
Sử dụng MCP với Claude API và lời khuyên cho nhà phát triển
Alex: Chuyển chủ đề một chút. Nếu tôi là một nhà phát triển và tôi muốn sử dụng Claude API, làm thế nào tôi có thể sử dụng MCP với API của chúng ta và với mô hình AI Claude?
Michael: Đó là một câu hỏi tuyệt vời. Cách tiêu chuẩn chính tắc để thực hiện điều này là cài đặt MCP SDK, thiết lập vòng lặp của riêng bạn như bạn đã đề cập với Claude Code và xử lý việc kết nối với bất kỳ máy chủ MCP nào bạn cần kết nối. Nhưng về cơ bản đó là trách nhiệm của bạn với tư cách là một nhà phát triển phần mềm để tập hợp tất cả các công việc kết nối, điều này rất tuyệt và nó hoạt động. Nhưng những gì chúng tôi gần đây đã phát hành trực tiếp vào API dưới dạng một tính năng gốc là tính năng Trình kết nối MCP, cho phép bạn chỉ cần chỉ định nơi MCP từ xa của bạn tồn tại, như MCP.github.com, và cung cấp cho chúng tôi bất kỳ thông tin ủy quyền nào, và chúng tôi có thể lo liệu vòng lặp gọi đó của việc thực thi các công cụ và nhận kết quả được đưa trở lại mô hình AI cho bạn. Vì vậy, tất cả những gì bạn thực sự phải làm là gửi một lệnh gọi API duy nhất nói rằng "hãy cung cấp cho tôi các yêu cầu kéo mới nhất," vâng, và nó sẽ tiến hành và lo liệu điều đó cho bạn.
Alex: Điều đó tuyệt vời. Tôi đã nghe từ rất nhiều nhà phát triển rằng họ đã có thể xóa bỏ rất nhiều mã vì họ chỉ cần có điều đó. Vì vậy, họ không phải xử lý tất cả những trao đổi qua lại đó nữa, chỉ cần truyền URL vào điểm cuối và sau đó sẵn sàng sử dụng. Có những lời khuyên nào khác cho các nhà phát triển sử dụng MCP không?
John: Tôi nghĩ điều chính mà tôi cố gắng đưa ra cho các nhà phát triển khi tôi nói chuyện là các máy chủ MCP và công cụ thực sự nằm ở câu lệnh cốt lõi. Và vì vậy chúng tôi đã học được rằng nếu bạn đang viết ứng dụng được hỗ trợ bởi AI, điều thực sự quan trọng là phải cẩn thận và chính xác về ngôn ngữ bạn sử dụng khi bạn nhắc mô hình AI.
Tối ưu hóa Mô tả Công cụ trong MCP
Điều này áp dụng cho mọi khía cạnh khi định nghĩa MCP server của bạn, như đặt tên tool phù hợp, cung cấp mô tả chi tiết – có thể kèm theo một vài ví dụ mẫu về cách sử dụng tool trong phần mô tả đó, và đặt tên tham số hợp lý. Tất cả những yếu tố này đều ảnh hưởng đến hành vi của mô hình AI khi nó tương tác với MCP server.
Ví dụ, tôi đã từng xây dựng một server tạo ảnh. Tôi có một tool tên là "Generate Image" với một trường "description" (mô tả) đơn giản, và hết. Khi tôi yêu cầu Claude: "Hãy tạo cho tôi một hình ảnh về một chú chó con dễ thương," nó sẽ gọi tool đó và truyền "description: a cute puppy".
Nhưng nếu bạn thay đổi mô tả và viết: "Công cụ này gọi mô hình diffusion XXX phiên bản Y, và cần được nhắc theo phong cách cụ thể để có kết quả tốt nhất, hãy sử dụng ngôn ngữ kiểu script như thế này." Claude sẽ có thông tin về cách tương tác với các hệ thống này và chỉ cần được thông báo rằng: "À, tôi biết mình đang nói chuyện với một mô hình diffusion rồi, bây giờ tôi sẽ thay đổi ngôn ngữ mình dùng trong prompt này." Thay vì chỉ hỏi về một "chú chó con dễ thương", nó sẽ cung cấp một prompt mô hình diffusion chi tiết hơn nhiều, mang lại kết quả tốt hơn đáng kể.
Bạn sẽ nhận được kết quả tốt hơn từ MCP server của mình chỉ bằng cách thay đổi vài từ trong mô tả hoặc tên prompt – tương tự như việc bạn nhận được kết quả tốt hơn khi viết pull request và thực hiện bất kỳ công việc tri thức nào với Claude bằng cách tinh chỉnh chúng. Bản thân tôi cũng thường xuyên quên điều này: khi bạn làm việc với một tool hoặc một mô tả nào đó một cách độc lập khi đang phát triển một tính năng mới cho một ứng dụng AI nào đó, tất cả đều được đưa vào cùng một prompt cuối cùng. Cuối cùng, đó chỉ là một chuỗi văn bản duy nhất được đưa vào mô hình AI trong mỗi request. Và đúng vậy, đây là một lời khuyên hay: mô tả mà bạn viết trong một file JSON nào đó trong mã của mình cũng sẽ được đưa vào cùng prompt được gửi đến Claude trong request của nó.
Quản lý Context và Hạn chế Tool Dư Thừa
Hãy nói thêm một chút về quản lý context và cách xử lý nhiều tool cũng như nhiều kết quả. Đây là một vấn đề lớn đối với các mô hình ngôn ngữ lớn (LLM) hiện nay về việc "làm nhiễu" context. Bạn có suy nghĩ gì về cách các nhà phát triển nên tiếp cận vấn đề này với MCP không?
Tôi nghĩ rằng một anti-pattern lớn mà chúng tôi thấy nhiều nhà phát triển mắc phải là nhồi nhét vào MCP server hoặc API request của họ hàng tấn tool hoặc hàng tấn MCP server. Điều này không chỉ tốn kém vì bạn đang tạo ra token cho mỗi tool hoặc server bạn thêm vào, mà còn có xu hướng làm mô hình AI bị nhầm lẫn.
Ví dụ, nếu bạn kết nối cả MCP server quản lý tác vụ Linear và Asana trong cùng một request, cả hai đều có thể có một MCP tool tên là "get project status" (lấy trạng thái project). Mô hình AI sẽ không có thông tin rõ ràng về việc sử dụng tool nào trong ngữ cảnh nào. Hơn nữa, bạn đang thực chất làm mô hình AI nhầm lẫn bằng cách cung cấp thông tin có khả năng xung đột.
Vì vậy, hãy rất cẩn thận và có tính xác định về việc bạn thêm tool nào, đảm bảo rằng chúng có ý nghĩa xung quanh mặt kinh tế của chúng và việc sử dụng các tool đó sẽ cảm thấy tự nhiên đối với bạn nếu bạn tự mình sử dụng chúng. Hơn nữa, hãy đảm bảo rằng bạn không bao gồm bất kỳ thông tin nào có thể không nhất thiết giúp ích cho prompt hiện tại của người dùng. Đôi khi, những phần cũ hơn của cuộc trò chuyện có thể bao gồm thông tin rất cơ bản, ví dụ: "thời tiết hôm nay thế nào?" có thể không còn liên quan nhiều về sau trong cuộc trò trò chuyện khi bạn chuyển sang tin tức mới nhất hoặc thông tin khác mà bạn cần từ mô hình AI.
Tôi thường được hỏi: "Tôi có thể truyền bao nhiêu tool vào Claude?" hoặc "Tôi có thể kết nối bao nhiêu MCP server cùng lúc?". Có vẻ như đây không phải là một câu hỏi về số lượng tuyệt đối, mà là về mức độ khác biệt của các tool, mức độ xác định rõ ràng và phạm vi của chúng. Điều đó có đúng không, hay có một giới hạn số lượng MCP tuyệt đối nào đó?
Bạn cũng sẽ gặp phải một số lượng tuyệt đối nhất định. Nếu cửa sổ ngữ cảnh của bạn là X token, mỗi server sẽ đưa vào một số định nghĩa hàm, và mỗi định nghĩa đó sẽ chiếm token. Vì vậy, khi bạn cung cấp cho mô hình AI càng nhiều thông tin, càng khó để nó đưa ra quyết định tốt. Mặc dù nó có thể vẫn hoạt động nếu bạn kết nối một loạt server, nhưng nó có thể hoạt động tốt hơn nếu bạn có thể cung cấp cho Claude một tập hợp con tool liên quan đến tác vụ mà nó đang xem xét.
Thiết kế MCP Server Hiệu quả
Một điểm khác từ những gì Michael đang nói là khi bạn thiết kế một MCP server, nhìn chung, nếu bạn có thể có một hoặc hai tool trong server của mình thay vì 15 hoặc 20 tool, điều đó sẽ giúp mô hình AI rất nhiều. Đôi khi, phát triển giao diện MCP hơi khác so với phát triển API truyền thống, nơi chúng ta đưa những tool này vào các mô hình ngôn ngữ lớn (LLM).
Nếu bạn cung cấp cho một tool một mô tả có thể sử dụng ngôn ngữ tự nhiên hoặc có phần điền tham số, mô hình AI sẽ đưa ra một số quyết định và tạo ra một số văn bản. Bạn có thể không cần nhiều API như get projects, get posts, get users mà thay vào đó chỉ cần một tool "get info" (lấy thông tin), nơi mô hình ngôn ngữ lớn (LLM) có thể xem xét mô tả của bạn và điền vào bất kỳ thông tin nào nó cần. Bằng cách đó, bạn có thể cung cấp một bộ tool nhỏ hơn nhiều, vừa tương tác tốt với các MCP server khác, vừa đảm bảo server của bạn được gọi hiệu quả và phù hợp hơn.
Đúng vậy, nó không phải lúc nào cũng là một bản dịch một-một; có nhiều cấp độ abstraction khác nhau để áp dụng, và có lẽ API spec không phải là thứ được định nghĩa tốt nhất để mô hình AI tiếp nhận.
Các bạn làm việc với MCP hàng ngày, vậy các bạn đang sử dụng nó như thế nào, dù là ở nơi làm việc, ở nhà hay cho một project phụ nào đó? Tôi biết ví dụ về Playwright, còn những cách nào khác mà các bạn đang thử nghiệm MCP bên lề không?
Ứng dụng Thực tế của MCP
Một trong những trường hợp sử dụng lớn nhất mà tôi tự mình tìm thấy là Anthropic thường giống như một xa lộ thông tin. Có quá nhiều thông tin khắp mọi nơi, từ Slack của chúng tôi đến các tài liệu và codebase. Việc nắm bắt trạng thái mới nhất của project mà tôi đang làm thường không dễ hiểu từ một nguồn duy nhất.
Vì vậy, thói quen của tôi là tôi sẽ thiết lập các MCP server trên claude.ai hoặc Claude Code để kết nối với tất cả các vị trí khác nhau này. Sau đó, tôi chỉ cần hỏi nó: "Này, đây là một vài ví dụ về các cập nhật trạng thái project mà tôi đã tự viết. Bạn có thể tìm thông tin từ tuần trước và tạo một bản cập nhật trạng thái sử dụng cùng định dạng chính xác không?" Và tôi phải nói rằng, tỷ lệ thành công của việc này cao hơn nhiều so với tôi nghĩ ban đầu.
Có phải các cập nhật trạng thái của bạn và Slack của bạn đều do Claude tạo ra không? Tôi chưa bao giờ thực sự đọc bất cứ thứ gì [tôi tự viết]. Tôi đã chỉ đọc Claude mọi lúc. Vâng, rất vui được biết. Còn bạn thì sao, John?
Tôi đã tìm thấy một vài hướng từ việc mày mò xung quanh phần cứng ở nhà. Tôi có một số MCP server chạy trên mạng gia đình của mình có thể kiểm soát các thiết bị trong nhà. Vì vậy, tôi có thể vào một cuộc trò chuyện trong Claude và hỏi: "Này, sáng nay tôi có để cửa mở khóa không?". Và Claude có thể trả lời: "Vâng, cửa nhà bạn hiện đang mở khóa. Bạn có muốn tôi khóa nó cho bạn không?". Và tôi có thể trả lời lại: "Vâng, điều đó thật tuyệt."
Sự Kỳ Diệu của Máy Chủ MCP và Các Đặc Tính Nổi Bật
Những thứ như vậy thực sự hữu ích, khá thú vị khi thử nghiệm. Nó giống như một cái nhìn thoáng qua về thế giới tương lai. Có một cảm giác kỳ diệu với các máy chủ MCP vì bạn có được những đặc tính nổi bật (emergent properties) mà bạn có thể không ngờ tới khi thêm chúng. Một ví dụ là khi chúng tôi lần đầu tiên bắt đầu thử nghiệm với các máy chủ MCP, tôi đã xây dựng một máy chủ đồ thị tri thức với một số đồng nghiệp của tôi tại Anthropic. Một đồ thị tri thức trong trường hợp này có nghĩa là chúng tôi muốn cung cấp cho Claude khả năng ghi nhớ và tạo ra các kết nối giữa các ký ức. Vì vậy, đó là một máy chủ MCP có hai công cụ: một công cụ tạo ký ức và một công cụ kết nối ký ức với các ký ức khác, với giao diện đơn giản nhất có thể. Chúng tôi đã kết nối điều này với Claude, và Claude đột nhiên, bạn sẽ có những cuộc trò chuyện với Claude, và nó sẽ chuyển sang chế độ nhà báo điều tra. Ví dụ, tôi sẽ nói, "Tôi chơi piano," và Claude sẽ nói, "Thật tuyệt vời! Bạn thích chơi gì?" Và tôi sẽ trả lời, "Tôi thích chơi nhạc rock, lúc có lúc không." Sau đó, nó sẽ hỏi, "Có bản nhạc yêu thích nào của bạn không?" Và tôi sẽ nhìn vào đồ thị tri thức, và Claude sẽ ghi chú lại, "Người dùng có gu âm nhạc cổ điển tinh tế," hoặc "Người dùng thành thạo các nhạc cụ." Và đó chỉ là từ một thay đổi nhỏ mà bạn cung cấp. Một trong những điều thực sự tuyệt vời khi có MCP dưới dạng một giao thức là nếu bạn kết nối máy chủ Gmail của mình với máy chủ tự động hóa nhà ở, thì có thể Claude có thể tìm ra cách giải quyết vấn đề mà bạn yêu cầu bằng cách kết nối hai thứ đó lại với nhau, điều mà bạn có thể chưa bao giờ nghĩ đến. Vâng, có một sự mơ hồ (fuzzy) ở giữa khi những thứ này được kết nối với nhau. Kết hợp điều đó với trí thông minh tổng quát của Claude, và nhiều điều thú vị có thể xảy ra.
MCP so với API Truyền Thống và Tương Lai Tiềm Năng
Và đó là một trong những điểm khác biệt cốt lõi giữa MCP và các API có cấu trúc truyền thống. Bởi vì mọi thứ rất mơ hồ (fuzzy), và vì các Mô hình ngôn ngữ lớn (LLM) đủ thông minh để kết nối chúng lại với nhau, bạn ít quan tâm hơn đến các hợp đồng. Có một đặc tính thú vị: nếu tôi có một máy chủ MCP để tương tác với Gmail, và sau đó tôi thực hiện một số đánh giá và tôi tìm thấy một bộ công cụ và mô tả tốt hơn để tương tác với Gmail – và nó thay đổi từ 15 công cụ với một bộ mô tả thành, chẳng hạn, hai công cụ với một bộ khác – tôi không cần phải triển khai một phiên bản API mới cho điều đó. Nếu bạn thay đổi API của mình một cách lớn như vậy, đó là một vấn đề lớn với các thay đổi gây lỗi (breaking changes), phải trao đổi với người dùng, thực hiện tất cả những điều đó. Với MCP, tôi có thể chỉ cần triển khai nó. Bởi vì ý định của MCP là cho phép nó tương tác với Gmail, nó không phải là tôi sẽ cung cấp một công cụ đọc email và một công cụ viết email. Vì vậy, nó tập trung nhiều hơn vào ý định và các hành động ở cấp độ cao hơn, hơn là chi tiết kỹ thuật cụ thể về cách chúng ta đạt được điều đó. Điều đó thực sự thú vị.
Vậy, tất cả những điều này sẽ đi đến đâu? MCP sẽ ở đâu trong sáu tháng, 12 tháng, một năm hoặc hơn? Đó là một câu hỏi thú vị vì tôi luôn coi MCP là một giao thức, như John đã nói. Vì vậy, thật thú vị khi thấy sự phổ biến của một giao thức khi mà, nếu MCP thành công và chúng tôi, và tất cả mọi người tích hợp với nó, đã làm đúng công việc của mình, chúng ta sẽ không bao giờ biết rằng MCP đang diễn ra "dưới vỏ bọc" (under the hood). Nó chỉ nên là bạn đang sử dụng bất kỳ chương trình hoặc ứng dụng nào bạn đang dùng, và MCP đang diễn ra "dưới vỏ bọc", chỉ là kết nối mọi thứ lại với nhau, và các Mô hình ngôn ngữ lớn (LLM) sẽ cấu hình mọi thứ. Vì vậy, bạn chỉ cần cung cấp cho nó "cánh tay và đôi chân" mà nó cần. Nhưng vâng, tôi luôn thấy thú vị khi thấy sự cường điệu xung quanh MCP. Bạn có nghĩ rằng điều đó sẽ tiếp tục không? Liệu có một cao nguyên (plateau) ở đây không, hay điều đó thực sự trông như thế nào về mặt các giao thức? Có bất kỳ tiền lệ nào chúng ta có thể xem xét để so sánh MCP không? Tôi nghĩ thật khó để áp dụng một tiền lệ cho bất cứ điều gì trong thế giới Trí tuệ nhân tạo (AI) mà chúng ta đang sống, nhưng tôi chắc chắn thấy rất nhiều điều mà John và các đồng nghiệp của anh ấy trong nhóm MCP đang làm rất thú vị. Đối với tôi, thật tuyệt vời khi thấy các công ty, lớn và nhỏ, cùng nhau thảo luận về cách chúng ta có thể phổ biến nó và biến nó thành một thứ phổ biến (ubiquitous) ở khắp mọi nơi, giống như Internet của chúng ta vậy.
Tầm Nhìn Tương Lai về Việc Áp Dụng và Cạnh Tranh MCP
Một điều thực sự thú vị đối với tôi trong tương lai, tôi nghĩ chúng ta đang ở một thời điểm mà nhiều người đã nhận ra giá trị của MCP, và họ đã bắt đầu viết các máy chủ này. Nhưng về mặt tương tự máy chủ MCP với câu lệnh (prompt), chúng ta đang ở giai đoạn rất sớm. Và vì vậy, tôi thực sự hào hứng khi mọi người, sau khi đã bắt đầu xây dựng các máy chủ này, bắt đầu đánh giá cách chúng hoạt động và cải thiện chúng. Tôi rất mong nó sẽ bắt đầu trở thành một tiêu chí mà bạn có thể đánh giá một nhà cung cấp cho công việc của mình. Ví dụ, nếu tôi thuê ai đó làm phân tích nhật ký, sẽ rất tuyệt vời và có giá trị đối với tôi nếu tôi có thể chỉ cần kết nối máy chủ MCP phân tích nhật ký của họ vào Claude của tôi và nói, "Này, trang web của tôi đang gặp sự cố, chuyện gì đang xảy ra vậy?" Và nếu họ đã thiết kế và phát triển một máy chủ MCP thực sự tuyệt vời cung cấp cho Claude các công cụ cần thiết để tương tác với dịch vụ của họ và tìm ra câu trả lời đó, thì đó là một điểm bán hàng lớn đối với tôi với tư cách là một kỹ sư. Bởi vì khi đó tôi có thể dựa vào chức năng này mà không cần phải tự xây dựng nó. Và tôi rất hào hứng khi điều này bắt đầu trở nên trưởng thành hơn và không còn chỉ là, "Thật thú vị khi chúng tôi đã xuất xưởng một máy chủ MCP," mà bắt đầu thấy mọi người cạnh tranh về, "Chúng tôi có máy chủ MCP tốt nhất. Điều này sẽ giúp cuộc sống của bạn dễ dàng hơn rất nhiều. Bạn nên sử dụng chúng tôi vì chúng tôi tương tác với Claude theo cách này." Vâng, tôi cũng rất mong chờ tương lai đó. Cảm ơn các bạn đã tham gia. Điều này thật tuyệt vời. Cảm ơn rất nhiều.
TL;DR
- MCP (Model Context Protocol) là một giao thức mở, hoạt động như một trình kết nối phổ quát, cho phép các mô hình AI truy cập và tương tác với ngữ cảnh, công cụ và dữ liệu bên ngoài hệ thống của chúng, vượt ra ngoài lịch sử trò chuyện thông thường.
- Giao thức này được phát triển để chuẩn hóa việc tích hợp công cụ, tránh việc tái triển khai các chức năng tương tự, và đã được mã nguồn mở để khuyến khích một hệ sinh thái rộng lớn, cho phép các ứng dụng kết nối linh hoạt với nhiều mô hình AI.
- MCP đơn giản hóa đáng kể quá trình tích hợp công cụ cho nhà phát triển với sự hỗ trợ các máy chủ từ xa và tính năng API gốc, giúp mở rộng khả năng của mô hình AI với thông tin cập nhật theo thời gian thực hoặc khả năng tương tác trình duyệt.
Điểm chính
- MCP as a Universal Connector: MCP acts as a standardized way for AI models (like Claude) to access external "context" beyond their default training data, enabling interaction with the internet, applications, and custom tools.
- Open-Source Philosophy: Anthropic open-sourced MCP to establish a universal standard, avoiding vendor-specific integrations and allowing a broad ecosystem of engineers and companies to build tools that work across multiple AI models (e.g., Claude, OpenAI, Grok).
- Simplified Setup with Remote Servers: The introduction of remote MCP server support significantly reduces the setup complexity for end-users, enabling organizations to host their own accessible MCP servers (e.g.,
MCP.github.com). - Solving Knowledge Cut-off: MCP servers like "Context 7" can pull and update documentation from external websites, providing LLMs with the latest information on packages or APIs, overcoming the issue of outdated knowledge cut-off dates.
- Enhanced Web Interaction: The "Playwright MCP server" allows AI models to interact with web browsers like a human user, enabling them to "see" and provide advice on web page design (CSS/HTML) or even create self-improving loops for web development.
- Native API Integration: For developers using the Claude API, the native "MCP Connectors" feature simplifies tool integration by allowing them to specify remote MCP server URLs and authorization directly, handling the tool execution loop internally.
- Optimize Tool Descriptions: The language used to describe tools (names, detailed descriptions, examples, prompt style guidance) within an MCP server significantly impacts how the AI model understands and utilizes them, leading to much better or worse results. Treat tool descriptions as part of the prompt.
- Manage Context and Avoid Overload: An anti-pattern is to overload MCP servers or API requests with too many tools or redundant ones. This consumes tokens, confuses the AI model, and degrades performance. Be selective, ensure tools are distinct, well-defined, and relevant to the current user's prompt.
Từ vựng
MCP (Model Context Protocol)— Giao thức Ngữ cảnh Mô hìnhAI model— Mô hình AIContext— Ngữ cảnhTool— Công cụAPI— Giao diện lập trình ứng dụngOpen-source— Mã nguồn mởStandard— Tiêu chuẩnEcosystem— Hệ sinh tháiLLM (Large Language Model)— Mô hình ngôn ngữ lớnPrompt— Lời nhắcSDK (Software Development Kit)— Bộ công cụ phát triển phần mềmAnti-pattern— Chống mẫuToken— Token
Nội dung chi tiết
Giới thiệu MCP
Alex: Vậy là tôi đang đọc các cập nhật trạng thái của bạn, và chúng đều do Claude tạo ra phải không?
Michael: Vâng, tôi thực sự không bao giờ viết bất cứ điều gì để đọc trong thời gian ngắn. Luôn luôn là Claude.
Alex: À, tốt rồi. Chào các bạn, tôi là Alex. Tôi dẫn dắt mảng quan hệ với Claude tại Anthropic. Hôm nay chúng ta sẽ nói về MCP và Claude API, và tôi có các đồng nghiệp của mình ở đây.
Michael: Chào, tôi là Michael. Tôi là kỹ sư trong đội API tại Anthropic.
John: Tôi là John, và tôi làm việc trong đội Model Context Protocol tại Anthropic. Để bắt đầu hôm nay, tôi muốn đưa ra một cái nhìn tổng quan về MCP là gì. MCP là Model Context Protocol, và đó là một cách để cung cấp ngữ cảnh bên ngoài cho các mô hình AI. Khi bạn có một chatbot và đang trong một cuộc trò chuyện, lịch sử cuộc trò chuyện của bạn chính là ngữ cảnh của nó. Mô hình AI chỉ có khả năng thấy mọi thứ bạn đã nhập vào, điều này thực sự hữu ích cho một số loại tác vụ như "giúp tôi giải quyết vấn đề này" hoặc "viết cái này". Nhưng đôi khi Claude cần truy cập những thứ bên ngoài 'hộp' của nó. Nó cần có khả năng nói chuyện với internet hoặc liên hệ với một đại lý du lịch để đặt chuyến bay cho bạn. Và đó là lúc MCP phát huy tác dụng. Nó cung cấp các ngữ cảnh bên ngoài này cho Claude để nó có thể thực hiện tác vụ cho bạn, thay mặt bạn trong thế giới bên ngoài.
Alex: Đúng vậy. Tôi đã nghe một phép tương tự hay trong quá khứ rằng MCP giống như trình kết nối phổ quát giữa các ứng dụng và mô hình AI. Vậy là một cách để chúng ta kết nối Claude với mọi thứ khác mà nó có thể cần truy cập – tất cả các nguồn dữ liệu, công cụ, mọi thứ.
John: Vâng, chắc chắn rồi. Về cơ bản là mọi thứ trên internet.
Lý do phát triển và tính mở của MCP
Alex: Tại sao chúng ta lại xây dựng cái này? Mục đích ban đầu là gì? Tôi muốn nói, việc có những kết nối này có vẻ hữu ích, nhưng tại sao chúng ta lại thực hiện cụ thể điều đó, và tại sao lại biến nó thành một giao thức chuẩn phổ quát?
John: Tôi nghĩ khi chúng tôi bắt đầu tiến xa hơn trong việc sử dụng công cụ và với khả năng của Claude, chúng tôi bắt đầu nhận thấy rằng chúng tôi đang triển khai lại rất nhiều khả năng tương tự trong nhiều ngữ cảnh khác nhau. Ví dụ, các trợ lý mà tôi có trong trình chỉnh sửa mã của mình cần được liên kết với một công cụ tìm kiếm web. Claude.ai cũng vậy, và tất cả các giao diện khác mà chúng tôi muốn Claude có thể tương tác với thế giới bên ngoài. Và chúng tôi nghĩ sẽ tốt hơn nếu có một giao thức thống nhất duy nhất mà chúng ta có thể triển khai một bộ chức năng một lần và sử dụng nó ở mọi nơi. Tức là xây dựng một lần và cấu hình ở mọi nơi. Vì vậy, chức năng tìm kiếm web tương tự mà tôi có thể nhận được trên Claude Code cũng sẽ là chức năng tìm kiếm web tương tự mà tôi nhận được trên Claude.ai.
Alex: Được rồi, điều đó có lý. Về cơ bản, tạo ra khả năng tương thích phổ quát đó khi chúng ta có vô số ứng dụng có thể cần những kết nối tương tự này. Giờ đây, cách tiếp cận của chúng ta đối với MCP, đặc biệt là với việc mã nguồn mở nó, khá khác biệt, tôi nghĩ, so với nhiều lộ trình tích hợp khác mà các công ty khác đang theo đuổi vào thời điểm đó. Tại sao chúng ta lại nghĩ đến việc mã nguồn mở nó? Yếu tố thúc đẩy đằng sau đó là gì?
John: Tôi nghĩ có rất nhiều giá trị trong các tiêu chuẩn mở để cho phép một mạng lưới rộng lớn các kỹ sư, công ty, cá nhân xây dựng một hệ sinh thái xung quanh một thứ gì đó. Và chúng ta có thể đã xây dựng Trình kết nối ứng dụng Claude cho phép bạn kết nối mọi thứ của mình vào Claude. Nhưng sau đó bạn sẽ có một trải nghiệm người dùng thực sự tệ nếu bạn đang sử dụng nhiều mô hình AI. Nếu tôi là một công ty như Asana và tôi muốn kết nối, liệu tôi có phải triển khai Trình kết nối Claude của mình, và Trình kết nối OpenAI của mình, và Trình kết nối Grok của mình, và Trình kết nối Gemini của mình không? Và điều đó cuối cùng sẽ trở thành một cơn ác mộng. Và một trong những điều chúng tôi nhận thấy là việc các mô hình AI có quyền truy cập vào ngữ cảnh bên ngoài là tốt cho tất cả mọi người. Nó giống như tình huống 'nước lên thuyền lên'. Và chúng tôi có giao thức nội bộ này thực sự có giá trị trong việc tiêu chuẩn hóa các tương tác mô hình của chúng tôi. Và vì vậy, chúng tôi đã mã nguồn mở nó như một cách để nói rằng 'chúng tôi thấy điều này hữu ích, có thể thế giới cũng sẽ thấy điều này hữu ích'. Và nó đã trở nên vô cùng phổ biến và cực kỳ nhanh chóng. Rõ ràng là rất nhiều người có cùng nhu cầu và đã nhanh chóng tham gia, bắt đầu phack mã với nó ngay cả khi chỉ có hỗ trợ tối thiểu. Mọi người bắt đầu phack mã để tạo ra những sản phẩm phát triển và môi trường thực sự đáng kinh ngạc. Ai đó nói rằng nó đã thúc đẩy. Tôi nghĩ đó là giao thức mã nguồn mở phát triển nhanh nhất trong lịch sử.
Alex: Wow, đó thực sự là một sự phát triển vượt bậc, và có một nhu cầu lớn về nó.
John: Vâng, vì vậy chúng tôi đã mã nguồn mở nó. Và kể từ khi điều này cất cánh, nó thực sự đã vượt xa ước mơ hoang dại nhất của chúng tôi khi chúng tôi phát hành đặc tả nhỏ này. Và vì vậy chúng tôi đã thực hiện rất nhiều công việc khi điều này bắt đầu chuyển đổi từ một cách hay ho cho dự án Anthropic để Anthropic có thể lấy ngữ cảnh cho các mô hình AI của mình thành một tiêu chuẩn định hình ngành, một hệ sinh thái. Chúng tôi đã thực hiện rất nhiều công việc để chuyển nó sang một quỹ mã nguồn mở đúng nghĩa và làm việc với tất cả các nhà cung cấp khác để biến MCP thành một thứ gì đó bền vững và tồn tại lâu dài.
Tình hình hiện tại và các tính năng mới
Alex: Tình hình MCP hiện tại như thế nào, cả về cộng đồng mã nguồn mở và đặc tả kỹ thuật? Đã gần một năm, ít hơn một năm một chút kể từ khi chúng ta công bố nó lần đầu, và tôi cảm thấy nhiều người vẫn có trực giác dựa trên cách nó hoạt động vào đầu năm nay, vào đầu năm 2025 hoặc đại loại thế. Nhưng giao thức đang phát triển rất nhanh, và mọi thứ đang thay đổi. Theo quan điểm của bạn, Mike, trạng thái hiện tại của MCP là gì?
Michael: Tôi cảm thấy một khoảnh khắc 'aha' lớn đối với tôi, ít nhất, là khi chúng tôi phát hành hỗ trợ MCP từ xa. Một số điểm kỳ lạ ban đầu của giao thức là bạn phải tự chạy mọi thứ một cách hiệu quả, điều này ngăn các nhà cung cấp máy chủ MCP như Asana không thể lưu trữ các máy chủ của riêng họ mà bạn có thể truy cập rất, rất nhanh chóng, và nó khiến quá trình thiết lập rất, rất cồng kềnh. Và tôi nghĩ rằng một bước ngoặt rất lớn, theo ý kiến của tôi, là khi chúng tôi cung cấp hỗ trợ hạng nhất cho máy chủ MCP được lưu trữ từ xa đã giảm đáng kể quá trình thiết lập để người dùng cuối có thể bắt đầu khá nhanh chóng.
Alex: Và bây giờ chúng ta có một kho lưu trữ của các máy chủ này, vậy mọi người thực sự có thể tải lên chúng vào kho lưu trữ? Sau đó chúng ta cấp quyền cho chúng hay chúng ta cải thiện chúng?
John: Vâng, hoàn toàn. Dự án mã nguồn mở đã phát hành một kho lưu trữ trung tâm của các máy chủ MCP theo tinh thần mã nguồn mở. Chúng tôi có cả một kho lưu trữ được lưu trữ tại trang web của tổ chức Model Context Protocol và một tiêu chuẩn cho phép các tổ chức khác mở rộng kho lưu trữ, lấy thông tin đó vào. Và vì vậy chúng tôi đã thấy sự phát triển mạnh mẽ của các MCP GitHub, MCP Asana. Rất nhiều công ty đang xây dựng và triển khai các điểm cuối này. Và vì vậy, việc kéo cái này vào trở nên dễ dàng hơn. Trước đây, nếu bạn muốn tương tác với GitHub, bạn phải tìm một nhà phát triển ngẫu nhiên nào đó đã tùy chỉnh một Trình kết nối GitHub và sau đó tin tưởng vào cài đặt Node.js của họ trên máy tính của bạn. Và bây giờ bạn chỉ cần truy cập trang GitHub chính thức – như tôi nghĩ là MCP.github.com – bạn có thể đưa nó vào Claude Code hoặc Claude.ai của mình và sau đó mở rộng Claude với khả năng tương tác với GitHub. Đúng không? Vì vậy, nó thực sự đang trưởng thành theo một cách rất tuyệt vời.
Alex: Điều đó khá tuyệt, và tôi cũng đã sử dụng GitHub MCP cho các tác vụ trong Claude Code, và thật tuyệt khi chỉ cần có một điểm cuối URL đó, giống như một plugin. Hiện tại có bất kỳ MCP độc đáo, thú vị nào trong kho lưu trữ hoặc bên ngoài kho lưu trữ mà các bạn đã thấy không?
Michael: Tôi nghĩ có một cái mà tôi thấy thực sự, thực sự thú vị khi xem, nó được gọi là Context 7. Một trong những hạn chế lớn nhất của Mô hình ngôn ngữ lớn là chúng có một thời điểm cắt kiến thức thường bị trì hoãn vài tháng, điều này có nghĩa là việc làm việc với các gói mới nhất và tốt nhất với tư cách là một nhà phát triển phần mềm đôi khi khó khăn với LLM vì chúng sẽ chỉ cung cấp cho bạn thông tin lỗi thời. Và những gì Context 7 làm là nó lấy tài liệu từ các trang web này, như trang web Next.js hoặc thậm chí trang web API của chúng tôi và cập nhật chúng. Và tất cả những gì bạn phải làm là cấu hình kết nối MCP của mình một lần, và Claude sẽ có quyền truy cập vào thông tin mới nhất về bất cứ điều gì bạn đang phát triển đối với.
Alex: Được rồi, vâng, tôi nghĩ tôi đã nghe nói về điều đó. Vậy về cơ bản chúng ta đang kéo vào các tài liệu mới nhất, mọi thứ. Và tôi biết hiện tại chúng ta cũng đang trong giai đoạn chuyển tiếp khi nhiều người đang biến các tài liệu của họ hoàn toàn thành văn bản thô có thể truy cập được đối với LLM. Vì vậy, tôi cho rằng điều đó giống như kéo từ cùng một loại thông tin.
Michael: Vâng, vậy đây là định dạng LLMs.Tex, vâng, mà tôi đã thấy rất nhiều áp dụng trên toàn bộ ngành công nghệ, điều này thực sự thú vị khi thấy.
Alex: Tuyệt vời. Còn bạn thì sao, John?
John: Về phần mình, tôi thấy nó hữu ích, tôi nghĩ, từ công việc của tôi với tư cách là một nhà phát triển phần mềm. Tôi thực sự thích Playwright làm máy chủ MCP, cho phép Claude tương tác với trình duyệt như thể nó là một người dùng đang nhấp chuột xung quanh. Vì vậy, nếu bạn đang làm việc trên một trang web, Claude có thể đọc tất cả CSS và HTML của bạn, nhưng nó không thể thực sự nhìn vào trang web của bạn. Nhưng nếu bạn cài đặt máy chủ Playwright MCP, thì bạn có thể để Claude nhìn vào trang web của bạn và đưa ra lời khuyên về cách làm cho nó đẹp hơn hoặc khắc phục các vấn đề căn chỉnh.
Alex: Vậy là nó thực sự chụp ảnh màn hình?
John: Vâng, nó thực sự tải nó lên trong một trình duyệt, duyệt web bằng Playwright, một dự án Microsoft cho phép điều khiển trình duyệt từ xa.
Alex: Điều gì sẽ xảy ra khi bạn đưa nó vào một vòng lặp với một thứ như Claude Code?
John: Ồ, bạn có thể tạo ra một số vòng lặp tự cải thiện. Ví dụ, nếu tôi bảo Claude Code khắc phục vấn đề căn chỉnh trong tiêu đề, nó có thể thay đổi HTML của tôi, thay đổi CSS của tôi, tải lại trang nếu cần, sau đó nhìn lại và nói "Ồ, mọi thứ trông tốt hơn," hoặc "điều đó không khắc phục được." Và nó có ngữ cảnh để thấy cả thay đổi của nó và sau đó thực sự có thể chụp ảnh màn hình trang web và nói, "Ồ, tập thay đổi CSS này thực sự dẫn đến hiệu ứng mà tôi không mong muốn. Hãy hoàn tác và thử cách khác." Đó là một vấn đề căn chỉnh khác.
Alex: Vâng. Vâng, vấn đề căn chỉnh CSS có lẽ là một vấn đề thậm chí khó hơn.
Sử dụng MCP với Claude API và lời khuyên cho nhà phát triển
Alex: Chuyển chủ đề một chút. Nếu tôi là một nhà phát triển và tôi muốn sử dụng Claude API, làm thế nào tôi có thể sử dụng MCP với API của chúng ta và với mô hình AI Claude?
Michael: Đó là một câu hỏi tuyệt vời. Cách tiêu chuẩn chính tắc để thực hiện điều này là cài đặt MCP SDK, thiết lập vòng lặp của riêng bạn như bạn đã đề cập với Claude Code và xử lý việc kết nối với bất kỳ máy chủ MCP nào bạn cần kết nối. Nhưng về cơ bản đó là trách nhiệm của bạn với tư cách là một nhà phát triển phần mềm để tập hợp tất cả các công việc kết nối, điều này rất tuyệt và nó hoạt động. Nhưng những gì chúng tôi gần đây đã phát hành trực tiếp vào API dưới dạng một tính năng gốc là tính năng Trình kết nối MCP, cho phép bạn chỉ cần chỉ định nơi MCP từ xa của bạn tồn tại, như MCP.github.com, và cung cấp cho chúng tôi bất kỳ thông tin ủy quyền nào, và chúng tôi có thể lo liệu vòng lặp gọi đó của việc thực thi các công cụ và nhận kết quả được đưa trở lại mô hình AI cho bạn. Vì vậy, tất cả những gì bạn thực sự phải làm là gửi một lệnh gọi API duy nhất nói rằng "hãy cung cấp cho tôi các yêu cầu kéo mới nhất," vâng, và nó sẽ tiến hành và lo liệu điều đó cho bạn.
Alex: Điều đó tuyệt vời. Tôi đã nghe từ rất nhiều nhà phát triển rằng họ đã có thể xóa bỏ rất nhiều mã vì họ chỉ cần có điều đó. Vì vậy, họ không phải xử lý tất cả những trao đổi qua lại đó nữa, chỉ cần truyền URL vào điểm cuối và sau đó sẵn sàng sử dụng. Có những lời khuyên nào khác cho các nhà phát triển sử dụng MCP không?
John: Tôi nghĩ điều chính mà tôi cố gắng đưa ra cho các nhà phát triển khi tôi nói chuyện là các máy chủ MCP và công cụ thực sự nằm ở câu lệnh cốt lõi. Và vì vậy chúng tôi đã học được rằng nếu bạn đang viết ứng dụng được hỗ trợ bởi AI, điều thực sự quan trọng là phải cẩn thận và chính xác về ngôn ngữ bạn sử dụng khi bạn nhắc mô hình AI.
Tối ưu hóa Mô tả Công cụ trong MCP
Điều này áp dụng cho mọi khía cạnh khi định nghĩa MCP server của bạn, như đặt tên tool phù hợp, cung cấp mô tả chi tiết – có thể kèm theo một vài ví dụ mẫu về cách sử dụng tool trong phần mô tả đó, và đặt tên tham số hợp lý. Tất cả những yếu tố này đều ảnh hưởng đến hành vi của mô hình AI khi nó tương tác với MCP server.
Ví dụ, tôi đã từng xây dựng một server tạo ảnh. Tôi có một tool tên là "Generate Image" với một trường "description" (mô tả) đơn giản, và hết. Khi tôi yêu cầu Claude: "Hãy tạo cho tôi một hình ảnh về một chú chó con dễ thương," nó sẽ gọi tool đó và truyền "description: a cute puppy".
Nhưng nếu bạn thay đổi mô tả và viết: "Công cụ này gọi mô hình diffusion XXX phiên bản Y, và cần được nhắc theo phong cách cụ thể để có kết quả tốt nhất, hãy sử dụng ngôn ngữ kiểu script như thế này." Claude sẽ có thông tin về cách tương tác với các hệ thống này và chỉ cần được thông báo rằng: "À, tôi biết mình đang nói chuyện với một mô hình diffusion rồi, bây giờ tôi sẽ thay đổi ngôn ngữ mình dùng trong prompt này." Thay vì chỉ hỏi về một "chú chó con dễ thương", nó sẽ cung cấp một prompt mô hình diffusion chi tiết hơn nhiều, mang lại kết quả tốt hơn đáng kể.
Bạn sẽ nhận được kết quả tốt hơn từ MCP server của mình chỉ bằng cách thay đổi vài từ trong mô tả hoặc tên prompt – tương tự như việc bạn nhận được kết quả tốt hơn khi viết pull request và thực hiện bất kỳ công việc tri thức nào với Claude bằng cách tinh chỉnh chúng. Bản thân tôi cũng thường xuyên quên điều này: khi bạn làm việc với một tool hoặc một mô tả nào đó một cách độc lập khi đang phát triển một tính năng mới cho một ứng dụng AI nào đó, tất cả đều được đưa vào cùng một prompt cuối cùng. Cuối cùng, đó chỉ là một chuỗi văn bản duy nhất được đưa vào mô hình AI trong mỗi request. Và đúng vậy, đây là một lời khuyên hay: mô tả mà bạn viết trong một file JSON nào đó trong mã của mình cũng sẽ được đưa vào cùng prompt được gửi đến Claude trong request của nó.
Quản lý Context và Hạn chế Tool Dư Thừa
Hãy nói thêm một chút về quản lý context và cách xử lý nhiều tool cũng như nhiều kết quả. Đây là một vấn đề lớn đối với các mô hình ngôn ngữ lớn (LLM) hiện nay về việc "làm nhiễu" context. Bạn có suy nghĩ gì về cách các nhà phát triển nên tiếp cận vấn đề này với MCP không?
Tôi nghĩ rằng một anti-pattern lớn mà chúng tôi thấy nhiều nhà phát triển mắc phải là nhồi nhét vào MCP server hoặc API request của họ hàng tấn tool hoặc hàng tấn MCP server. Điều này không chỉ tốn kém vì bạn đang tạo ra token cho mỗi tool hoặc server bạn thêm vào, mà còn có xu hướng làm mô hình AI bị nhầm lẫn.
Ví dụ, nếu bạn kết nối cả MCP server quản lý tác vụ Linear và Asana trong cùng một request, cả hai đều có thể có một MCP tool tên là "get project status" (lấy trạng thái project). Mô hình AI sẽ không có thông tin rõ ràng về việc sử dụng tool nào trong ngữ cảnh nào. Hơn nữa, bạn đang thực chất làm mô hình AI nhầm lẫn bằng cách cung cấp thông tin có khả năng xung đột.
Vì vậy, hãy rất cẩn thận và có tính xác định về việc bạn thêm tool nào, đảm bảo rằng chúng có ý nghĩa xung quanh mặt kinh tế của chúng và việc sử dụng các tool đó sẽ cảm thấy tự nhiên đối với bạn nếu bạn tự mình sử dụng chúng. Hơn nữa, hãy đảm bảo rằng bạn không bao gồm bất kỳ thông tin nào có thể không nhất thiết giúp ích cho prompt hiện tại của người dùng. Đôi khi, những phần cũ hơn của cuộc trò chuyện có thể bao gồm thông tin rất cơ bản, ví dụ: "thời tiết hôm nay thế nào?" có thể không còn liên quan nhiều về sau trong cuộc trò trò chuyện khi bạn chuyển sang tin tức mới nhất hoặc thông tin khác mà bạn cần từ mô hình AI.
Tôi thường được hỏi: "Tôi có thể truyền bao nhiêu tool vào Claude?" hoặc "Tôi có thể kết nối bao nhiêu MCP server cùng lúc?". Có vẻ như đây không phải là một câu hỏi về số lượng tuyệt đối, mà là về mức độ khác biệt của các tool, mức độ xác định rõ ràng và phạm vi của chúng. Điều đó có đúng không, hay có một giới hạn số lượng MCP tuyệt đối nào đó?
Bạn cũng sẽ gặp phải một số lượng tuyệt đối nhất định. Nếu cửa sổ ngữ cảnh của bạn là X token, mỗi server sẽ đưa vào một số định nghĩa hàm, và mỗi định nghĩa đó sẽ chiếm token. Vì vậy, khi bạn cung cấp cho mô hình AI càng nhiều thông tin, càng khó để nó đưa ra quyết định tốt. Mặc dù nó có thể vẫn hoạt động nếu bạn kết nối một loạt server, nhưng nó có thể hoạt động tốt hơn nếu bạn có thể cung cấp cho Claude một tập hợp con tool liên quan đến tác vụ mà nó đang xem xét.
Thiết kế MCP Server Hiệu quả
Một điểm khác từ những gì Michael đang nói là khi bạn thiết kế một MCP server, nhìn chung, nếu bạn có thể có một hoặc hai tool trong server của mình thay vì 15 hoặc 20 tool, điều đó sẽ giúp mô hình AI rất nhiều. Đôi khi, phát triển giao diện MCP hơi khác so với phát triển API truyền thống, nơi chúng ta đưa những tool này vào các mô hình ngôn ngữ lớn (LLM).
Nếu bạn cung cấp cho một tool một mô tả có thể sử dụng ngôn ngữ tự nhiên hoặc có phần điền tham số, mô hình AI sẽ đưa ra một số quyết định và tạo ra một số văn bản. Bạn có thể không cần nhiều API như get projects, get posts, get users mà thay vào đó chỉ cần một tool "get info" (lấy thông tin), nơi mô hình ngôn ngữ lớn (LLM) có thể xem xét mô tả của bạn và điền vào bất kỳ thông tin nào nó cần. Bằng cách đó, bạn có thể cung cấp một bộ tool nhỏ hơn nhiều, vừa tương tác tốt với các MCP server khác, vừa đảm bảo server của bạn được gọi hiệu quả và phù hợp hơn.
Đúng vậy, nó không phải lúc nào cũng là một bản dịch một-một; có nhiều cấp độ abstraction khác nhau để áp dụng, và có lẽ API spec không phải là thứ được định nghĩa tốt nhất để mô hình AI tiếp nhận.
Các bạn làm việc với MCP hàng ngày, vậy các bạn đang sử dụng nó như thế nào, dù là ở nơi làm việc, ở nhà hay cho một project phụ nào đó? Tôi biết ví dụ về Playwright, còn những cách nào khác mà các bạn đang thử nghiệm MCP bên lề không?
Ứng dụng Thực tế của MCP
Một trong những trường hợp sử dụng lớn nhất mà tôi tự mình tìm thấy là Anthropic thường giống như một xa lộ thông tin. Có quá nhiều thông tin khắp mọi nơi, từ Slack của chúng tôi đến các tài liệu và codebase. Việc nắm bắt trạng thái mới nhất của project mà tôi đang làm thường không dễ hiểu từ một nguồn duy nhất.
Vì vậy, thói quen của tôi là tôi sẽ thiết lập các MCP server trên claude.ai hoặc Claude Code để kết nối với tất cả các vị trí khác nhau này. Sau đó, tôi chỉ cần hỏi nó: "Này, đây là một vài ví dụ về các cập nhật trạng thái project mà tôi đã tự viết. Bạn có thể tìm thông tin từ tuần trước và tạo một bản cập nhật trạng thái sử dụng cùng định dạng chính xác không?" Và tôi phải nói rằng, tỷ lệ thành công của việc này cao hơn nhiều so với tôi nghĩ ban đầu.
Có phải các cập nhật trạng thái của bạn và Slack của bạn đều do Claude tạo ra không? Tôi chưa bao giờ thực sự đọc bất cứ thứ gì [tôi tự viết]. Tôi đã chỉ đọc Claude mọi lúc. Vâng, rất vui được biết. Còn bạn thì sao, John?
Tôi đã tìm thấy một vài hướng từ việc mày mò xung quanh phần cứng ở nhà. Tôi có một số MCP server chạy trên mạng gia đình của mình có thể kiểm soát các thiết bị trong nhà. Vì vậy, tôi có thể vào một cuộc trò chuyện trong Claude và hỏi: "Này, sáng nay tôi có để cửa mở khóa không?". Và Claude có thể trả lời: "Vâng, cửa nhà bạn hiện đang mở khóa. Bạn có muốn tôi khóa nó cho bạn không?". Và tôi có thể trả lời lại: "Vâng, điều đó thật tuyệt."
Sự Kỳ Diệu của Máy Chủ MCP và Các Đặc Tính Nổi Bật
Những thứ như vậy thực sự hữu ích, khá thú vị khi thử nghiệm. Nó giống như một cái nhìn thoáng qua về thế giới tương lai. Có một cảm giác kỳ diệu với các máy chủ MCP vì bạn có được những đặc tính nổi bật (emergent properties) mà bạn có thể không ngờ tới khi thêm chúng. Một ví dụ là khi chúng tôi lần đầu tiên bắt đầu thử nghiệm với các máy chủ MCP, tôi đã xây dựng một máy chủ đồ thị tri thức với một số đồng nghiệp của tôi tại Anthropic. Một đồ thị tri thức trong trường hợp này có nghĩa là chúng tôi muốn cung cấp cho Claude khả năng ghi nhớ và tạo ra các kết nối giữa các ký ức. Vì vậy, đó là một máy chủ MCP có hai công cụ: một công cụ tạo ký ức và một công cụ kết nối ký ức với các ký ức khác, với giao diện đơn giản nhất có thể. Chúng tôi đã kết nối điều này với Claude, và Claude đột nhiên, bạn sẽ có những cuộc trò chuyện với Claude, và nó sẽ chuyển sang chế độ nhà báo điều tra. Ví dụ, tôi sẽ nói, "Tôi chơi piano," và Claude sẽ nói, "Thật tuyệt vời! Bạn thích chơi gì?" Và tôi sẽ trả lời, "Tôi thích chơi nhạc rock, lúc có lúc không." Sau đó, nó sẽ hỏi, "Có bản nhạc yêu thích nào của bạn không?" Và tôi sẽ nhìn vào đồ thị tri thức, và Claude sẽ ghi chú lại, "Người dùng có gu âm nhạc cổ điển tinh tế," hoặc "Người dùng thành thạo các nhạc cụ." Và đó chỉ là từ một thay đổi nhỏ mà bạn cung cấp. Một trong những điều thực sự tuyệt vời khi có MCP dưới dạng một giao thức là nếu bạn kết nối máy chủ Gmail của mình với máy chủ tự động hóa nhà ở, thì có thể Claude có thể tìm ra cách giải quyết vấn đề mà bạn yêu cầu bằng cách kết nối hai thứ đó lại với nhau, điều mà bạn có thể chưa bao giờ nghĩ đến. Vâng, có một sự mơ hồ (fuzzy) ở giữa khi những thứ này được kết nối với nhau. Kết hợp điều đó với trí thông minh tổng quát của Claude, và nhiều điều thú vị có thể xảy ra.
MCP so với API Truyền Thống và Tương Lai Tiềm Năng
Và đó là một trong những điểm khác biệt cốt lõi giữa MCP và các API có cấu trúc truyền thống. Bởi vì mọi thứ rất mơ hồ (fuzzy), và vì các Mô hình ngôn ngữ lớn (LLM) đủ thông minh để kết nối chúng lại với nhau, bạn ít quan tâm hơn đến các hợp đồng. Có một đặc tính thú vị: nếu tôi có một máy chủ MCP để tương tác với Gmail, và sau đó tôi thực hiện một số đánh giá và tôi tìm thấy một bộ công cụ và mô tả tốt hơn để tương tác với Gmail – và nó thay đổi từ 15 công cụ với một bộ mô tả thành, chẳng hạn, hai công cụ với một bộ khác – tôi không cần phải triển khai một phiên bản API mới cho điều đó. Nếu bạn thay đổi API của mình một cách lớn như vậy, đó là một vấn đề lớn với các thay đổi gây lỗi (breaking changes), phải trao đổi với người dùng, thực hiện tất cả những điều đó. Với MCP, tôi có thể chỉ cần triển khai nó. Bởi vì ý định của MCP là cho phép nó tương tác với Gmail, nó không phải là tôi sẽ cung cấp một công cụ đọc email và một công cụ viết email. Vì vậy, nó tập trung nhiều hơn vào ý định và các hành động ở cấp độ cao hơn, hơn là chi tiết kỹ thuật cụ thể về cách chúng ta đạt được điều đó. Điều đó thực sự thú vị.
Vậy, tất cả những điều này sẽ đi đến đâu? MCP sẽ ở đâu trong sáu tháng, 12 tháng, một năm hoặc hơn? Đó là một câu hỏi thú vị vì tôi luôn coi MCP là một giao thức, như John đã nói. Vì vậy, thật thú vị khi thấy sự phổ biến của một giao thức khi mà, nếu MCP thành công và chúng tôi, và tất cả mọi người tích hợp với nó, đã làm đúng công việc của mình, chúng ta sẽ không bao giờ biết rằng MCP đang diễn ra "dưới vỏ bọc" (under the hood). Nó chỉ nên là bạn đang sử dụng bất kỳ chương trình hoặc ứng dụng nào bạn đang dùng, và MCP đang diễn ra "dưới vỏ bọc", chỉ là kết nối mọi thứ lại với nhau, và các Mô hình ngôn ngữ lớn (LLM) sẽ cấu hình mọi thứ. Vì vậy, bạn chỉ cần cung cấp cho nó "cánh tay và đôi chân" mà nó cần. Nhưng vâng, tôi luôn thấy thú vị khi thấy sự cường điệu xung quanh MCP. Bạn có nghĩ rằng điều đó sẽ tiếp tục không? Liệu có một cao nguyên (plateau) ở đây không, hay điều đó thực sự trông như thế nào về mặt các giao thức? Có bất kỳ tiền lệ nào chúng ta có thể xem xét để so sánh MCP không? Tôi nghĩ thật khó để áp dụng một tiền lệ cho bất cứ điều gì trong thế giới Trí tuệ nhân tạo (AI) mà chúng ta đang sống, nhưng tôi chắc chắn thấy rất nhiều điều mà John và các đồng nghiệp của anh ấy trong nhóm MCP đang làm rất thú vị. Đối với tôi, thật tuyệt vời khi thấy các công ty, lớn và nhỏ, cùng nhau thảo luận về cách chúng ta có thể phổ biến nó và biến nó thành một thứ phổ biến (ubiquitous) ở khắp mọi nơi, giống như Internet của chúng ta vậy.
Tầm Nhìn Tương Lai về Việc Áp Dụng và Cạnh Tranh MCP
Một điều thực sự thú vị đối với tôi trong tương lai, tôi nghĩ chúng ta đang ở một thời điểm mà nhiều người đã nhận ra giá trị của MCP, và họ đã bắt đầu viết các máy chủ này. Nhưng về mặt tương tự máy chủ MCP với câu lệnh (prompt), chúng ta đang ở giai đoạn rất sớm. Và vì vậy, tôi thực sự hào hứng khi mọi người, sau khi đã bắt đầu xây dựng các máy chủ này, bắt đầu đánh giá cách chúng hoạt động và cải thiện chúng. Tôi rất mong nó sẽ bắt đầu trở thành một tiêu chí mà bạn có thể đánh giá một nhà cung cấp cho công việc của mình. Ví dụ, nếu tôi thuê ai đó làm phân tích nhật ký, sẽ rất tuyệt vời và có giá trị đối với tôi nếu tôi có thể chỉ cần kết nối máy chủ MCP phân tích nhật ký của họ vào Claude của tôi và nói, "Này, trang web của tôi đang gặp sự cố, chuyện gì đang xảy ra vậy?" Và nếu họ đã thiết kế và phát triển một máy chủ MCP thực sự tuyệt vời cung cấp cho Claude các công cụ cần thiết để tương tác với dịch vụ của họ và tìm ra câu trả lời đó, thì đó là một điểm bán hàng lớn đối với tôi với tư cách là một kỹ sư. Bởi vì khi đó tôi có thể dựa vào chức năng này mà không cần phải tự xây dựng nó. Và tôi rất hào hứng khi điều này bắt đầu trở nên trưởng thành hơn và không còn chỉ là, "Thật thú vị khi chúng tôi đã xuất xưởng một máy chủ MCP," mà bắt đầu thấy mọi người cạnh tranh về, "Chúng tôi có máy chủ MCP tốt nhất. Điều này sẽ giúp cuộc sống của bạn dễ dàng hơn rất nhiều. Bạn nên sử dụng chúng tôi vì chúng tôi tương tác với Claude theo cách này." Vâng, tôi cũng rất mong chờ tương lai đó. Cảm ơn các bạn đã tham gia. Điều này thật tuyệt vời. Cảm ơn rất nhiều.