📖 Nội dung bài học
- Hàm tool nhận đối số Context
Các hàm tool tự động nhận 'Context' làm đối số cuối cùng. Object này có các phương thức để ghi log và báo cáo tiến độ cho client.
- Tạo log và tiến độ với context
Trong hàm tool của bạn, hãy gọi các phương thức info(), warning(), debug(), hoặc error() để ghi log các loại tin nhắn khác nhau cho client. Bạn cũng gọi phương thức report_progress() để ước tính lượng công việc còn lại cho tool call.
- Định nghĩa callbacks trên client
Client cần định nghĩa các callback ghi log và tiến độ, chúng sẽ tự động được gọi bất cứ khi nào server phát ra tin nhắn log hoặc tiến độ. Các callback này nên cố gắng hiển thị dữ liệu log và tiến độ được cung cấp cho người dùng.
- Truyền callbacks đến các hàm thích hợp
Hãy đảm bảo bạn cung cấp callback ghi log cho ClientSession và callback tiến độ cho hàm call_tool().
← Previous Next →
Files
📄 .gitignore
📄 client.py
📄 pyproject.toml
📄 README.md
📄 server.py
server.py×
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from mcp.server.fastmcp import
FastMCP, Context
import asyncio
mcp = FastMCP(name="Demo Server")
@mcp.tool()
async def add(a: int, b: int, ctx:
Context) -> int:
await ctx.info("Preparing to
add...")
await ctx.report_progress(20, 100)
await asyncio.sleep(2)
await ctx.info("OK, adding...")
await ctx.report_progress(80, 100)
return a + b
if __name__ == "__main__":
mcp.run(transport="stdio")
Tóm tắt
Tải xuống
Các bước hướng dẫn
Hãy cùng tìm hiểu rõ hơn về cách triển khai tính năng này bằng cách xem qua một project mẫu.
Bỏ qua Tiếp theo
🔁 Bài học liên quan
- Bài tiếp: Roots
- Bài trước: Log and progress notifications
- Thuộc lộ trình: Path D
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/model-context-protocol-advanced-topics/291036
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: — · Chuẩn hoá: 2026-05-01