hey @user, I played around with the features, they work great ! Thank you for such a quick and solid implementation.
The registered Archestra OAuth client would allow agentic chat server (and only that server) to access the MCP gateway
What I had in mind is the ability to lock down access to specific gateways through specific clients via the allowedGatewayIds list, the idea is that users may access some gateways only if their token has been generated by the OAuth flow of the pre-registered client.
Ideal scenario :
• I create a Chat Interface MCP gateway and expose the Github MCP through it, I do not assign any users to this gateway.
• Users cannot access the Chat Interface MCP Gateway.
• I create a Chat Interface client (authorization_code), I assign the Chat Interface MCP Gateway to this client via allowedGatewayIds
• Users who authenticate to Archestra via the Chat Interface client can access the Chat Interface MCP Gateway.
• I may expose a more limited version of the Github MCP through a different gateway, and give broad access to it. But the full features of the MCP Github are gated behind trusted pre-registered clients only.
However, I do understand that this may be a flawed design. This means that a pre-registered client is able to override RBAC and give users access to MCP gateways that they should not have access to based on their permissions. You could even argue that this may be out of :archestra:'s scope.
I am open to discussion and to providing more details if necessary.