Cách An Toàn Để Mở Rộng Máy Chủ MCP Với ngrok và ToolHive
Khi bạn ngày càng sử dụng nhiều máy chủ Model Context Protocol (MCP), có thể bạn sẽ gặp tình huống cần phải mở rộng các điểm cuối này ra bên ngoài. Ví dụ, bạn có thể cần mở rộng máy chủ cho một đối tác hoặc khách hàng để thử nghiệm và tích hợp. Có thể tổ chức của bạn có một văn phòng chi nhánh không có quyền truy cập mạng trực tiếp nhưng vẫn cần phải kết nối với các máy chủ MCP. Hoặc, sản phẩm của bạn có thể cung cấp dịch vụ MCP 'công cụ như một dịch vụ' cho khách hàng bên ngoài VPC của bạn.
Có một cách nhanh chóng, đơn giản và an toàn để mở rộng máy chủ MCP khi chúng được quản lý bởi ToolHive và tích hợp với ngrok. Dưới đây, chúng tôi sẽ hướng dẫn bạn cách thực hiện điều này bằng lệnh proxy tunnel của ToolHive. Nhưng trước tiên, hãy cùng tìm hiểu một chút về ToolHive và ngrok cho những ai mới với các giải pháp này.
ToolHive: Nền Tảng MCP
ToolHive là điểm khởi đầu cho việc chạy MCP trong môi trường sản xuất. Nó quản lý:
- Vòng đời máy chủ: Khởi động, dừng và quản lý các phiên bản máy chủ MCP.
- Phương thức truyền tải: Hỗ trợ nhiều giao thức giao tiếp (stdio, SSE, streamable-http).
- Bảo mật: Quản lý bí mật, quyền truy cập và cách ly.
- Khám phá: Cung cấp một kho dữ liệu về các máy chủ MCP có sẵn.
ngrok: Cổng API
ngrok là một cổng API linh hoạt, cung cấp quyền truy cập ngay lập tức và an toàn, ở bất kỳ đâu. Nó quản lý:
- Danh tính và quyền truy cập: Hỗ trợ OIDC và OAuth2, cung cấp RBAC theo tenant.
- Tunneling an toàn: Xử lý HTTPS với các URL công khai được tạo tự động.
- An toàn & quản trị: Thiết lập giới hạn tốc độ và quản lý vùng ảnh hưởng.
- Quan sát: Cung cấp nhật ký và dấu vết kiểm toán.
Bắt đầu:
Trước khi đi vào chi tiết, bạn cần giải quyết một vài yêu cầu dễ dàng:
Tạo tài khoản ngrok
- Truy cập trang web ngrok và đăng ký tài khoản miễn phí (hoặc trả phí).
Lấy mã thông báo xác thực ngrok
- Sau khi đăng nhập, bạn sẽ thấy mã thông báo xác thực của mình trong bảng điều khiển ngrok—thường nằm dưới mục Auth hoặc Setup.
- Sao chép mã thông báo đó (được đại diện ở đây là
xxxtrong các ví dụ).
Kích hoạt miền cố định hoặc tùy chỉnh (tùy chọn)
Thiết lập một miền thương hiệu cố định (ví dụ: your-app.ngrok.io hoặc một miền tùy chỉnh như api.yourcompany.com) thay vì một địa chỉ ngẫu nhiên bằng cách yêu cầu miền tĩnh miễn phí tại dashboard.ngrok.com/domains.
Mở rộng các điểm cuối máy chủ MCP
Khi chúng ta làm việc qua ví dụ này, hãy tưởng tượng bạn có một máy chủ OSV MCP mà bạn muốn mở rộng ra bên ngoài, để những người dùng khác có thể thử nghiệm tích hợp của bạn. Bạn đã thiết lập và đang quản lý máy chủ OSV MCP đó bằng ToolHive với khối lượng công việc nội bộ lắng nghe trên localhost.
Lệnh đầu tiên của bạn sẽ là:
bash
export NGROK_TOKEN=<your_ngrok_token>
export NGROK_URL=<your_ngrok_url>
thv proxy tunnel osv test \
--tunnel-provider ngrok \
--provider-args "{
\"auth-token\": \"${NGROK_TOKEN}\",
\"url\": \"${NGROK_URL}\"
}"
Lệnh đó bao gồm các hành động sau:
thv proxy tunnel osv testkhởi động một đường hầm cho khối lượng công việc ToolHive có tên là osv (trong ngữ cảnh thử nghiệm).--tunnel-provider ngrokyêu cầu ToolHive sử dụng ngrok như một cơ chế tạo đường hầm.--provider-argstruyền bất kỳ tham số cần thiết nào cho ngrok, chẳng hạn như thông tin xác thực để đường hầm được thiết lập đúng cách dưới tài khoản của bạn.
Kết quả là một điểm cuối trong ngrok với tất cả các cài đặt đã được cấu hình:
Khi lệnh chạy thành công, bạn sẽ nhận được một URL HTTPS công khai mà bạn có thể sử dụng và tích hợp vào các công cụ của mình. Trong ví dụ của chúng tôi, URL đó trông như thế này:
json
"osv": {
"url": "https://ricarda-presuggestive-archaically.ngrok-free.app",
"description": "Máy chủ OSV MCP để thử nghiệm"
}
Điều này có nghĩa là máy chủ OSV MCP cục bộ, vốn chỉ có thể truy cập trên localhost, giờ đây có thể được truy cập từ bên ngoài và có thể được sử dụng bởi những người dùng khác để thử nghiệm tích hợp của bạn:
Tóm tắt lợi ích của cách tiếp cận này
Với một lệnh đơn giản, bạn đã thiết lập một URL công khai ngay lập tức mà không cần thay đổi DNS hay cấu hình tường lửa. Đây là một điểm cuối HTTPS an toàn, nhẹ và tạm thời, rất lý tưởng cho thử nghiệm ngắn hạn, trình diễn hoặc hợp tác với khách hàng và đồng nghiệp từ xa.
Chúng tôi rất phấn khởi về sự tích hợp giữa ToolHive và ngrok và cách nó giải quyết nhanh chóng và tinh tế một vấn đề mà nhiều doanh nghiệp sẽ gặp phải khi họ áp dụng MCP. Nếu bạn có câu hỏi hoặc ý tưởng, chúng tôi rất vui lòng nhận được phản hồi từ bạn. Hãy xem ToolHive và ngrok, và kết nối với chúng tôi trên Discord.
Các Thực Hành Tốt Nhất
- Kiểm tra đường hầm: Trước khi chia sẻ URL, hãy đảm bảo rằng đường hầm hoạt động đúng cách bằng cách kiểm tra kết nối từ máy khác.
- Bảo mật thông tin: Đừng chia sẻ mã thông báo ngrok của bạn công khai, hãy giữ nó an toàn.
Các Cạm Bẫy Thường Gặp
- Quên cấu hình quyền truy cập: Đảm bảo rằng người dùng mà bạn chia sẻ URL có quyền truy cập cần thiết.
- Sử dụng URL tạm thời: Ngrok tạo URL tạm thời, nếu bạn cần URL cố định, hãy cân nhắc sử dụng dịch vụ trả phí.
Mẹo Tối Ưu Hiệu Suất
- Giới hạn số lượng kết nối: Sử dụng ngrok với giới hạn kết nối để tránh quá tải máy chủ.
- Theo dõi hiệu suất: Sử dụng các công cụ quan sát để theo dõi hiệu suất của máy chủ MCP trong thời gian thực.
Khắc Phục Sự Cố
- Lỗi xác thực: Nếu bạn gặp lỗi xác thực, kiểm tra mã thông báo ngrok và đảm bảo rằng nó không bị hết hạn.
- Không thể kết nối: Nếu không thể kết nối với URL ngrok, kiểm tra xem tường lửa có chặn yêu cầu hay không.
Câu Hỏi Thường Gặp
1. Ngrok có miễn phí không?
Có, ngrok cung cấp cả gói miễn phí và trả phí với các tính năng nâng cao.
2. Tôi có thể sử dụng ngrok cho sản phẩm thương mại không?
Có, nhưng hãy kiểm tra điều khoản dịch vụ của ngrok để đảm bảo tuân thủ.
3. Tôi có thể chia sẻ URL ngrok với ai không?
Bạn có thể chia sẻ với những người cần truy cập, nhưng hãy chú ý đến quyền riêng tư và bảo mật.
Kết Luận
Mở rộng các điểm cuối máy chủ MCP bằng ngrok và ToolHive là một giải pháp hiệu quả và an toàn cho các nhà phát triển. Hãy thử ngay hôm nay và tối ưu hóa quy trình làm việc của bạn. Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại liên hệ với chúng tôi hoặc tham gia cộng đồng trên Discord.