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

Notifications walkthrough

📖 Nội dung bài học

  1. 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.

  1. 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.

  1. Đị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.

  1. 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

📚 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?