1. Giới thiệu
Hãy cùng tìm hiểu về AllStrides, một nền tảng quản lý sự kiện toàn diện dành cho cộng đồng thể dục. Mặc dù có nhiều tính năng, nhưng trạng thái hiện tại của ứng dụng này là "Chỉ cục bộ". Công cụ này dựa vào cơ sở dữ liệu SQLite cục bộ và việc thực thi Node.js theo cách thủ công. Để cộng đồng phát triển, AllStrides cần có quy mô, độ tin cậy và tính bảo mật của Google Cloud.
Trong lớp học lập trình này, bạn sẽ không thực hiện quy trình di chuyển truyền thống. Thay vào đó, bạn sẽ đóng vai trò là một Kiến trúc sư sản phẩm, sử dụng Gemini CLI làm đối tác dựa trên tác nhân. Bằng cách trang bị cho Gemini 3 máy chủ Giao thức ngữ cảnh mô hình (MCP) của Google Cloud, bạn sẽ cho phép AI "tiếp cận" và tương tác trực tiếp với các dịch vụ của Google Cloud. Bạn sẽ bắt đầu bằng cách sử dụng MCP Kiến thức dành cho nhà phát triển để xác định cơ sở dữ liệu Google Cloud phù hợp nhất cho ứng dụng allstrides. Sau đó, bạn sẽ sử dụng MCP Cloud SQL để cung cấp một phiên bản cơ sở dữ liệu và di chuyển dữ liệu cộng đồng cục bộ lên đám mây chỉ bằng một câu lệnh. Cuối cùng, bạn sẽ dùng MCP của Cloud Run để đóng gói ứng dụng vào vùng chứa, giúp AllStrides hoạt động và có thể truy cập trên toàn cầu.

Điều kiện tiên quyết
- Có kiến thức cơ bản về Google Cloud Console
- Kỹ năng cơ bản về giao diện dòng lệnh và Cloud Shell
Kiến thức bạn sẽ học được
- Cách triển khai và định cấu hình Gemini CLI để hoạt động với MCP từ xa
- Cách sử dụng máy chủ MCP Development Knowledge
- Cách sử dụng máy chủ MCP từ xa của Cloud SQL để di chuyển dữ liệu lên đám mây
- Cách sử dụng máy chủ MCP từ xa Cloud Run để triển khai ứng dụng trên đám mây
- Cách sử dụng Gemini CLI trong Google Cloud Shell
Bạn cần có
- Tài khoản Google Cloud và dự án Google Cloud
- Một trình duyệt web như Chrome hỗ trợ Google Cloud Console và Cloud Shell
2. Thiết lập và yêu cầu
Thiết lập dự án
- Đăng nhập vào Google Cloud Console. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.
Sử dụng tài khoản cá nhân thay vì tài khoản do nơi làm việc hoặc trường học cấp.
- Tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Để tạo một dự án mới trong bảng điều khiển Google Cloud, hãy nhấp vào nút Chọn dự án trong tiêu đề. Thao tác này sẽ mở một cửa sổ bật lên.

Trong cửa sổ Chọn một dự án, hãy nhấn vào nút Dự án mới. Thao tác này sẽ mở một hộp thoại cho dự án mới.

Trong hộp thoại, hãy nhập tên Dự án mà bạn muốn và chọn vị trí.

- Tên dự án là tên hiển thị của những người tham gia dự án này. Tên dự án không được các API của Google sử dụng và bạn có thể thay đổi tên này bất cứ lúc nào.
- Mã dự án là mã duy nhất trên tất cả các dự án trên Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này sau khi đã đặt). Bảng điều khiển Google Cloud sẽ tự động tạo một mã nhận dạng riêng biệt, nhưng bạn có thể tuỳ chỉnh mã này. Nếu không thích mã nhận dạng được tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác hoặc cung cấp mã nhận dạng của riêng bạn để kiểm tra xem mã đó có còn trống hay không. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến mã dự án của mình. Mã này thường được xác định bằng phần giữ chỗ PROJECT_ID.
- Để bạn nắm được thông tin, có một giá trị thứ ba là Số dự án mà một số API sử dụng. Tìm hiểu thêm về cả 3 giá trị này trong tài liệu.
Bật tính năng thanh toán
Thiết lập tài khoản thanh toán cá nhân
Nếu thiết lập thông tin thanh toán bằng tín dụng Google Cloud, bạn có thể bỏ qua bước này.
- Nhấp vào đường liên kết này rồi đăng nhập bằng Tài khoản Google cá nhân.
- Bạn sẽ thấy nội dung như sau:

- Nhấp vào nút NHẤP VÀO ĐÂY ĐỂ XEM CÁC KHOẢN TÍN DỤNG. Thao tác này sẽ đưa bạn đến một trang để thiết lập hồ sơ thanh toán. Nếu bạn thấy màn hình đăng ký dùng thử miễn phí, hãy nhấp vào huỷ và tiếp tục liên kết thông tin thanh toán.

- Nhấp vào Xác nhận. Giờ đây, bạn đã kết nối với một Tài khoản thanh toán dùng thử trên Google Cloud Platform.

Thiết lập tài khoản thanh toán cá nhân
Nếu thiết lập thông tin thanh toán bằng tín dụng Google Cloud, bạn có thể bỏ qua bước này.
Để thiết lập tài khoản thanh toán cá nhân, hãy truy cập vào đây để bật tính năng thanh toán trong Cloud Console.
Một số lưu ý:
- Việc hoàn thành bài thực hành này sẽ tốn ít hơn 3 USD cho các tài nguyên trên đám mây.
- Bạn có thể làm theo các bước ở cuối bài thực hành này để xoá tài nguyên nhằm tránh bị tính thêm phí.
- Người dùng mới đủ điều kiện dùng thử miễn phí trị giá 300 USD.
Khởi động Cloud Shell
Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên Cloud.
Trên Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

Hoặc bạn có thể nhấn phím G rồi nhấn phím S. Trình tự này sẽ kích hoạt Cloud Shell nếu bạn đang ở trong Google Cloud Console hoặc sử dụng đường liên kết này.
Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn có thể thực hiện mọi thao tác trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt bất cứ thứ gì.
3. Trước khi bắt đầu
Bật Basic API
Để sử dụng các dịch vụ cơ sở dữ liệu được quản lý như Cloud SQL và các dịch vụ khác để tạo và triển khai ứng dụng của bạn vào Cloud Run, bạn cần bật các API tương ứng của chúng trong dự án Google Cloud.
Tuỳ thuộc vào phương pháp của bạn, bạn có thể bỏ qua bước này (không bắt buộc) và để Gemini CLI bật tất cả các API cần thiết sau này. Tuy nhiên, trong trường hợp đó, bạn có thể gặp phải một số độ trễ và các bước lặp lại trong quá trình thực thi.
Trong thiết bị đầu cuối Cloud Shell, hãy đảm bảo rằng bạn đã thiết lập mã dự án:
gcloud config set project [YOUR-PROJECT-ID]
Đặt biến môi trường PROJECT_ID:
PROJECT_ID=$(gcloud config get-value project)
Bật tất cả các dịch vụ cần thiết:
gcloud services enable sqladmin.googleapis.com \
aiplatform.googleapis.com \
secretmanager.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
Kết quả đầu ra dự kiến:
student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-14650]
student@cloudshell:~ (test-project-001-402417)$
student@cloudshell:~ (test-project-001-402417)$ gcloud services enable sqladmin.googleapis.com \
aiplatform.googleapis.com \
secretmanager.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
Operation "operations/acat.p2-812263612774-c2dbeef3-c4c1-4a7d-a4b2-b5380be65044" finished successfully.
Cấp quyền cho tài khoản dịch vụ
Bạn cần cấp quyền quản trị bộ nhớ cho tài khoản dịch vụ mặc định của Compute Engine để có thể tạo và lưu trữ hình ảnh ứng dụng. Như trong bước trước, bạn có thể uỷ quyền cho Gemini CLI sau này trong quá trình thực thi.
PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID --member=serviceAccount:$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")-compute@developer.gserviceaccount.com --role=roles/storage.admin
Bật MCP từ xa
Bạn phải bật rõ ràng các dịch vụ MCP từ xa cho từng dịch vụ trong một dự án. Theo mặc định, các chế độ này bị tắt và giúp điều chỉnh quyền truy cập API ở cấp dự án và dịch vụ.
Hãy bắt đầu với dịch vụ MCP Kiến thức dành cho nhà phát triển. Để bật Developer Knowledge API và dịch vụ MCP từ xa, bạn nên chạy các lệnh gcloud sau.
PROJECT_ID=$(gcloud config get-value project)
gcloud beta services mcp enable developerknowledge.googleapis.com --project=$PROJECT_ID
Khi bật API và MCP từ xa cho Kiến thức dành cho nhà phát triển, bạn có thể tiếp tục và làm tương tự cho dịch vụ MCP từ xa của Cloud SQL.
gcloud beta services mcp enable sqladmin.googleapis.com --project=$PROJECT_ID
Tương tự như tất cả MCP từ xa cho cơ sở dữ liệu, quyền và quyền truy cập MCP được dàn dựng để cung cấp quyền truy cập chi tiết ở cấp dự án cho chính API và chỉ một người dùng chính (người dùng hoặc tài khoản dịch vụ) có vai trò Quản trị viên sử dụng dịch vụ (roles/serviceusage.serviceUsageAdmin) mới có thể thực hiện việc này.
Và chỉ những người dùng chính có vai trò Người dùng công cụ MCP (roles/mcp.toolUser) mới có thể gọi đến API MCP từ xa.
Ví dụ: nếu không có vai trò Quản trị viên Cloud SQL (roles/cloudsql.admin), thì bạn sẽ không thể tạo, sao chép hoặc cập nhật bất kỳ phiên bản nào trong dự án.
Bạn có thể đọc thêm về các vai trò và quyền bắt buộc trong tài liệu.
Như chúng ta có thể thấy, cơ chế uỷ quyền theo giai đoạn và chi tiết giúp bảo vệ chúng ta khỏi các cuộc tấn công trái phép ngay cả khi điểm cuối MCP từ xa được bật, nhờ đó, hệ thống đủ an toàn cho quá trình sản xuất.
MCP từ xa tiếp theo mà chúng tôi sẽ bật là cho dịch vụ Cloud Run. Phương pháp bật và truy cập MCP từ xa trên Cloud Run tương tự như MCP từ xa trên Cloud SQL.
Bật dịch vụ MCP Cloud Run bằng lệnh sau.
gcloud beta services mcp enable run.googleapis.com --project=$PROJECT_ID
Cuối cùng, chúng ta có thể xác minh tất cả MCP từ xa được bật trong dự án bằng lệnh sau.
gcloud beta services mcp list --project=$PROJECT_ID
Kết quả đầu ra dự kiến:
student@cloudshell:~ (test-project-001-402417)$ gcloud beta services mcp list --project=$PROJECT_ID NAME: services/developerknowledge.googleapis.com MCP_ENDPOINT: developerknowledge.googleapis.com NAME: services/run.googleapis.com MCP_ENDPOINT: run.googleapis.com/mcp NAME: services/sqladmin.googleapis.com MCP_ENDPOINT: sqladmin.googleapis.com/mcp
Giờ đây, khi đã bật tất cả API và dịch vụ, chúng ta cần định cấu hình Gemini CLI.
4. Định cấu hình Gemini CLI
Phòng thí nghiệm này được thiết kế để sử dụng Gemini CLI làm tác nhân chính để thực hiện hầu hết các hành động và bước đầu tiên là định cấu hình để hoạt động với các máy chủ MCP từ xa. Ngoài ra, bạn nên sử dụng phiên bản mới nhất của Gemini CLI và phiên bản mới nhất của Gemini, chẳng hạn như Gemini-3-pro hoặc Gemini-3-flash (hiện đang ở giai đoạn xem trước).
Nếu đã có phiên bản mới nhất của Gemini CLI và định cấu hình phiên bản này để sử dụng các mô hình Gemini mới nhất, thì bạn có thể bỏ qua 2 bước tiếp theo và chuyển thẳng đến bước 3.
1. Lấy khoá Gemini API
Để sử dụng các mô hình Gemini mới nhất trong Gemini CLI, bạn cần định cấu hình mô hình này bằng phương thức xác thực khoá API. Chúng ta có thể lấy khoá API trong Google AI Studio
- Truy cập vào Google AI Studio -> Get API key (Lấy khoá API) trong trình duyệt.
- Ở bên phải màn hình, hãy nhấp vào nút
Create API key - Trong cửa sổ bật lên, hãy chọn dự án của bạn hoặc nhập nếu dự án đó không xuất hiện

- Tạo khoá API.
- Bạn có thể sao chép khoá bằng nút sao chép ở bên phải.

Khoá đã được chuẩn bị và giờ đây, chúng ta có thể dùng khoá này cho Gemini CLI
2. Định cấu hình Gemini CLI
Bạn có thể định cấu hình Gemini CLI thông qua tệp cấu hình chế độ cài đặt hoặc tương tác bằng lệnh /settings. Chúng ta muốn các chế độ cài đặt được lưu giữ trong tệp cài đặt.
Trước tiên, chúng ta sẽ tạo một thư mục cho dự án của mình. Hãy gọi thư mục projectmcp và chuyển sang thư mục đó bằng các lệnh sau.
mkdir ~/projectmcp
cd ~/projectmcp
Trong thư mục này, chúng ta sẽ tạo một thư mục cho các tệp cấu hình Gemini và sẽ chạy tất cả các lệnh. Theo mặc định, Gemini CLI sử dụng tệp cấu hình phạm vi người dùng và các tiện ích được cài đặt trong thư mục ~/.gemini. Nhưng chúng ta sẽ tạo cấu hình phạm vi dự án của riêng mình trong thư mục ~/projectmcp. Hãy bắt đầu bằng cách tạo thư mục và tệp cấu hình.
mkdir ~/projectmcp/.gemini
touch ~/projectmcp/.gemini/settings.json
Sau đó, chúng ta mở tệp ~/projectmcp/.gemini/settings.json bằng trình chỉnh sửa Cloud Shell.
edit ~/projectmcp/.gemini/settings.json
Trong cửa sổ trình chỉnh sửa vừa mở, hãy thêm cấu hình sau.
{
"general": {
"preferredEditor": "vscode",
"previewFeatures": true,
"sessionRetention": {
"enabled": true
}
},
"ide": {
"enabled": true,
"hasSeenNudge": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
},
"ui": {
"theme": "Default"
},
"tools": {
"shell": {
"enableInteractiveShell": false
}
}
}
Sau khi chỉnh sửa tệp, bạn có thể dùng ctrl+s để lưu các thay đổi và chuyển về thiết bị đầu cuối bằng cách nhấp vào nút Open Terminal

Tệp settings.json ở trên đặt loại xác thực Gemini CLI thành gemini-api-key và bạn cần cung cấp khoá cho mô hình. Bạn có thể thực hiện việc này bằng cách tạo một tệp .env trong thư mục mà bạn muốn làm việc với Gemini CLI và lưu khoá API để xác thực Gemini CLI dưới dạng một biến môi trường sẽ được chọn khi bạn khởi động IDE.
Hãy chỉnh sửa tệp bằng trình chỉnh sửa Cloud Shell
edit ~/projectmcp/.env
Và lưu trữ khoá API bạn đã tạo ở bước 1.
GEMINI_API_KEY= <YOUR_API_KEY>
Bây giờ, bạn có thể quay lại thiết bị đầu cuối và tiếp tục. Bước tiếp theo là cập nhật Gemini CLI lên phiên bản mới nhất. Phiên bản trong Google Cloud Shell hoặc trong môi trường của bạn có thể đã lỗi thời và có thể không hoạt động đúng cách với các cấu hình và dịch vụ MCP mới nhất. Vì vậy, bạn cần cập nhật Gemini CLI lên phiên bản mới nhất và khởi động phiên bản đó. Trong thiết bị đầu cuối, hãy thực thi lệnh sau.
cd ~/projectmcp/
npm install -g @google/gemini-cli@latest
Giờ đây, bạn có thể xác minh phiên bản. Xin lưu ý rằng nếu bạn đang làm việc trong Google Cloud Shell, thì mỗi lần bạn khởi động lại shell, shell có thể quay về phiên bản trước. Những thay đổi bạn thực hiện đối với chính Gemini CLI sẽ không được lưu vĩnh viễn trong Cloud Shell.
gemini --version
Thao tác này sẽ cho thấy phiên bản Gemini CLI mới nhất (phiên bản 0.27 tại thời điểm viết hướng dẫn này). Bạn có thể xác minh phiên bản mới nhất của Gemini CLI tại đây. Giờ đây, chúng ta có thể bắt đầu và đảm bảo rằng ứng dụng đang sử dụng mô hình Gemini mới nhất. Chạy lệnh sau trong thư mục dự án để khởi động Gemini CLI.
gemini
Khi Gemini CLI khởi động, bạn có thể kiểm tra phiên bản và mô hình bằng cách chạy lệnh /about trong giao diện. Bạn sẽ thấy nội dung tương tự như hình bên dưới.

Bạn có thể thấy rằng Gemini đang sử dụng mô hình Gemini-3 mới nhất.
2. Định cấu hình máy chủ MCP trong Gemini CLI
Bây giờ, đã đến lúc thêm tất cả các máy chủ MCP đã bật. Bạn có thể bật các tiện ích này trong Gemini CLI theo 2 cách: thông qua tiện ích hoặc ngay trong phần cài đặt. Trong phòng thí nghiệm này, bạn sẽ sử dụng tệp setting.json trong phạm vi dự án và thêm thông tin xác thực máy chủ MCP vào đó.
- Đối với máy chủ MCP Kiến thức dành cho nhà phát triển, bạn cần tạo một khoá API để được uỷ quyền trên điểm cuối.
Sau đây là các bước:
- Trong Google Cloud Console cho dự án mà bạn đã bật API, hãy chuyển đến trang Thông tin đăng nhập.
- Nhấp vào Tạo thông tin xác thực, rồi chọn Khoá API trong trình đơn. Hộp thoại khoá API đã tạo sẽ hiển thị chuỗi cho khoá mới tạo của bạn.
- Nhấp vào đường liên kết
Edit API keytrong hộp thoại. - Trong trường
Name, hãy nhập tên cho khoá. Ví dụ:DK API Key. - Trong mục Hạn chế cho API, hãy chọn
Restrict key. - Trong danh sách Chọn API, hãy bật
Developer Knowledge APIrồi nhấp vào OK. - Nhấp vào Lưu.

Giờ đây, nếu cần sử dụng khoá, bạn có thể chuyển đến trang này rồi nhấp vào Hiện khoá ở bên phải.

Bây giờ, bạn cần lưu trữ khoá đó trong cấu hình. Phần MCP của tệp settings.json sẽ có dạng như sau (bạn cần đặt một giá trị cho khoá API DK của mình ở đó). Dưới đây là ví dụ về phần MCP của tệp settings.json nếu chỉ thêm DK API. Sau đó, trong phòng thí nghiệm, bạn cũng sẽ thấy tệp settings.json sẽ có dạng như thế nào khi có tất cả các máy chủ MCP.
"mcpServers": {
"DeveloperKnowledge": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "<Your DK API Key>"
}
}
},
- Tiếp theo, bạn có thể thêm cấu hình cho máy chủ MCP Cloud SQL của chúng tôi. Đối với MCP Cloud SQL, bạn sẽ sử dụng thông tin đăng nhập Google thay vì API. Phương thức này an toàn hơn và cho phép chúng tôi xác định vai trò cũng như phạm vi hành động mà người dùng được phép thực hiện. Sau đây là cấu hình cho máy chủ MCP. Vui lòng thay thế "<YOUR_GCP_PROJECT>" bằng mã dự án của riêng bạn.
"Cloud SQL MCP Server": {
"httpUrl": "https://sqladmin.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 500000,
"trust": false,
"headers": {
"X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
}
},
- Phần tiếp theo của json này chứa cấu hình cho máy chủ MCP Cloud Run. Nó tuân theo cùng một mẫu như ví dụ ở trên và sử dụng thông tin đăng nhập Google để xác thực và uỷ quyền. Dưới đây là cấu hình mẫu.
"CloudRun": {
"httpUrl": "https://run.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
Bạn cần thêm tất cả những nội dung này vào tệp ~/projectmcp/.gemini/settings.json.
Mở tệp ~/projectmcp/.gemini/settings.json bằng trình chỉnh sửa Cloud Shell.
edit ~/projectmcp/.gemini/settings.json
Sau đó, thay thế nội dung bằng cấu hình sau. Vui lòng đặt khoá API và mã dự án vào các trường "X-Goog-Api-Key" và "X-Goog-User-Project" theo môi trường của bạn.
{
"general": {
"preferredEditor": "vscode",
"previewFeatures": true,
"sessionRetention": {
"enabled": true
}
},
"ide": {
"enabled": true,
"hasSeenNudge": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
},
"mcpServers": {
"DeveloperKnowledge": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "<Your DK API Key>"
}
},
"Cloud SQL MCP Server": {
"httpUrl": "https://sqladmin.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 500000,
"trust": false,
"headers": {
"X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
}
},
"CloudRun": {
"httpUrl": "https://run.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"ui": {
"theme": "Default"
},
"tools": {
"shell": {
"enableInteractiveShell": false
}
}
}
Giờ đây, chúng ta có thể khởi động Gemini CLI và xem tất cả các máy chủ MCP đã bật ở đó.
cd ~/projectmcp/
gemini
Khi khởi động Gemini CLI, bạn có thể thực thi lệnh /mcp để xem tất cả các máy chủ MCP đang hoạt động.

5. Chuẩn bị đơn đăng ký
Trong ví dụ sau, bạn sẽ cố gắng di chuyển ứng dụng mẫu cục bộ sang Google Cloud. Trước tiên, chúng ta sẽ cài đặt ứng dụng cục bộ và kiểm thử ứng dụng.
1. Sao chép mã nguồn
Chúng ta cần sao chép ứng dụng của mình từ kho lưu trữ GitHub. Trong Cloud Shell hoặc thiết bị đầu cuối cục bộ trong thư mục dự án, hãy thực thi.
git clone https://github.com/google/mcp.git
2. Bắt đầu ứng dụng cục bộ
Hãy kiểm thử ứng dụng và tải một số dữ liệu mẫu
Trong cùng một trình bao, hãy chuyển sang thư mục ứng dụng và khởi động ứng dụng bằng cách sử dụng
cd mcp/examples/allstrides
./start_allstrides.sh
3. Kiểm thử ứng dụng
Nếu bạn đang làm việc trong Cloud Shell, hãy nhấn nút Web preview ở đầu cửa sổ Cloud Shell rồi chọn Preview on port 8080

Thao tác này sẽ mở một thẻ trình duyệt mới có giao diện ứng dụng, nơi bạn có thể nhấp vào nút Events chẳng hạn.

Hiện tại, bạn không có sự kiện nào.
4. Tải dữ liệu mẫu
Bạn có thể đăng ký trong ứng dụng và tạo các sự kiện, tin nhắn trò chuyện và người dùng của riêng mình hoặc bạn có thể sử dụng dữ liệu mẫu được cung cấp cùng với ứng dụng.
Mở một thẻ Cloud Shell khác bằng cách sử dụng dấu "+" ở trên cùng.

Trong thẻ cloud shell mới, hãy chuyển sang thư mục ứng dụng và thực thi lệnh nhập bằng tiện ích sqllite3:
cd ~/projectmcp/mcp/examples/allstrides
sqlite3 allstrides.db < seed_data.sql
Nếu quay lại trang ứng dụng, sau khi nhấp lại vào nút Events (Sự kiện), bạn sẽ thấy nhiều sự kiện.

Bạn cũng có thể kiểm thử trang trò chuyện và xem một số tin nhắn tại đó.
Giờ đây, bạn có thể đóng thẻ thứ hai bằng cách nhập exit
exit
Sau đó, hãy dừng ứng dụng ở thẻ đầu tiên bằng cách nhấn tổ hợp phím ctrl+c.
6. Kiểm tra MCP về kiến thức của nhà phát triển
MCP Kiến thức dành cho nhà phát triển cho phép chúng tôi sử dụng các tài liệu của Google ngay từ các công cụ độc lập của mình, giúp chúng tôi có thể xác minh hướng dẫn, tạo hướng dẫn và thực hiện các thao tác khác có thể được bổ sung bằng tài liệu mới nhất của Google.
Khởi động Gemini CLI và liệt kê các công cụ MCP có sẵn trong máy chủ MCP Kiến thức dành cho nhà phát triển.
/mcp
Đối với MCP Kiến thức dành cho nhà phát triển, bạn sẽ thấy 3 công cụ có sẵn:
Kết quả đầu ra dự kiến:
🟢 DeveloperKnowledge - Ready (3 tools) Tools: - batch_get_documents - get_document - search_documents
Nhiệm vụ của chúng tôi là di chuyển ứng dụng sang Google Cloud, tức là chúng tôi cần chuyển từ cơ sở dữ liệu Sqlite cục bộ sang một giải pháp có khả năng mở rộng cao hơn và dựa trên đám mây. Hãy yêu cầu Gemini phân tích mã ứng dụng của chúng ta và tư vấn về giải pháp cơ sở dữ liệu.
Trong câu lệnh Gemini CLI, hãy nhập nội dung sau:
Hello, I need to choose a database platform for my allstrides application in Google Cloud. Can you analyze documentation and prepare a tutorial to choose the correct database engine?
Gemini CLI sẽ bắt đầu bằng việc phân tích mã của bạn, sau đó yêu cầu thực thi
Kết quả đầu ra dự kiến
? search_documents (DeveloperKnowledge MCP Server) {"query":"choose google cloud database"} ← │
│ │
│ MCP Server: DeveloperKnowledge │
│ Tool: search_documents │
│ │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc)
Chúng ta có thể thấy rằng công cụ này đang sử dụng MCP để căn cứ phản hồi vào tài liệu của Google. Cho phép thực thi yêu cầu MCP Kiến thức của nhà phát triển. Có thể Gemini sẽ hỏi bạn thêm một hoặc hai lần để thu thập thêm thông tin trước khi đưa ra câu trả lời. Hiện tại, bạn không được phép thay đổi bất cứ nội dung nào trong đơn đăng ký.
Cuối cùng, công cụ này đã tạo ra một hướng dẫn có phần tóm tắt, trong đó Cloud SQL cho Postgres được xác định là lựa chọn tốt nhất cho phần phụ trợ cơ sở dữ liệu. Bạn có thể nhận được câu trả lời hơi khác một chút do tính chất không xác định của các mô hình AI tạo sinh.
Kết quả đầu ra dự kiến:
By switching to Cloud SQL for PostgreSQL, AllStrides gains a robust, scalable foundation suitable for production deployment on Google Cloud. The transition is straightforward due to the use of Sequelize ORM.
Chúng tôi cũng có thể yêu cầu chuẩn bị hướng dẫn di chuyển dữ liệu từng bước. Đưa ra một câu lệnh mới cho Gemini CLI:
I agree with the recommendation to use Cloud SQL for PostgreSQL as the new database for my application. Can you prepare a detailed migration tutorial based on Google documentation on how to move data from my local database to Cloud SQL in the cloud?
Và một lần nữa, chúng tôi kỳ vọng Gemini CLI sẽ sử dụng MCP Kiến thức dành cho nhà phát triển làm nguồn thông tin đáng tin cậy trong khi chuẩn bị hướng dẫn. Trình tự các thao tác mà Gemini CLI thực hiện có thể hơi khác một chút, tuỳ thuộc vào mô hình chính xác và các yếu tố khác. Ví dụ: bạn có thể yêu cầu chuẩn bị trước các tập lệnh di chuyển và chỉ sau đó mới làm việc trên tài liệu hướng dẫn cuối cùng.
Sau đây là một trong những ví dụ về yêu cầu cấp quyền thực thi MCP Kiến thức dành cho nhà phát triển:
? search_documents (DeveloperKnowledge MCP Server) {"query":"migrate local database to Cloud SQL for PostgreSQL"} ← │
│ │
│ MCP Server: DeveloperKnowledge │
│ Tool: search_documents │
│ │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc) │
│ │
│ │
│ ⊷ search_documents (DeveloperKnowledge MCP Server) {"query":"import data into Cloud SQL PostgreSQL"}
Trong quá trình thực thi, Gemini CLI có thể yêu cầu bạn thực thi một số lệnh. Ví dụ: để hiểu rõ hơn về giản đồ dữ liệu nhằm chuẩn bị hướng dẫn chính xác cho quá trình di chuyển dữ liệu.
Và cuối cùng, bạn nên chuẩn bị hướng dẫn từng bước để di chuyển dữ liệu.
Sau đó, bạn có thể yêu cầu Gemini CLI viết hướng dẫn
Please write the tutorial down
Thao tác này sẽ tạo một tệp markdown mới có tài liệu hướng dẫn.
Kết quả đầu ra dự kiến:
✦ I have created a detailed migration guide for you. You can find the tutorial in the new file: MIGRATION_GUIDE.md. This guide covers: 1. Exporting your local SQLite data to CSV format. 2. Creating the PostgreSQL schema with compatible data types. 3. Uploading data to Google Cloud Storage. 4. Importing data into Cloud SQL in the correct order to respect relationships. 5. Resetting ID sequences to ensure new data can be added without errors.
Trong bước tiếp theo, chúng ta sẽ làm việc với Cloud SQL MCP để chuẩn bị cơ sở dữ liệu và di chuyển dữ liệu.
7. Kiểm thử MCP từ xa trên Cloud SQL
1. Tạo phiên bản Cloud SQL
Bạn có thể bắt đầu bằng cách kiểm tra các công cụ có sẵn trong máy chủ Cloud SQL MCP bằng cách nhập /mcp trong Gemini CLI
/mcp
Hiện tại, chúng tôi có các công cụ sau đây.
Kết quả đầu ra dự kiến:
🟢 Cloud SQL MCP Server - Ready (11 tools) Tools: - clone_instance - create_instance - create_user - execute_sql - get_instance - get_operation - import_data - list_instances - list_users - update_instance - update_user
Chúng tôi đã quyết định sử dụng Cloud SQL cho Postgres làm phần phụ trợ cho ứng dụng của mình trong Google Cloud. Giờ đây, chúng ta có thể yêu cầu Gemini tạo một phiên bản Cloud SQL cho chúng ta.
Trong câu lệnh Gemini CLI, hãy nhập yêu cầu của bạn như sau:
Please create a Cloud SQL for Postgres instance with appropriate edition and version in the us-central1 region to be a backend for our application with a public IPs in the current project with 2 CPU and 8 GB memory.
Để tránh các lệnh gọi bổ sung nhằm xác định dự án hiện tại, bạn có thể chỉ định rõ mã dự án khi đặt câu lệnh. Nếu tên dự án chưa được sử dụng trong ngữ cảnh trước đó, mô hình sẽ yêu cầu mã dự án hoặc yêu cầu thực thi lệnh gcloud để xác định dự án.
Sau đó, công cụ này sẽ phân tích các công cụ hiện có và yêu cầu thực thi các công cụ MCP của Cloud SQL. Bạn sẽ thấy yêu cầu phê duyệt sau đây.
? create_instance (Cloud SQL MCP Server MCP Server) {"tier":"db-custom-2-8192","region":"us-central1","project":"gleb-test-short-001-486416","databaseVersion":"POSTGRES_17","edition":"ENTERPRISE","nam... ← │
│ │
│ MCP Server: Cloud SQL MCP Server │
│ Tool: create_instance │
│ │
│ Allow execution of MCP tool "create_instance" from server "Cloud SQL MCP Server"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc)
Sau khi bắt đầu thực thi, ứng dụng sẽ yêu cầu theo dõi trạng thái hoạt động và các yêu cầu có thể có về chế độ ngủ giữa các lần kiểm tra. Chẳng hạn như câu lệnh sau.
✦ I will wait for 30 seconds before checking the status of the instance creation. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ⊶ Shell sleep 30 [current working directory /home/gleb/demo] │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ⠋ Refining Instance Configuration (esc to cancel, 11s)
Sau đó là công cụ get_operation cho MCP của Cloud SQL Server.
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ? get_operation (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","operation":"73c39ca7-65fe-46d1-bdb8-0dfa00000032"} ← │
│ │
│ MCP Server: Cloud SQL MCP Server │
│ Tool: get_operation │
│ │
│ Allow execution of MCP tool "get_operation" from server "Cloud SQL MCP Server"? │
│ │
│ ● 1. Allow once
Sau yêu cầu get_instance cuối cùng, bạn sẽ nhận được thông tin về phiên bản đã tạo. Chẳng hạn như câu lệnh sau.
Kết quả đầu ra dự kiến:
✦ I will wait for 30 seconds before checking the status of the instance creation. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ⊶ Shell sleep 30 [current working directory /home/gleb/demo] │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ⠋ Refining Instance Configuration (esc to cancel, 11s)
Sau đó là công cụ get_operation cho MCP của Cloud SQL Server và lệnh gọi công cụ get_insance MCP. Bạn có thể gặp phải các bước kiểm tra bổ sung và lệnh gọi do Gemini CLI thực hiện để xác minh việc hoàn thành thành công nhiệm vụ.
The Cloud SQL for Postgres instance allstrides-db has been successfully created in the us-central1 region with 2 vCPUs and 8 GB of RAM. Instance Details: - Project ID: gleb-test-short-001-486416 - Instance Name: allstrides-db - Public IP Address: 35.226.187.246 - Database Version: POSTGRES_17 - Machine Type: db-custom-2-8192 (2 vCPU, 8 GB RAM) - Region: us-central1 - Connection Name: gleb-test-short-001-486416:us-central1:allstrides-db The instance is configured with public IP enabled, IAM authentication turned on, and Data API access allowed.
2. Di chuyển dữ liệu
Phiên bản này đã sẵn sàng và giờ đây, chúng ta có thể tiếp tục di chuyển tất cả dữ liệu từ cơ sở dữ liệu SQLite hiện có sang một cơ sở dữ liệu mới trên đám mây.
Trong câu lệnh Gemini CLI, hãy nhập yêu cầu sau
Now when we have our Cloud SQL instance ready it is time to move the data from our local database. Please migrate all the data to a new database in our Cloud SQL instance where the new user for application would be the database owner? Let's call the new database allstrides-db and the user allstrides. Please use our MCP tools whenever it is possible.
Trong quá trình thực thi, Gemini CLI sẽ phân tích mô hình dữ liệu của chúng ta và để làm được điều đó, Gemini CLI sẽ yêu cầu quyền chạy một số lệnh. Quy trình này không hoàn toàn xác định được và một số bước có thể khác nhau.
Sau đây là một ví dụ về cách bắt đầu.
Kết quả đầu ra dự kiến:
✦ I will read the allstrides/README.md and allstrides/seed_data.sql files to understand the local database structure and data. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ✓ ReadFile allstrides/README.md │ │ │ │ │ │ ✓ ReadFile allstrides/seed_data.sql │ │ │ ╰─────────────────────────────────────────────────────────────────────────
Sau đó, sau một vài bước, công cụ này sẽ dùng Cloud SQL MCP để chuẩn bị cơ sở dữ liệu, người dùng và cuối cùng là di chuyển dữ liệu. Một trong những hành động đầu tiên mà nó thực hiện trên cơ sở dữ liệu là thêm bạn làm người dùng IAM và cấp cho bạn quyền tạo cơ sở dữ liệu và người dùng. Bạn phải có đủ đặc quyền trong Google Cloud dưới dạng IAM
Sau đây là ví dụ về một số bước trong quy trình
Kết quả đầu ra dự kiến:
✓ execute_sql (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","instance":"allstrides-db","sqlStatement":"CREATE DATABASE \"allstrides-db\";","database":"postgres"} │
│ │
│ { │
│ "messages": [ │
│ { │
│ "message": "Execution complete. 1 result set(s) returned.", │
│ "severity": "INFO" │
│ } │
│ ], │
│ "metadata": { │
│ "sqlStatementExecutionTime": "0.075591388s" │
│ }, │
│ "results": [ │
│ {} │
│ ] │
│ } │
│
3. Triển khai ứng dụng lên Cloud Run
Giờ đây, cơ sở dữ liệu đã được tạo và dữ liệu ứng dụng cục bộ đã được di chuyển sang cơ sở dữ liệu Cloud SQL. Giờ đây, bạn đã sẵn sàng triển khai ứng dụng của mình lên Cloud Run. Trong quá trình triển khai, bạn sẽ sử dụng kết hợp Google Cloud SDK để tạo hình ảnh trong Google Cloud, sau đó triển khai hình ảnh đó bằng Cloud Run MCP.
Trong Gemini CLI, hãy chạy lời nhắc sau.
Now, when all the data is successfully migrated to our Cloud SQL instance allstrides-db we can migrate our allstrides application to Cloud Run and deploy using my Cloud SQL database. Please put the username and the password for my database user user to Secret Manager to not show openly in Cloud Run.
Let's build the image first and then use MCP to create the Cloud Run service.
Trong quá trình thực thi, nó sẽ kiểm tra các API, chuẩn bị dữ liệu cho trình quản lý bí mật và tạo các bí mật cần thiết. Ngoài ra, bạn sẽ cập nhật ứng dụng để hoạt động với cơ sở dữ liệu PostgreSQL và thêm các mô-đun npm cần thiết.
Sau đó, sau khi tạo hình ảnh và đặt hình ảnh đó vào Artifact Registry, hình ảnh sẽ sử dụng dịch vụ MCP để triển khai ứng dụng vào Cloud Run.
Sau đây là ví dụ về cách gọi MCP Cloud Run
Kết quả đầu ra dự kiến:
✦ I will deploy the 'allstrides' service to Cloud Run using the deploy_service_from_image tool. I will configure the environment variables and map the
database credentials from Secret Manager. Note that the MCP tool's schema does not explicitly expose the Cloud SQL instance attachment parameter, which is
typically required for the Unix socket connection (/cloudsql/...) to work. I will proceed with the deployment as requested, but if the database connection
fails due to the missing instance attachment, we may need to use gcloud to update that specific configuration.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Action Required 1 of 1 │
│ │
│ ? deploy_service_from_image (CloudRun MCP Server) {"service":{"invokerIamDisabled":true,"name":"projects/gleb-test-short-001-486416/locations/us-centra... │
│ │
│ MCP Server: CloudRun │
│ Tool: deploy_service_from_image │
│ Allow execution of MCP tool "deploy_service_from_image" from server "CloudRun"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc) │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Đường dẫn chính xác để hoàn tất tất cả các thao tác có thể khác nhau tuỳ theo từng lần thực thi. Các tác nhân AI chọn đường dẫn dựa trên ngữ cảnh, đầu ra của lệnh và nhiều biến số khác. Và đây chính là điểm mạnh của phần mềm dựa trên tác nhân AI – phần mềm này có thể phản ứng, điều chỉnh phương pháp và thử lại các bước để hoàn thành nhiệm vụ và mang lại kết quả thành công.
Giờ đây, bạn đã triển khai và chạy ứng dụng allstrides trong Cloud Run, đồng thời kết nối với cơ sở dữ liệu Cloud SQL.
Đây là những gì bạn có thể thấy ở cuối.
Kết quả đầu ra dự kiến:
✦ The application allstrides has been successfully migrated to Cloud Run and is connected to the Cloud SQL database allstrides-db.
Deployment Details:
* Service URL: https://allstrides-812263612774.us-central1.run.app
* Database: allstrides-db (PostgreSQL)
* Database User: allstrides (Password updated and stored in Secret Manager)
* Secrets: db-user and db-pass are mounted as environment variables.
* Region: us-central1
Steps Taken:
1. Database Configuration:
* Updated the allstrides database user password.
* Created db-user and db-pass secrets in Google Cloud Secret Manager.
* Updated database.ts to support PostgreSQL connections via Cloud SQL socket.
2. Build:
* Built the container image gcr.io/gleb-test-short-001-486416/allstrides using Cloud Build.
3. Deployment:
* Initiated deployment using the MCP deploy_service_from_image tool.
* Granted the Secret Manager Secret Accessor role to the Cloud Run service account.
* Attached the Cloud SQL instance connection using gcloud (as the MCP tool currently lacks this specific configuration parameter).
The application is now serving traffic and successfully connected to the database.
Và khi mở URL được cung cấp trong trình duyệt, bạn sẽ thấy trang ứng dụng.

Tất cả sự kiện của chúng tôi sẽ xuất hiện ở đó

Xin chúc mừng! Bạn có thể sử dụng Gemini CLI và các dịch vụ MCP từ xa của Google Cloud để di chuyển ứng dụng cục bộ lên đám mây. Đến đây là kết thúc quá trình triển khai và bạn có thể dọn dẹp tất cả tài nguyên.
8. Dọn dẹp môi trường
Cách dễ nhất để dọn dẹp môi trường là yêu cầu Gemini CLI xoá tất cả các thành phần mà bạn đã tạo. Bạn nên giữ tất cả thành phần trong bối cảnh. Nhưng nếu bằng cách nào đó bạn đã đăng xuất và không có nhật ký đã lưu, thì bạn có thể cố gắng mô tả chính xác hơn và yêu cầu dọn dẹp dịch vụ Cloud Run, hình ảnh và phiên bản Cloud SQL. Để xoá dịch vụ, bạn phải xác thực bằng người dùng có các quyền bắt buộc và sẽ sử dụng lệnh gcloud.
Sau đây là ví dụ về một câu lệnh
Now, when we've tested the application can you please delete the created Cloud Run service, the image we've built and the Cloud SQL instance we've created in the project.
Sau khi xoá, bạn có thể sử dụng các dịch vụ MCP từ xa để xác minh rằng bạn đã xoá thành công dịch vụ Cloud Run hoặc phiên bản Cloud SQL.
Can you please list all Cloud SQL instances in the project and Cloud Run services in the project.
Bạn sẽ thấy thông báo tương tự như sau ở cuối:
Kết quả đầu ra dự kiến:
✦ There are currently no Cloud SQL instances or Cloud Run services (in us-central1) in the project gleb-test-short-001-486416.
Đến đây là kết thúc các bước của phòng thí nghiệm.
9. Xin chúc mừng
Chúc mừng bạn đã hoàn thành lớp học lập trình này.
Lộ trình học tập trên Google Cloud
Nội dung đã đề cập
- Cách triển khai và định cấu hình Gemini CLI để hoạt động với các MCP từ xa của Google Cloud
- Cách sử dụng Development KnowledgeMCP
- Cách sử dụng Cloud SQL MCP để di chuyển dữ liệu lên đám mây
- Cách sử dụng MCP Cloud Run để triển khai ứng dụng trên đám mây
- Cách sử dụng Gemini CLI trong Google Cloud Shell
10. Khảo sát
Kết quả: