client: mark Amazon Q as non-stdio MCP client#361
client: mark Amazon Q as non-stdio MCP client#361Pnkcaht wants to merge 2 commits intodocker:mainfrom
Conversation
Signed-off-by: pnkcaht <samzoovsk19@gmail.com>
cutecatfann
left a comment
There was a problem hiding this comment.
Thanks for fixing! 😁
I'll fix the error this morning and wait for the merge @bpmiranda3099 |
Signed-off-by: pnkcaht <samzoovsk19@gmail.com>
|
I reverted to the current main state and used |
cutecatfann
left a comment
There was a problem hiding this comment.
Thanks for patience! Looks great to me!
|
What do we mean by "client does not support MCP stdio"? Amazon-Q does support stdio connections to the gateway, doesn't it? |
@slimslenderslacks Amazon Q supports stdio for local MCP servers, but when connecting via the Docker MCP Gateway, stdio transport is not supported. Thanks for the question :) |
What I did
Added Amazon Q Developer to the list of supported MCP clients in the Docker MCP Gateway configuration.
This change registers Amazon Q as a non-stdio MCP client, making it visible, discoverable, and correctly handled by the gateway while explicitly blocking unsupported stdio connection attempts.
The goal is to enable Docker MCP integration visibility for AWS-focused workflows without allowing invalid transport usage.
Related issue
Fixed #353
What was the problem ?
Amazon Q Developer was not present in the supported clients list.
Because of this:
Explanation
Amazon Q Developer does not support MCP stdio transports.
This PR explicitly registers Amazon Q with:
By doing so, the gateway can expose Amazon Q safely while preventing unsupported usage paths.
Diagram
Amazon Q Client Registration & Connection Flow
flowchart TD A[MCP Gateway starts] --> B[Load supported clients] B --> C{Client is Amazon Q?} C -->|Yes| D[Register client with stdio disabled] D --> E[Expose client via client ls] E --> F{User attempts connect?} F -->|Yes| G[Reject: stdio not supported] F -->|No| H[Client remains discoverable]Before
After
Configuration (config.yml)
Amazon Q is explicitly declared in the embedded config.yml file.
The configuration registers the client with full metadata while intentionally disabling stdio support, making the limitation explicit and enforceable at the configuration level.
Testing
Client discovery
go run ./cmd/docker-mcp client ls --globalObserved behavior:
Connection attempt
go run ./cmd/docker-mcp client connect amazon-q --globalObserved behavior:
client does not support MCP stdioThis shows that:
State validation after failure
After the failed connection attempt, the client list was queried again:
go run ./cmd/docker-mcp client ls --globalObserved behavior:
This demonstrates that invalid connection attempts do not corrupt client state and that transport enforcement behaves as expected.