feat: API Gateway transport + dynamic multi-cluster MCP - #57
Conversation
|
Adding myself as a reviewer on this PR. @kiranmam |
|
Nice change overall — auto-discovering engine and credentials from Below, Part 1 is things needing action from you, Part 2 is verification results with nothing to do — included so you know what the review did and didn't cover. Part 1 — Action needed
1.
|
…review) - Restore rds:DescribeDBProxies and rds:DescribeDBProxyTargets, which get_proxy_health calls and the README/instructions still advertise; without them the tool returned AccessDenied post-merge (regression). - Set Lambda Timeout to 29s to match the API Gateway REST integration timeout, so slow queries no longer 504 at 29s while Lambda bills to 60s. Optional items from the review (ApiGatewayAccount default, prod wildcard guard, StageName reconciliation, formatting) deferred per reviewer.
- Item 3: document that AWS::ApiGateway::Account is an account/region-wide setting; point users to ExistingApiGatewayCloudWatchRoleArn and warn about stack-delete side effects (README). - Item 4: add a CloudFormation Rule that fails the deploy when StageName is 'prod' and AllowedClusters is '*', enforcing the prod allowlist guidance. - Item 5: clarify what StageName controls (allowlist enforcement + resource naming; API stage path is always /Prod/). - Item 6: fix formatting nits in _execute_sql (space after comma; align the columns list continuation). - Also correct the README Register URL/Service Name to match the API Gateway (execute-api) transport.
Transport: Function URL → API Gateway (execute-api SigV4). Data-plane tools now accept cluster_identifier and auto-discover engine + credentials from MasterUserSecret. Added includeResultMetadata + label fallback for Aurora MySQL column names. Pinned mcp==1.29.0, mcp-proxy==0.12.0, fastmcp==3.4.7. Verified end-to-end against live Aurora MySQL and PostgreSQL clusters through DevOps Agent.