modelcontextprotocol / modelcontextprotocol/python-sdk
FastMCP: Support dynamic annotation updates
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 24.3k
- Fork
- 4k
- Merge trung bình
- 1 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 31
Mô tả
Problem
FastMCP will support resource annotations (audience, priority, lastModified) via the @mcp.resource() decorator (see #1468). However, annotations are set once at decoration time and cannot be updated as the server runs.
This is problematic for lastModified especially. If you annotate a file resource, there's no easy way to keep the timestamp current as the file changes:
@mcp.resource("file://docs/readme.md", annotations=Annotations(
audience=["user"],
lastModified="2025-01-12T15:00:58Z"
))
def read_readme() -> str:
return open("readme.md").read()
Once deployed, this annotation is stale. If the file updates tomorrow, clients see outdated metadata.
Solution
Allow annotations to be updated dynamically. Possible approaches:
- Provide a method to update resource annotations at runtime
- Allow annotation callables/lambdas that compute values on each
list_resources()call - Return fresh annotations from resource handler functions
This would enable:
- Accurate
lastModifiedtimestamps from file mtimes - Dynamic audience/priority based on server state
- Better integration with external data sources
Issue written by Claude, reviewed by @maxisbey
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với đường dẫn đăng ký FastMCP @mcp.resource() và hành vi của list_resources() được đề cập trong issue. So sánh các cách tiếp cận được đề xuất về cập nhật runtime, callable và giá trị trả về của handler, sau đó xác định cách một triển khai sẽ giữ cho các chú thích audience, priority và lastModified luôn được cập nhật đối với client.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- api
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 35/100