A remote MCP server that wraps the Fundata WebData & DbSync APIs for AI clients — with fixed inbound and outbound IPs, per-client credential relay, and per-credential rate limiting, deployed per environment by CloudFormation.
mcp.fundataapi.com (Route 53) → Global Accelerator's two static IPs → ALB
(HTTPS via ACM) → Lambda. The GA IPs are the fixed inbound addresses a client firewall can allowlist.
The server stores no Fundata credentials. Each client sends its own key/secret
(HTTP Basic, or X-Fundata-Key/-Secret); the Lambda relays to Fundata
/authenticate and caches the token per credential.
Lambda runs in private subnets → NAT Gateway with a pinned Elastic IP. Fundata allowlists that one egress IP. DbSync download URLs are fetched by the client directly, not proxied through the server.
Per-credential fixed-window limits in DynamoDB, reached over a VPC gateway endpoint (private, off the NAT); the checks run in parallel. DbSync gets its own stricter budget.
One CloudFormation template deploys UAT and Prod as separate accounts from per-env config, with stack-level tags and Lambda code pinned by S3 object version. Each env has its own in/out IPs.