For the complete documentation index, see llms.txt. This page is also available as Markdown.

Quilt Connect Server

Connect Server requires Quilt Platform version 1.68 or later.

Quilt Connect Server is an identity provider and gateway that enables external services to securely interact with your Quilt data and perform actions on behalf of your users. Connect Server:

  • Authenticates requests using your organization's identity provider

  • Issues session tokens scoped to individual user permissions

  • Routes requests to authorized services within your AWS environment

One such service is the Platform MCP Server, which lets AI assistants interact with your Quilt data through natural language.

Admin Setup

Connect Server is disabled by default. To enable it, set the ConnectAllowedHosts CloudFormation parameter to a non-empty value.

CloudFormation Parameters

Parameter
Default
Description

ConnectAllowedHosts

(empty)

Comma-separated list of allowed OAuth redirect origins. Empty = disabled. See Entry formats below.

ConnectSecurityGroup

(empty)

Optional EC2 security group ID for Connect ALB IP allowlisting. Empty = allow all.

CertificateArnConnect

(empty)

Optional ACM certificate ARN for the Connect ALB. Empty = reuses the main stack TLS certificate, which must then cover the Connect host (see DNS Configuration).

ConnectAllowedHosts Entry Formats

Each comma-separated entry can be one of:

Format
Example
Matches

Hostname

claude.ai

https://claude.ai/* (HTTPS only)

Subdomain wildcard

.benchling.com

https://<any-subdomain>.benchling.com/* — any subdomain at any depth (e.g. app.benchling.com, app.us.benchling.com); does not match the apex https://benchling.com/* (HTTPS only; leading dot required)

Custom scheme

cursor://

cursor://<any-host>/* (for desktop apps with a custom URI scheme)

Localhost

localhost

http://localhost:<any-port>/* and http://127.0.0.1:<any-port>/* (HTTP only; either loopback enables both)

Canonical example covering the common web, desktop, and local MCP clients (loopback first, then suffix wildcards, then alphabetized hostnames and custom schemes):

Entries are case-insensitive. Trailing dots on hostnames are ignored. Network schemes (http://, https://, etc.) are not valid entries and are silently ignored — use a bare hostname (or .-prefixed wildcard suffix) for HTTPS clients and a custom scheme (cursor://) for desktop clients.

DNS Configuration

After deploying with Connect enabled, create a DNS record for your Connect subdomain (typically <stack-name>-connect.<your-domain>).

If your hosted zone is in Route 53, we recommend an alias record:

Route 53 Field
Value

Record type

A (alias)

Alias target

ConnectLoadBalancerDNSName CloudFormation output

Hosted zone ID

ConnectLoadBalancerCanonicalHostedZoneID output

If your DNS is hosted elsewhere, create a CNAME record pointing to the ConnectLoadBalancerDNSName CloudFormation output. See the Installation CNAMEs section for the equivalent catalog DNS records.

ALB scheme (internal vs. internet-facing). As of Quilt 1.71, the Connect ALB follows the same scheme as the main catalog load balancer. On an internet-facing stack the Connect endpoint is reachable from the public internet; on an internal stack it is internal — reachable only from within your VPC or over your VPN, like the catalog itself. On internal stacks, local or desktop MCP clients (Cursor, Claude Code, etc.) must therefore run on a network with access to the Connect host.

TLS certificate: by default (CertificateArnConnect empty) the Connect ALB reuses the main stack certificate (CertificateArnELB), which must then cover the Connect host (the ConnectHost output) — via an explicit Subject Alternative Name or a wildcard at the matching level (* matches a single label only). If it does not, set CertificateArnConnect to a certificate that does; otherwise DNS resolves but HTTPS fails with a certificate name mismatch.

The final Connect Server hostname is available in the ConnectHost CloudFormation output.

OAuth Metadata

Connect Server publishes OAuth authorization server metadata at /.well-known/oauth-authorization-server and OpenID metadata at /.well-known/openid-configuration. The issuer value is the Connect Server origin (https://<connect-host>), and all advertised endpoints (/auth/token, /auth/register, /auth/revoke, /auth/.well-known/jwks.json, and the cross-served /connect/authorize) are derived from it.

Compatibility note. The issuer omits the HTTPS default port, per RFC 3986 §3.2.3 ("URI producers and normalizers should omit the port component ... if its value would be the same as that of the scheme's default"). Clients that normalize the AS origin before the RFC 8414 §3.3 issuer comparison — the OpenAI Codex CLI among them — drop :443, so an issuer carrying it can never compare equal and OAuth aborts at discovery. A non-default port in CONNECT_DOMAIN is preserved.

Protected Resource Identifier

Connect Server registers exactly one OAuth resource identifier for the Platform MCP server:

Connect normalizes inbound resource parameters by stripping a trailing /mcp before the membership check, so clients that submit the full MCP transport URL (https://<connect-host>/mcp/platform/mcp, as ChatGPT does) are accepted alongside clients that derive the canonical resource from RFC 9728 Protected Resource Metadata (as Claude.ai and Cursor do). The token aud claim is always the canonical /mcp/platform identifier regardless of input form.

IP Allowlisting (Optional)

To restrict which IP ranges can reach the Connect Server, create an EC2 security group with inbound rules on port 443 for your trusted CIDR ranges, then pass the security group ID as ConnectSecurityGroup. If omitted, the Connect ALB accepts traffic from any IP.

Last updated

Was this helpful?