MCP Go: Client/Server, tools dễ ợt với Go!
TL;DR
Đây là bộ SDK chính thức của Model Context Protocol (MCP) dành cho Go. Nó giúp Go devs dễ dàng xây dựng các client và server AI, gọi tool và giao tiếp với các AI model khác theo một chuẩn chung.
Nói đơn giản: Như có một “phiên dịch viên” quốc tế cho các AI tool của bạn, giúp chúng nói chuyện trôi chảy mà hông cần học ngôn ngữ riêng của từng đứa.
Tổng quan
MCP Go SDK là một thư viện Go chính thức, được thiết kế để triển khai Model Context Protocol (MCP). Nghe có vẻ fancy nhưng bản chất là nó cung cấp một bộ công cụ giúp các ứng dụng Go của bạn có thể giao tiếp với các AI model (hoặc các AI agent) một cách chuẩn hóa.
Cụ thể, SDK này bao gồm nhiều package:
mcp: Dùng để xây dựng client và server MCP chính.jsonrpc: Dành cho những ai muốn tự tùy chỉnh lớp transport (lớp giao tiếp).authvàoauthex: Cung cấp các primitive để hỗ trợ OAuth, giúp bạn bảo mật các tool AI của mình.
Điểm hay là SDK này cố gắng implement toàn bộ MCP spec, đảm bảo tính tương thích và đầy đủ tính năng. Nó cũng hỗ trợ nhiều phiên bản của MCP spec, nên bạn hông sợ bị lỗi thời ngay.
Xài vào việc gì?
Bạn đang build một AI agent cần gọi các chức năng bên ngoài Dùng SDK để tạo client, kết nối với các service (server) khác qua MCP, gọi tool một cách chuẩn hóa. Thay vì phải viết code parse JSON hay xử lý lỗi riêng cho từng API, bạn có một framework thống nhất giùm bạn mấy cái đó.
Bạn có một Go service muốn biến thành “tool” cho AI agent
Dùng SDK để tạo server, định nghĩa các hàm Go hiện có thành mcp.Tool, và expose chúng qua MCP. Ví dụ, bạn có một hàm SendEmail trong Go, giờ có thể biến nó thành mcp.Tool để AI agent gọi khi cần gửi email.
Cần tích hợp authentication (OAuth) cho AI service của mình
SDK có sẵn các package auth và oauthex giúp bạn xử lý OAuth một cách dễ dàng, hông cần tự code từ đầu. Điều này quan trọng khi bạn muốn các AI tool của mình chỉ được truy cập bởi những agent có quyền.
Các điểm chính
- Chuẩn hóa giao tiếp AI: MCP là một protocol, và SDK này là cách để bạn implement nó trong Go. Nghĩa là AI agent của bạn có thể nói chuyện với bất kỳ service nào hỗ trợ MCP mà hông cần custom API riêng lẻ cho từng cái.
- Giảm tải code boilerplate: Thay vì tự build JSON-RPC hay OAuth, SDK cung cấp sẵn các package
jsonrpc,auth,oauthexgiùm bạn. Bạn có thể tập trung vào logic nghiệp vụ chính của mình thôi. - Tách biệt logic và transport: Bạn có thể chạy server MCP của mình qua
stdin/stdout(như ví dụ) hoặc qua các transport phức tạp hơn (như HTTP, gRPC), mà hông ảnh hưởng đến logic của tool. Cái này giúp hệ thống của bạn linh hoạt và dễ mở rộng hơn. - Hỗ trợ nhiều phiên bản spec: SDK tương thích với nhiều phiên bản của MCP spec. Điều này giúp bạn dễ dàng nâng cấp hoặc duy trì các hệ thống cũ mà hông bị kẹt ở một phiên bản duy nhất.
Workflow gợi ý
- Biến Go function thành AI tool:
- Tạo một
mcp.Servermới. - Dùng
mcp.AddToolđể đăng ký Go function của bạn làm một tool. - Chạy
server.Runquamcp.StdioTransport(hoặc transport tùy chỉnh) để expose tool đó.
- Tạo một
- AI agent gọi Go tool:
- Tạo một
mcp.Clientmới. - Dùng
client.Connectđể kết nối đến server Go tool. - Gọi
session.CallToolvới tên tool và các arguments cần thiết.
- Tạo một
Quick Start
- Làm ngay tuần này: Clone repo của MCP Go SDK và thử chạy ví dụ “greeter” server và client. Hiểu cách một Go function biến thành AI tool và được gọi như thế nào.
- Bước tiếp: Áp dụng cho một Go service nhỏ của bạn. Biến một API endpoint đơn giản thành một
mcp.Toolvà thử gọi nó từ một client MCP đơn giản. - Thói quen duy trì: Khi cần tích hợp AI với Go service, luôn cân nhắc dùng MCP Go SDK để đảm bảo tính chuẩn hóa, khả năng mở rộng và tiết kiệm thời gian về lâu dài.
FAQ
- MCP là gì? Là Model Context Protocol, một chuẩn giao tiếp giúp các AI model (agent) gọi và sử dụng các công cụ (tool) bên ngoài một cách có cấu trúc và thống nhất.
- Tại sao nên dùng SDK này thay vì tự build? SDK cung cấp một framework hoàn chỉnh, đã được kiểm thử, hỗ trợ spec MCP. Nó giúp bạn tiết kiệm thời gian phát triển đáng kể, giảm thiểu bug và đảm bảo tính tương thích với các hệ thống AI khác.
- Nó có hỗ trợ authentication không? Có, SDK bao gồm các package
authvàoauthexđể hỗ trợ OAuth, giúp bạn bảo mật các AI tool của mình, chỉ cho phép các agent có quyền truy cập. - Tôi có thể đóng góp cho dự án không? Chắc chắn rồi, dự án này là open-source và luôn chào đón các đóng góp từ cộng đồng.
Đang tải nội dung...