1. Giới thiệu
Chào mừng bạn! Trong lớp học lập trình này, bạn sẽ tìm hiểu cách tăng cường sức mạnh cho các tác nhân AI bằng cách sử dụng Máy chủ Giao thức ngữ cảnh mô hình (MCP) do Google quản lý.
Giao thức bối cảnh mô hình (MCP) là một tiêu chuẩn nguồn mở giúp các mô hình AI kết nối một cách an toàn và hiệu quả với các nguồn dữ liệu và công cụ bên ngoài. Mặc dù hầu hết các hoạt động triển khai MCP đều chạy cục bộ trên máy của bạn, nhưng Google cung cấp Máy chủ MCP từ xa được quản lý. Đây là những điểm cuối được lưu trữ hoàn toàn và sẵn sàng cho doanh nghiệp, cho phép các tác nhân của bạn tương tác trực tiếp với cơ sở hạ tầng của Google Cloud mà bạn không cần phải quản lý bất kỳ mã hoặc vùng chứa phía máy chủ nào.
Ưu điểm của việc "Được quản lý"
Không giống như các máy chủ MCP cục bộ sử dụng đầu vào/đầu ra tiêu chuẩn (stdio), các máy chủ do Google quản lý sử dụng HTTP có thể truyền trực tuyến. Cấu trúc này mang đến:
- Không cần cơ sở hạ tầng: Không cần cung cấp hoặc mở rộng quy mô máy chủ.
- Bảo mật theo thiết kế: Tích hợp nguyên bản với Cloud IAM và Nhật ký kiểm tra của Google Cloud.
- Mở rộng quy mô không trạng thái: Tương tác liền mạch thông qua các bộ cân bằng tải và proxy tiêu chuẩn.
Kiến thức bạn sẽ học được
- Cách bật và xác thực Máy chủ MCP được quản lý.
- Cách sử dụng Máy chủ MCP Cloud Logging làm đường cơ sở nền tảng.
- Cách điều phối nhiều máy chủ MCP (Developer Knowledge, Firestore, v.v.) để tạo quy trình làm việc tự động.
Bạn cần có
- Một Dự án trên Google Cloud đã bật tính năng thanh toán.
- Quen thuộc với Google Cloud Console và
gcloudCLI. - Google Cloud Shell (Gemini CLI được cài đặt sẵn tại đây).
Lớp học lập trình này dành cho người dùng và nhà phát triển ở mọi cấp độ (kể cả người mới bắt đầu).
Các vấn đề về báo cáo
Khi tham gia lớp học lập trình và sử dụng Antigravity, bạn có thể gặp phải một số vấn đề.
Đối với các vấn đề liên quan đến lớp học lập trình (lỗi chính tả, hướng dẫn sai), vui lòng mở một lỗi bằng nút Report a mistake ở góc dưới bên trái của lớp học lập trình này:

2. Trước khi bắt đầu
Ở bước này, bạn sẽ chuẩn bị môi trường Google Cloud. Chúng ta sẽ thực hiện tất cả các tác vụ trong Google Cloud Shell. Đây là một cửa sổ dòng lệnh liên tục và được định cấu hình sẵn.
Kích hoạt Cloud Shell
- Chuyển đến Google Cloud Console.
- Nhấp vào biểu tượng Kích hoạt Cloud Shell ở tiêu đề trên cùng bên phải.
- Sau khi phiên Terminal bắt đầu, hãy uỷ quyền cho dấu nhắc nếu được yêu cầu.
Đặt mã dự án
Đảm bảo Cloud Shell đang trỏ đến đúng dự án:
# Set your active project
gcloud config set project YOUR_PROJECT_ID
# Verify the setting
gcloud config list project
Bật Foundation API
Các máy chủ MCP được quản lý yêu cầu cả API sản phẩm cơ bản và giao diện MCP phải được bật. Chạy lệnh sau để bật phần phụ trợ Cloud Logging (đường cơ sở của chúng tôi cho phòng thí nghiệm này):
# Enable the Cloud Logging API and its MCP interface
gcloud services enable logging.googleapis.com
gcloud beta services mcp enable logging.googleapis.com
Lưu ý: Các dịch vụ MCP được quản lý hiện đang ở giai đoạn Beta. Bạn phải sử dụng thành phần gcloud beta để bật các tính năng này.
Thiết lập thông tin xác thực mặc định của ứng dụng (ADC)
Gemini CLI sử dụng danh tính người dùng của bạn để giao tiếp với các máy chủ MCP. Cấp cho tác nhân quyền hành động thay mặt bạn:
gcloud auth application-default login
Làm theo URL trong cửa sổ dòng lệnh, đăng nhập rồi dán mã uỷ quyền trở lại Cloud Shell.
Chỉ định vai trò IAM cơ bản
Các máy chủ MCP được quản lý sử dụng Mô hình bảo mật hai lớp. Bạn cần mở 2 "cổng" cụ thể:
- Cổng 1 (Quyền truy cập MCP): Vai trò cho phép bạn gọi giao thức.
- Cổng 2 (Quyền truy cập vào dịch vụ): Vai trò cho phép bạn xem dữ liệu (ví dụ: xem nhật ký).
Chạy lệnh sau để cấp cho chính bạn quyền truy cập cần thiết:
export PROJECT_ID=$(gcloud config get-value project)
export USER_EMAIL=$(gcloud config get-value account)
# Gate 1: Permission to use the MCP protocol
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/mcp.toolUser"
# Gate 2: Permission to view the actual logs
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/logging.viewer"
3. Nền tảng: Kết nối máy chủ MCP đầu tiên
Trong bước này, bạn sẽ liên kết tác nhân AI (Gemini CLI) với Máy chủ MCP Cloud Logging của Google Cloud. Đây là "nền tảng" của chúng tôi vì nó cho phép nhân viên hỗ trợ xem những gì đang diễn ra trong dự án của bạn theo thời gian thực.
Việc 1: Định cấu hình Máy chủ MCP ghi nhật ký
Gemini CLI sử dụng tệp settings.json để quản lý các kết nối. Bạn sẽ cần chỉnh sửa tệp này (có trong thư mục ~/.gemini) để thêm đoạn mã sau vào bên trong khối mcpServers. Thay thế YOUR_PROJECT_ID bằng mã dự án thực tế của bạn:
"logging-mcp": {
"httpUrl": "https://logging.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/logging.read"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
}
Lưu ý: Tiêu đề x-goog-user-project là bắt buộc đối với các máy chủ MCP được quản lý để đảm bảo việc sử dụng API và thanh toán được chỉ định chính xác cho dự án của bạn.
Nhiệm vụ 2: Mô phỏng Hoạt động của dự án (Tạo nhật ký)
Nếu dự án của bạn còn mới hoặc đang ở trạng thái không hoạt động, thì có thể dự án đó không có nhật ký "thú vị" nào gần đây. Hãy sử dụng CLI gcloud để chèn một vài mục tuỳ chỉnh để tác nhân có thể tìm thấy.
Chạy lần lượt các lệnh này để mô phỏng một chuỗi sự kiện:
# 1. Simulate a standard system start
gcloud logging write mcp-test-log "System boot sequence initiated" --severity=INFO
# 2. Simulate a warning about resource limits
gcloud logging write mcp-test-log "High memory pressure detected in zone us-central1-a" --severity=WARNING
# 3. Simulate a critical authentication failure
gcloud logging write mcp-test-log "ERROR: Failed to connect to Cloud SQL. Permission Denied." --severity=ERROR
Thao tác 3: Xác minh các công cụ trong Gemini CLI
Trước khi bắt đầu trò chuyện, hãy xác minh rằng nhân viên hỗ trợ có thể "xem" các công cụ do máy chủ Ghi nhật ký cung cấp. Khởi chạy Gemini CLI:
gemini
Khi ở trong dấu nhắc Gemini CLI (>), hãy chạy lệnh list:
/mcp list
Chốt kiểm tra xác minh: Bạn sẽ thấy logging-mcp được liệt kê là Sẵn sàng với khoảng 6 công cụ có sẵn, bao gồm cả list_log_entries.
Tác vụ 4: Lời nhắc đầu tiên về cơ sở hạ tầng phát trực tiếp
Bây giờ, hãy yêu cầu tác nhân tìm các nhật ký mà chúng ta vừa tạo. Vì bạn đã cấp vai trò roles/logging.viewer trước đó, nên giờ đây, tác nhân có thể "liên hệ" và đọc trạng thái dự án của bạn.
Nhập câu lệnh sau vào Gemini CLI:
Show me the 3 most recent log entries from the log named 'mcp-test-log'. What is the highest severity issue you see?
Quan sát Nhân viên hỗ trợ:
- Tác nhân có thể nhắc bạn cung cấp mã dự án trên Google Cloud. Vui lòng cung cấp thông tin đó.
- Thao tác này sẽ xác định rằng bạn cần công cụ
list_log_entries. - Công cụ này sẽ yêu cầu bạn cấp quyền chạy. Chọn 1. Có, cho phép một lần.
- Thao tác này sẽ phân tích cú pháp phản hồi JSON và cho bạn biết về lỗi Cloud SQL Permission Denied mà chúng ta đã mô phỏng.
4. Hành trình A: Bộ não (MCP kiến thức dành cho nhà phát triển)
Trong hành trình này, bạn sẽ cung cấp cho tác nhân của mình một "bộ não" bằng cách kết nối tác nhân đó với Máy chủ MCP Kiến thức dành cho nhà phát triển của Google.
Một trong những rủi ro lớn nhất khi dùng tác nhân AI là ảo giác – tự tin cung cấp các lệnh CLI đã lỗi thời hoặc các tham số API không dùng nữa. Máy chủ MCP này giải quyết vấn đề đó bằng cách liên kết thực tế tác nhân trong kho tài liệu chính thức, đang hoạt động dành cho nhà phát triển của Google (bao gồm Google Cloud, Firebase, Android và nhiều nền tảng khác).
Việc 1: Bật Dịch vụ kiến thức
Tương tự như bước nền tảng, chúng ta phải bật cả API phụ trợ và điểm cuối dịch vụ MCP.
# 1. Enable the Developer Knowledge API
gcloud services enable developerknowledge.googleapis.com
# 2. Enable the MCP Server interface
gcloud beta services mcp enable developerknowledge.googleapis.com
Tác vụ 2: Cung cấp khoá API bị hạn chế
MCP Kiến thức dành cho nhà phát triển sử dụng Khoá API để xác thực. Để đảm bảo an toàn, chúng ta sẽ tạo một khoá và hạn chế để khoá đó chỉ được dùng với API cụ thể này.
- Chạy tập lệnh sau để tạo và truy xuất khoá:
# Create the restricted API key
gcloud alpha services api-keys create \
--display-name="MCP-Knowledge-Key" \
--api-target service=developerknowledge.googleapis.com
# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
$(gcloud alpha services api-keys list \
--filter="displayName='MCP-Knowledge-Key'" \
--format="value(name)") \
--format="value(keyString)"
- Sao chép chuỗi ký tự dài do lệnh thứ hai trả về. Đây là
YOUR_API_KEYcủa bạn.
Thao tác 3: Định cấu hình Gemini CLI
Bây giờ, hãy đăng ký máy chủ Knowledge MCP với tác nhân của bạn. Nhờ đó, tác nhân có thể tìm kiếm tài liệu chính thức bất cứ khi nào gặp phải một câu hỏi kỹ thuật mà tác nhân không thể trả lời một cách chắc chắn 100%.
Thêm đoạn mã sau vào bên trong phần mcpServers trong tệp ~/.gemini/settings.json, thay thế YOUR_API_KEY bằng chuỗi bạn vừa sao chép:
"developer-knowledge-mcp": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_API_KEY"
}
}
Nhiệm vụ 4: Bài kiểm tra chống ảo tưởng
Hãy xác minh rằng tác nhân hiện đang "nghiên cứu" thay vì "đoán".
Khởi chạy Gemini CLI:
gemini
Xác minh rằng máy chủ đã Sẵn sàng: Nhập /mcp list. Bạn sẽ thấy google-developer-knowledge có 2 công cụ (search_documents, get_document).
Câu lệnh: Yêu cầu Tác nhân tìm một câu lệnh cụ thể, hiện đại.
I want to create a Google Cloud Storage bucket using the modern gcloud storage command. Search the official documentation for the exact syntax and show me an example for a bucket in the 'us-central1' region.
Những điểm cần chú ý:
- Gemini sẽ yêu cầu bạn cấp quyền sử dụng
search_documents. - Sau đó, có thể nó sẽ gọi
get_documentđể đọc trang cụ thể mà nó tìm thấy. - Câu trả lời cuối cùng phải bao gồm một lệnh
gcloud storage buckets create ..., được trích dẫn trực tiếp từ tài liệu.
5. Hành trình B: Phân loại (Khắc phục sự cố tự động)
Điều kiện tiên quyết: Để thực hiện hành trình này, bạn phải hoàn tất Hành trình A: Bộ não để tác nhân có thể nghiên cứu các bản sửa lỗi.
Trong hành trình này, bạn sẽ kết hợp Mắt (Cloud Logging MCP) và Não (MCP Kiến thức dành cho nhà phát triển) của tác nhân để tạo một Vòng lặp khắc phục sự cố tự động.
Thay vì sao chép mã lỗi vào một công cụ tìm kiếm theo cách thủ công, bạn sẽ đưa ra một câu lệnh duy nhất để tác nhân quét dự án của bạn nhằm tìm lỗi, nghiên cứu giải pháp chính thức và tạo báo cáo sửa lỗi hữu ích.
Nhiệm vụ 1: Mô phỏng một "Ngày tồi tệ" trên GCP
Để thấy được sức mạnh của tính năng khắc phục sự cố tự động, chúng ta cần một bộ lỗi thực tế. Chúng ta sẽ dùng một tập lệnh Python để chèn nhiều trở ngại về cơ sở hạ tầng (từ lỗi bị từ chối quyền đến vấn đề về hạn mức) trực tiếp vào nhật ký của bạn.
- Trong Cloud Shell, hãy tạo một thư mục mà bạn chọn rồi chuyển đến thư mục đó.
- tạo một tệp có tên là
simulate_errors.py:
nano simulate_errors.py
- Dán mã sau vào trình chỉnh sửa:
import argparse
from google.cloud import logging
def simulate_errors(project_id):
client = logging.Client(project=project_id)
logger = client.logger("mcp-scenario-logger")
print(f"Simulating realistic errors for project: {project_id}...")
# 1. GCS Permission Error
logger.log_text("ERROR: GCS Upload failed for 'gs://my-app-bucket/data.json'. Status: 403 Forbidden. Missing 'storage.objects.create' for service account.", severity="ERROR")
# 2. Cloud Run Startup Error
logger.log_text("ERROR: Cloud Run service 'api-gateway' failed to start. Container failed to listen on port 8080. Check 'Cloud Run container startup requirements'.", severity="ERROR")
# 3. Secret Manager Access Error
logger.log_text("ERROR: Access denied to secret 'API_KEY'. The identity lacks 'secretmanager.versions.access'.", severity="ERROR")
print("Log entries written to 'mcp-scenario-logger'.")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--project", required=True)
args = parser.parse_args()
simulate_errors(args.project)
- Nhấn tổ hợp phím Ctrl+O, Enter và
Ctrl+Xđể lưu và thoát. - Cài đặt thư viện
Google Cloud Loggingvà chạy tập lệnh:
python -m venv mcp_env
source mcp_env/bin/activate
pip install google-cloud-logging
python simulate_errors.py --project $(gcloud config get-value project)
Nhiệm vụ 2: Thực thi Vòng lặp tự động
Giờ đây, chúng ta sẽ kích hoạt một câu lệnh phức tạp để hướng dẫn Gemini điều phối đồng thời cả hai máy chủ MCP.
Khởi chạy Gemini CLI:
gemini
Nhập "Câu lệnh chính" này vào tác nhân:
I need to troubleshoot recent issues in my project. Perform the following autonomous loop:
Step 1 : Retrieval: Use the Logging MCP to fetch the 5 most recent ERROR entries from the log 'mcp-scenario-logger'.
Step 2 : Iteration: For every unique error found, extract the service and specific error message.
Step 3 : Research: Use the Developer Knowledge MCP to find the official resolution or gcloud command to fix each issue.
Step 4 : Resolution: Consolidate everything into a markdown table with columns: | Service | Error Summary | Recommended Fix |.
Những điều cần biết
Bạn hiện đang xem một Quy trình làm việc dựa trên tác nhân theo thời gian thực. Nhân viên hỗ trợ sẽ:
- Gọi
list_log_entriesđể xem "Ngày tồi tệ" mà chúng ta vừa mô phỏng. - Phân tích văn bản để xác định rằng GCS, Cloud Run và Secret Manager đang gặp lỗi.
- Gọi
search_documentsvàget_documentcho từng dịch vụ đó để tìm vai trò IAM hoặc bản sửa lỗi cấu hình phù hợp. - Cung cấp cho bạn một bảng có cấu trúc tương tự như bảng này (các đề xuất có thể khác nhau):
Dịch vụ | Tóm tắt lỗi | Cách khắc phục được đề xuất |
Cloud Storage | 403 Bị cấm khi tải lên | Cấp |
Cloud Run | Không thể nghe trên cổng 8080 | Đảm bảo ứng dụng liên kết với 0.0.0.0 trên cổng do |
Secret Manager | Thiếu vai trò truy cập phiên bản | Chỉ định |
6. Hành trình C: Dữ liệu (Firestore MCP)
Trong hành trình này, bạn sẽ sử dụng Máy chủ MCP của Firestore để quản lý cơ sở dữ liệu tài liệu NoSQL chỉ bằng ngôn ngữ tự nhiên.
Firestore là một cơ sở dữ liệu linh hoạt, có khả năng mở rộng, nhưng việc quản lý cơ sở dữ liệu này thường đòi hỏi bạn phải viết mã SDK phức tạp hoặc thao tác trên bảng điều khiển. Với MCP, nhân viên hỗ trợ của bạn sẽ trở thành Quản trị viên cơ sở dữ liệu, có khả năng gieo dữ liệu, truy vấn bản ghi và thậm chí thực hiện các quy trình di chuyển giản đồ phức tạp thông qua cuộc trò chuyện.
Việc cần làm 1: Bật các dịch vụ Firestore
Trước tiên, hãy bật API Firestore và điểm cuối MCP tương ứng.
# 1. Enable the Firestore API
gcloud services enable firestore.googleapis.com
# 2. Enable the MCP Server interface
gcloud beta services mcp enable firestore.googleapis.com
Nhiệm vụ 2: Chỉ định vai trò IAM cho Firestore
Để chạy các truy vấn, danh tính của bạn cần có các quyền cụ thể ngoài quyền truy cập MCP cơ bản.
# Grant Firestore User role
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/datastore.user"
Nhiệm vụ 3: Tạo cơ sở dữ liệu kiểm thử chuyên dụng
Để đảm bảo an toàn cho các thử nghiệm của chúng ta, chúng ta sẽ tạo một cơ sở dữ liệu Firestore chuyên dụng có tên là mcp-lab-db.
gcloud firestore databases create --database=mcp-lab-db --location=nam5 --type=firestore-native
Nhiệm vụ 4: Định cấu hình Gemini CLI
Thêm máy chủ MCP Firestore vào tác nhân của bạn. Thêm cấu hình sau vào phần mcpServers trong tệp ~/.gemini/settings.json. Thay thế YOUR_PROJECT_ID bằng mã dự án thực tế của bạn:
"firestore-mcp": {
"httpUrl": "https://firestore.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
}
Nhiệm vụ 5: Thao tác cơ sở dữ liệu bằng ngôn ngữ tự nhiên
Khởi chạy Gemini CLI và thực hiện một số thao tác cơ bản để xác minh kết nối.
Khởi chạy Gemini CLI:
gemini
Xác minh rằng máy chủ đã Sẵn sàng: Nhập /mcp list. Bạn sẽ thấy firestore-mcp cùng một số công cụ (add_document, create_database, list_documents, etc).
Hãy thử các câu lệnh sau theo thứ tự:
Dữ liệu ban đầu:
In the 'mcp-lab-db' database, add three documents to a 'products' collection. Include a laptop (stock 5), a mouse (stock 25), and a keyboard (stock 8).
Xác minh:
List all documents in the 'products' collection from the 'mcp-lab-db' database.
Hãy thử các câu lệnh khác giúp bạn quản lý cơ sở dữ liệu và tập hợp Firestore thông qua ngôn ngữ tự nhiên.
7. Hành trình D: Thông tin chi tiết (BigQuery và Maps)
Trong hành trình này, bạn sẽ trang bị cho tác nhân của mình khả năng phân tích hàng petabyte dữ liệu và hiểu được thế giới thực bằng cách sử dụng các máy chủ MCP BigQuery và Maps Grounding Lite.
Đến cuối phần này, tác nhân của bạn sẽ có thể dịch ngôn ngữ tự nhiên thành các truy vấn SQL phức tạp và cung cấp lời khuyên về không gian địa lý dựa trên bối cảnh (chẳng hạn như thời gian di chuyển và thời tiết) để đưa ra câu trả lời dựa trên thực tế.
Việc 1: Bật Dịch vụ thông minh
Bật các API và giao diện MCP cho cả BigQuery và Google Maps.
# 1. Enable product APIs
gcloud services enable bigquery.googleapis.com mapstools.googleapis.com
# 2. Enable MCP Server interfaces
gcloud beta services mcp enable bigquery.googleapis.com
gcloud beta services mcp enable mapstools.googleapis.com
Việc cần làm 2: Chỉ định vai trò IAM BigQuery
Để chạy các truy vấn, danh tính của bạn cần có các quyền cụ thể ngoài quyền truy cập MCP cơ bản.
# Grant BigQuery Job User and Data Viewer roles
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/bigquery.dataViewer"
Việc cần làm 3: Cung cấp khoá API Maps
Không giống như các dịch vụ khác chỉ dựa vào IAM, máy chủ Maps Grounding Lite yêu cầu phải có khoá API để tính hạn mức và thanh toán.
Tạo khoá:
gcloud alpha services api-keys create --display-name="MCP-Maps-Key"
Tìm nạp chuỗi khoá:
# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
$(gcloud alpha services api-keys list \
--filter="displayName='MCP-Maps-Key'" \
--format="value(name)") \
--format="value(keyString)"
Sao chép chuỗi khoá cho bước tiếp theo.
Nhiệm vụ 4: Định cấu hình Gemini CLI
Bây giờ, hãy đăng ký cả hai máy chủ. Thêm các đoạn mã bên dưới vào phần mcpServers trong tệp ~/.gemini/settings.json. Thay thế YOUR_PROJECT_ID và YOUR_MAPS_API_KEY cho phù hợp.
"bigquery-mcp": {
"httpUrl": "https://bigquery.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
},
"maps-grounding-lite-mcp": {
"httpUrl": "https://mapstools.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_MAPS_API_KEY"
}
}
Nhiệm vụ 5: Intelligence trong thực tế
Khởi chạy Gemini CLI và thử nghiệm các tính năng "Thông minh" mới.
gemini
Xác minh rằng máy chủ đã Sẵn sàng: Nhập /mcp list. Bạn sẽ thấy bigquery-mcp và maps-grounding-lite-mcp cùng một số công cụ được liệt kê. .
Tình huống 1: Công cụ phân tích (BigQuery) Yêu cầu tác nhân truy vấn một tập dữ liệu công khai mà bạn không biết bất kỳ câu lệnh SQL nào:
Run a query to count the number of penguins on each island in the BigQuery public dataset ml_datasets.penguins.
Trường hợp 2: Bối cảnh không gian địa lý (Maps) Yêu cầu tác nhân lên kế hoạch cho một chuyến đi thực tế:
I am planning a drive from Mumbai to Pune tomorrow morning. Based on current weather and routing, what should I expect in terms of travel time and what should I carry?
Những điểm cần chú ý:
- Đối với BigQuery, tác nhân sẽ gọi
execute_sqlđể khám phá giản đồ và chạy truy vấn. - Đối với Maps, ứng dụng này sẽ điều phối
lookup_weathervà compute_routes để cung cấp cho bạn một kế hoạch du lịch hữu ích và có căn cứ.
8. Tăng cường bảo mật: Bảo mật sản xuất và IAM
Trong bước cuối cùng này, bạn sẽ chuyển từ việc sử dụng quyền "Chủ sở hữu" chung sang mô hình Bảo vệ chuyên sâu cấp sản xuất.
Tác nhân AI vốn dĩ là "hữu ích". Nếu bạn hạn chế một công cụ ở cấp giao diện người dùng, thì một tác nhân thông minh có thể cố gắng bỏ qua hạn chế đó bằng cách chạy một lệnh shell. Để thực sự bảo mật cơ sở hạ tầng của mình, bạn phải xây dựng các ranh giới cứng bằng cách sử dụng Cloud IAM của Google.
Mô hình bảo mật hai lớp
Để thực hiện bất kỳ hành động nào, một tác nhân phải vượt qua 2 cổng:
- Cổng 1 (Cổng MCP): Danh tính có
roles/mcp.toolUserkhông? (Quyền sử dụng giao thức). - Cổng 2 (Cổng dịch vụ): Danh tính có vai trò sản phẩm cụ thể (ví dụ:
roles/datastore.viewer) không? (Quyền xem dữ liệu).
Nhiệm vụ 1: Lớp 1 – Lọc phía máy khách (excludeTools)
Lớp phòng thủ đầu tiên là ẩn các công cụ khỏi tác nhân để tác nhân thậm chí không "nghĩ" đến việc sử dụng chúng.
- Mở phần cài đặt Gemini CLI trong trình chỉnh sửa Cloud Shell:
cloudshell edit ~/.gemini/settings.json
- Tìm khối firestore-mcp rồi thêm chỉ thị
excludeToolsđể ẩn các thao tác phá huỷ:
"firestore-mcp": {
"httpUrl": "https://firestore.googleapis.com/mcp",
"excludeTools": ["delete_database", "update_database", "delete_document"],
...
}
Lưu tệp và khởi động lại Gemini CLI. Chạy /mcp list và lưu ý rằng các công cụ đó hiện đã biến mất.
Nhiệm vụ 2: Lớp 2 – Ưu thế về cơ sở hạ tầng (IAM Bouncer)
Tính năng lọc phía máy khách là một biện pháp bảo vệ "mềm". Nếu bạn yêu cầu tác nhân "Xoá cơ sở dữ liệu Firestore của tôi" và công cụ này bị ẩn, thì tác nhân có thể cố gắng chạy gcloud firestore databases delete. Để ngăn chặn điều này, chúng tôi sử dụng Tài khoản dịch vụ có ít đặc quyền nhất.
Tạo Tài khoản dịch vụ "Chỉ đọc":
# Create the service account
gcloud iam service-accounts create mcp-reader-sa --display-name="MCP Reader Only"
# Grant ONLY the necessary roles (Gate 1 + Gate 2)
export PROJECT_ID=$(gcloud config get-value project)
SA_EMAIL="mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/mcp.toolUser"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/datastore.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/aiplatform.user"
Tạo và kích hoạt khoá:
gcloud iam service-accounts keys create reader-key.json --iam-account=$SA_EMAIL
export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/reader-key.json
Nhiệm vụ 3: Thử nghiệm về người kiểm tra "Trợ lý hữu ích"
Bây giờ, hãy kiểm tra xem tác nhân có thể bỏ qua hệ thống bảo mật của chúng ta hay không.
Bước đầu tiên của chúng ta sẽ là kích hoạt Tài khoản dịch vụ, để ngay cả khi tác nhân quay lại sử dụng lệnh gcloud, tác nhân đó vẫn hoạt động dưới danh tính tài khoản dịch vụ mà chúng ta vừa tạo.
Kích hoạt tài khoản dịch vụ:
Chạy lệnh sau, thay thế [PATH_TO_KEY_FILE] bằng đường dẫn thực tế đến tệp khoá JSON của bạn (ví dụ: reader-key.json).
gcloud auth activate-service-account --key-file=[PATH_TO_KEY_FILE]
Xác minh nội dung thay đổi:
Sau khi chạy lệnh, bạn có thể xác minh rằng tài khoản dịch vụ đang hoạt động bằng cách chạy:
gcloud auth list
Đầu ra sẽ cho thấy tài khoản dịch vụ là thông tin đăng nhập đang hoạt động.
Chạy Gemini CLI:
gemini
Nhập câu lệnh này:
I want to delete the 'mcp-lab-db' firestore database. If the tool is missing, try using the gcloud firestore command in the terminal.
Điều gì sẽ xảy ra?
- Trước tiên, tác nhân sẽ cố gắng sử dụng công cụ delete_database trong Máy chủ MCP Firestore. Thao tác này sẽ không thành công do thiếu quyền.
- Sau đó, nó cố gắng "hữu ích" bằng cách quay lại công cụ
run_shell_commandđể sử dụng lệnh gcloud firestore.
Kết quả:
Lệnh này không thành công do gặp lỗi Bị cấm. Vì tác nhân đang chạy dưới danh tính mcp-reader-sa, nên tác nhân này thiếu quyền datastore.databases.delete. IAM là biện pháp dự phòng cuối cùng. Bất kể tác nhân cố gắng truy cập vào tài nguyên bằng cách nào, "Bouncer" ở cấp độ API Google Cloud sẽ chặn yêu cầu.
Chuyển lại về tài khoản người dùng:
Để chuyển về tài khoản người dùng, hãy đưa ra lệnh sau:
gcloud config set account YOUR_EMAIL_ADDRESS
9. Dọn dẹp
Để tránh các khoản phí không mong muốn, hãy xoá các tài nguyên kiểm thử:
# Delete the Firestore database
gcloud firestore databases delete --database=mcp-lab-db
# Remove the service account
gcloud iam service-accounts delete mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com
10. Kết luận
Xin chúc mừng! Bạn đã điều hướng thành công toàn bộ ngăn xếp của Máy chủ MCP do Google quản lý.
Bạn bắt đầu với "Trunk" của phòng thí nghiệm, thiết lập một kết nối cơ bản với Cloud Logging. Từ đó, bạn đã phát triển thành các "Cuộc phiêu lưu" theo mô-đun – liên kết thực tế kiến thức của tác nhân, tự động hoá các vòng lặp khắc phục sự cố phức tạp, di chuyển dữ liệu trong Firestore và trích xuất thông tin chi tiết từ BigQuery và Maps.
Quan trọng nhất là bạn đã hoàn tất bằng cách neo tác nhân của mình vào Các gốc của bảo mật sản xuất. Bạn đã chứng minh rằng mặc dù một tác nhân có thể "hữu ích" đến mức gây ra lỗi, nhưng Cloud IAM là người kiểm soát cuối cùng, đảm bảo rằng các quy trình công việc tự động của bạn luôn tuân thủ Nguyên tắc về đặc quyền tối thiểu.
Những điểm chính cần ghi nhớ
- Được quản lý = Có khả năng mở rộng: Bạn đã kết nối với các công cụ cấp cơ sở hạ tầng thông qua HTTP có thể truyền trực tuyến mà không cần triển khai một máy chủ nào.
- Liên kết thực tế là bắt buộc: Bạn đã thay thế việc LLM "đoán" bằng MCP Kiến thức của nhà phát triển, đảm bảo tác nhân của bạn sử dụng các lệnh hiện tại và hợp lệ.
- Điều phối là sức mạnh: Bạn thấy rằng điều kỳ diệu thực sự xảy ra khi một tác nhân kết hợp nhiều máy chủ MCP để giải quyết một vấn đề kinh doanh duy nhất.