aws / aws/amazon-q-developer-cli
Feature Request: Support MCP in progress messages
- Dominant language
- Rust
- Stars
- 2k
- Forks
- 439
- PR merge metrics
- No merged PRs in 30d
Description
Q does not implement [the progress notification](https://modelcontextprotocol.io/specification/2025-03-26/basic/utilities/progress). This ticket is to request the CLI impliment this feature. This will be useful for longer running processes and for providing user observability into what the Q-cli LLM sees and is responding to(which is presently not possible)
Please impliment this spec
Current Q output:
```
?
🛠️ Using tool: test_tool from mcp server nmrose_build_tools
⋮
● Running test_tool with the param:
⋮ {
⋮ "arguments": {},
⋮ "name": "test_tool"
⋮ }
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:
> y
⋮
● Completed in 8.4s
```
Same invocation but directly via stdio
```
{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "nmrose_build_tools___test_tool", "arguments": {}}, "id": 1}
{"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"tool not found"}}
{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "test_tool", "arguments": {}}, "id": 1}
{"jsonrpc": "2.0", "method": "notifications/progress", "params": {"progressToken": "abc123", "progress": 1, "message": "Starting test tool operation"}}
{"jsonrpc": "2.0", "method": "notifications/progress", "params": {"progressToken": "abc123", "progress": 2, "message": "🔍 Initializing components"}}
{"jsonrpc": "2.0", "method": "notifications/progress", "params": {"progressToken": "abc123", "progress": 3, "message": "⚠️ Some resources might be unavailable"}}
{"jsonrpc": "2.0", "method": "notifications/progress", "params": {"progressToken": "abc123", "progress": 4, "message": "Processing data"}}
{"jsonrpc": "2.0", "method": "notifications/progress", "params": {"progressToken": "abc123", "progress": 5, "message": "✅ Operation completed successfully"}}
{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"Test tool executed successfully with progress notifications"}],"isError":false}}
```
### Solutioning
Feel free to disregard if you have deeper more ingrained thoughts on this could look something like this w/ no total field(like above)
```
?
🛠️ Using tool: test_tool from mcp server nmrose_build_tools
⋮
● Running test_tool with the param:
⋮ {
⋮ "arguments": {},
⋮ "name": "test_tool"
⋮ }
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:
> y
Starting test tool operation
🔍 Initializing components
⚠️ Some resources might be unavailable
✅ Operation completed successfully
⋮
● Completed in 8.4s
```
I'm biased in suggesting to let the MCP components control the formatting in order to let them design the best experience
Feature stretch: Not sure the best way to impliment this within the MCP framework but being able to support something like gradle and bazel where you have the following under control from the MCP server....
```
> y
notification
stream
here
cool visual summarizing the overall progress
```
Would be nice :D
Contributor guide
Assessment
This issue has not been assessed yet.