aws / aws/amazon-q-developer-cli

Feature Request: Support MCP in progress messages

Open
#1,970 2 comments 6 reactions 0 assignees View on GitHub
MCP
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.