What is Progress notification (MCP)?

A progress notification is an MCP message a server sends during a long-running operation to report incremental progress, so the client can show status instead of waiting blindly for the final result.

A progress notification is one of the Model Context Protocol's mechanisms for handling operations that take a while to complete. When a client makes a request it can attach a progress token, signaling that it wants updates. While the server works, indexing a large repo, running a slow query, processing a batch, it sends progress notifications back, each referencing that token and carrying a progress value and optionally a total and a human-readable message. The client uses these to drive a progress bar, status line, or log so the user sees that work is happening and roughly how far along it is, rather than staring at a frozen interface. Progress notifications are JSON-RPC notifications, meaning they are one-way and expect no reply, and they flow over whichever transport the session uses. They pair naturally with cancellation: a client showing progress can also let the user abort, sending a cancellation notification for the same request. For tools whose work is unpredictable in duration, emitting progress is what keeps the experience responsive and the user informed.