Bỏ qua để đến nội dung

Truy cập resource

Bài viết được dịch tự động từ bài viết gốc, chưa được kiểm tra lại bởi con người. Chỉ những bài viết có dấu tick xanh cạnh tiêu đề là đã được kiểm tra.

Resource trong MCP cho phép server đưa thông tin thẳng vào prompt, thay vì phải qua một lệnh gọi tool - giúp việc đưa ngữ cảnh cho model hiệu quả hơn.

Cần import jsonAnyUrl từ pydantic. Hàm cốt lõi gọi phương thức read_resource của MCP server, rồi xử lý response dựa theo MIME type:

async def read_resource(self, uri: str) -> Any:
result = await self.session().read_resource(AnyUrl(uri))
resource = result.contents[0]
if isinstance(resource, types.TextResourceContents):
if resource.mimeType == "application/json":
return json.loads(resource.text)
return resource.text

Response từ server chứa một danh sách contents, phần tử đầu tiên trong đó được lấy ra để xử lý. Response bao gồm nội dung thực tế, MIME type để hướng dẫn cách parse, và metadata của resource.

Hàm kiểm tra MIME type để quyết định cách xử lý: nội dung JSON được parse thành object, các định dạng khác trả về dạng văn bản thô.

Người dùng có thể gõ ”@” trong CLI để kích hoạt autocomplete hiển thị các resource khả dụng, chọn bằng phím mũi tên và phím cách, rồi nội dung resource được đưa thẳng vào prompt mà không cần thêm lệnh gọi tool nào.

Sơ đồ tuần tự truy cập resource: người dùng gõ "What's in the @…" trong CLI, code gửi ReadResourceRequest tới MCP server, server trả về ReadResourceResult chứa nội dung resource Sơ đồ tuần tự: người dùng gõ @, code gửi ReadResourceRequest, server trả về ReadResourceResult chứa nội dung resource.