Bỏ qua đến nội dung chính

Accessing resources

📖 Nội dung bài học

Tóm tắt

Resources trong MCP cho phép server của bạn cung cấp dữ liệu có thể được đưa trực tiếp vào prompt, thay vì yêu cầu tool call để truy cập thông tin. Điều này tạo ra một cách hiệu quả hơn để cung cấp ngữ cảnh cho các mô hình AI như Claude.

Hiểu luồng tài nguyên

Khi người dùng gõ một cái gì đó như "What's in the @..." trong ứng dụng của bạn, hệ thống cần lấy danh sách các tài nguyên có sẵn để tự động hoàn thành. MCP client gửi một ReadResourceRequest đến server, server phản hồi với danh sách tên tài liệu có thể được tham chiếu.

Triển khai đọc tài nguyên

Chức năng cốt lõi diễn ra trong phương thức read_resource của MCP client của bạn. Phương thức này nhận một tham số URI để xác định tài nguyên nào cần lấy từ server.

Đầu tiên, thêm các import cần thiết để xử lý phân tích cú pháp JSON và xác thực URL:

import json
from pydantic import AnyUrl

Việc triển khai chính thực hiện một yêu cầu đến MCP server và xử lý phản hồi:

async def read_resource(self, uri: str) -> Any:
    result = await self.session().read_resource(AnyUrl(uri))
    resource = result.contents[0]

Xử lý các loại nội dung khác nhau

Tài nguyên có thể trả về các loại nội dung khác nhau, vì vậy bạn cần kiểm tra kiểu MIME để xử lý phản hồi một cách phù hợp:

if isinstance(resource, types.TextResourceContents):
    if resource.mimeType == "application/json":
        return json.loads(resource.text)
    
return resource.text

Cách tiếp cận này đảm bảo rằng các tài nguyên JSON được phân tích cú pháp đúng cách, trong khi các tài nguyên văn bản thuần túy được trả về nguyên trạng.

Kiểm tra việc triển khai

Sau khi triển khai, bạn có thể kiểm tra chức năng tài nguyên bằng cách chạy ứng dụng CLI của mình. Khi bạn gõ "@" theo sau là tên tài nguyên, hệ thống sẽ:

  • Hiển thị các tài nguyên có sẵn trong danh sách tự động hoàn thành
  • Cho phép bạn chọn tài nguyên bằng các phím mũi tên và phím cách
  • Bao gồm nội dung tài nguyên trực tiếp vào prompt được gửi đến Claude

Điều này có nghĩa là Claude nhận được nội dung tài liệu ngay lập tức mà không cần thực hiện thêm tool calls, giúp tương tác hiệu quả hơn nhiều.

Lợi ích chính

Resources cung cấp một số lợi thế so với tools để truy cập thông tin tĩnh:

  • Nội dung được bao gồm trực tiếp trong prompts, giảm độ trễ
  • Không cần thêm API calls trong cuộc trò chuyện
  • Trải nghiệm người dùng tốt hơn với chức năng tự động hoàn thành
  • Phân tách rõ ràng hơn giữa dữ liệu tĩnh và các hoạt động động

Resources hoạt động tốt nhất cho thông tin tương đối tĩnh mà bạn muốn làm cho các mô hình AI dễ dàng truy cập, chẳng hạn như tài liệu, báo cáo hoặc tài liệu tham khảo.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?