Requirements
- Transport: Streamable HTTP. SSE-only servers are not supported.
- URL:
https://required.http://is accepted only forlocalhostand127.0.0.1during local development. - Reachability: the server must be on a public address. Private and internal ranges, link-local, loopback (other than localhost in dev),
*.local,*.internal, and URLs with embedded credentials are rejected. Redirects are followed at most 3 times and each hop is checked the same way. - Auth: OAuth, a static header, or none.
Add a server
In Integrations, click Add custom MCP. Enter a Name (up to 100 characters) and the Server URL. Henry immediately performs an MCPinitialize and tools/list within a 10-second budget.
- If the server answers, the connector is ready and its tools are cached.
- If it answers 401, Henry starts the OAuth flow described below.
- If it cannot be reached, the connector is still added and shows the error so you can fix the server and retry.
Authentication
- OAuth
- Static header
- None
Henry is a public OAuth 2.1 client using PKCE. It supports two ways of identifying itself to your authorization server:Registered client metadata:The authorization
- URL-based client ID (Client ID Metadata Documents). Henry’s client ID is the URL
https://app.usehenry.ai/.well-known/oauth-client-metadata. If your server advertisesclient_id_metadata_document_supported, no registration step is needed. - Dynamic Client Registration (RFC 7591) as the fallback.
state is single-use and expires after 10 minutes. The same signed-in person who started the flow must finish it; a forwarded authorization link fails.If your authorization server only allows pre-approved clients, contact support@usehenry.ai to have Henry’s client ID registered for your server’s origin.How tools appear to Henry
- Each tool is exposed under a key of the form
cc_<connector-name-slug>__<tool-name>, truncated to 60 characters. With several accounts on one connector, the account label is included and tool descriptions are prefixed with the account. - The
readOnlyHintannotation decides the default permission: read tools Run automatically, everything else Ask for confirmation. Set annotations accurately. - Tool lists are cached. Henry re-lists on first connect, nightly, when a cached tool fails, and when a cache entry is older than 26 hours.
- Tool results longer than 100,000 characters are paged.
Limits
Permissions and sharing
Custom connector tools use the same tri-state as every tool: Off, Run automatically, Ask for confirmation, set on the connector page or from a confirmation card. Permissions are per connector and cover all its accounts. Accounts on a connector are team scope by default. Per-member access levels (Full access, Read-only, No access) apply; read-only members only see tools withreadOnlyHint.