Skip to main content

CustomMCPServer

A project-scoped, HTTP-only MCP server definition, keyed (tenant_id, project_id, server_id). Its wire ID is "custom:{server_id}".

auth_type selects the required credential fields. Authenticated modes require auth_secret_ref; NONE requires it to be empty. HEADER requires auth_header_name and QUERY requires auth_query_param; those names must be empty for every other mode. Inconsistent combinations are rejected before storage. Inline credentials are not accepted.

Usage profiles​

UsageFields and validation
In requestsView fields
In responsesView fields

In requests​

API JSON uses JSON field names (camelCase).

FieldTypePresenceMeaning
serverIdstringRequired in requestsUnique within the project. Pattern: ^[a-z0-9][a-z0-9-]{0,62}$.
displayNamestringOptionalDisplay name used for the registered MCP server. Maximum length: 200.
descriptionstringOptionalHuman-readable description of the resource. Maximum length: 1024.
endpointstring (uri)Required in requestsHTTPS endpoint for Streamable HTTP; local and standard-input/output transports are unsupported. The egress guard also rejects prohibited destinations such as metadata, loopback, private-network and in-cluster addresses. HTTPS alone does not satisfy these destination checks. Maximum length: 2048. Pattern: ^https://.
authTypestring (CUSTOM_MCP_SERVER_AUTH_TYPE_NONE, CUSTOM_MCP_SERVER_AUTH_TYPE_BEARER, CUSTOM_MCP_SERVER_AUTH_TYPE_HEADER, CUSTOM_MCP_SERVER_AUTH_TYPE_QUERY) or integer (int32) (1, 2, 3, 4)OptionalAuthentication mechanism configured for the MCP server.
authSecretRefSecretRefOptionalRequired credential reference for BEARER, HEADER and QUERY authentication. Resolves within this server's tenant and project; only the secret name is returned, never its value.
authHeaderNamestringOptionalName of the custom authentication header. The egress guard also rejects protected header names; satisfying the field's character pattern alone does not permit every header. Pattern: ^([A-Za-z0-9!#$%&'*+.^_`|~-]{1,128})?$.
enabledbooleanOptionalWhether this configuration is enabled.
requestTimeoutstringOptionalTime allowed for a remote request. Omission or a nonpositive duration uses 30 seconds; positive durations below one second are raised to one second. Long waits can delay the conversation while the remote server is unavailable. Pattern: ^-?(?:0|[1-9][0-9]*)(?:.[0-9]{1,9})?s$.
versionstring (int64)OptionalOutput-only revision assigned by the store and incremented on updates. Ignored on writes. Pattern: ^-?\d+$.
createdBystringOptionalOutput-only identity of the caller that registered the server. Ignored on writes.
createdAtstring (date-time)OptionalOutput-only creation time assigned by the store. Ignored on writes.
updatedAtstring (date-time)OptionalOutput-only last-update time assigned by the store. Ignored on writes.
authQueryParamstringOptionalRequired for QUERY auth; the vendor's parameter name (e.g. "tavilyApiKey"). Empty is allowed — populated only for QUERY auth. Pattern: ^([A-Za-z0-9._~-]{1,128})?$.

Values of authType​

How credentials are attached to requests to a tenant-configured MCP server.

ValueNo.FormMeaning
CUSTOM_MCP_SERVER_AUTH_TYPE_NONE1CanonicalSend requests without attaching a secret for authentication.
CUSTOM_MCP_SERVER_AUTH_TYPE_BEARER2CanonicalSend the secret as a Bearer token in the Authorization header.
CUSTOM_MCP_SERVER_AUTH_TYPE_HEADER3CanonicalSend the secret in the configured custom header.
CUSTOM_MCP_SERVER_AUTH_TYPE_QUERY4CanonicalAdd the secret as the configured URL query parameter when connecting; the stored endpoint remains the base URL.

Request validation​

These rules apply when this value is supplied in a request. Request validation does not guarantee that response fields are present or satisfy the same rules.

Applies toRuleRequirement
serverIdPattern^[a-z0-9][a-z0-9-]{0,62}$
displayNameMaximum length200
descriptionMaximum length1024
endpointMaximum length2048
endpointPattern^https://
endpointUritrue
authTypeDefined enum valuetrue
authHeaderNamePattern^([A-Za-z0-9!#$%&'*+.^_|~-]128)?$`
requestTimeoutAt most120s
authQueryParamPattern^([A-Za-z0-9._~-]{1,128})?$

In responses​

API JSON uses JSON field names (camelCase).

FieldTypePresenceMeaning
serverIdstringRequired in requestsUnique within the project.
displayNamestringOptionalDisplay name used for the registered MCP server.
descriptionstringOptionalHuman-readable description of the resource.
endpointstringRequired in requestsHTTPS endpoint for Streamable HTTP; local and standard-input/output transports are unsupported. The egress guard also rejects prohibited destinations such as metadata, loopback, private-network and in-cluster addresses. HTTPS alone does not satisfy these destination checks.
authTypestring (CUSTOM_MCP_SERVER_AUTH_TYPE_NONE, CUSTOM_MCP_SERVER_AUTH_TYPE_BEARER, CUSTOM_MCP_SERVER_AUTH_TYPE_HEADER, CUSTOM_MCP_SERVER_AUTH_TYPE_QUERY) or integer (int32)OptionalAuthentication mechanism configured for the MCP server.
authSecretRefSecretRefOptionalRequired credential reference for BEARER, HEADER and QUERY authentication. Resolves within this server's tenant and project; only the secret name is returned, never its value.
authHeaderNamestringOptionalName of the custom authentication header. The egress guard also rejects protected header names; satisfying the field's character pattern alone does not permit every header.
enabledbooleanOptionalWhether this configuration is enabled.
requestTimeoutstringOptionalTime allowed for a remote request. Omission or a nonpositive duration uses 30 seconds; positive durations below one second are raised to one second. Long waits can delay the conversation while the remote server is unavailable. Pattern: ^-?(?:0|[1-9][0-9]*)(?:.[0-9]{1,9})?s$.
versionstring (int64)OptionalOutput-only revision assigned by the store and incremented on updates. Ignored on writes. Pattern: ^-?\d+$.
createdBystringOptionalOutput-only identity of the caller that registered the server. Ignored on writes.
createdAtstring (date-time)OptionalOutput-only creation time assigned by the store. Ignored on writes.
updatedAtstring (date-time)OptionalOutput-only last-update time assigned by the store. Ignored on writes.
authQueryParamstringOptionalRequired for QUERY auth; the vendor's parameter name (e.g. "tavilyApiKey"). Empty is allowed — populated only for QUERY auth.

Values of authType​

How credentials are attached to requests to a tenant-configured MCP server.

ValueNo.FormMeaning
CUSTOM_MCP_SERVER_AUTH_TYPE_NONE1CanonicalSend requests without attaching a secret for authentication.
CUSTOM_MCP_SERVER_AUTH_TYPE_BEARER2CanonicalSend the secret as a Bearer token in the Authorization header.
CUSTOM_MCP_SERVER_AUTH_TYPE_HEADER3CanonicalSend the secret in the configured custom header.
CUSTOM_MCP_SERVER_AUTH_TYPE_QUERY4CanonicalAdd the secret as the configured URL query parameter when connecting; the stored endpoint remains the base URL.

Request validation​

These rules apply when this value is supplied in a request. Request validation does not guarantee that response fields are present or satisfy the same rules.

Applies toRuleRequirement
serverIdPattern^[a-z0-9][a-z0-9-]{0,62}$
displayNameMaximum length200
descriptionMaximum length1024
endpointMaximum length2048
endpointPattern^https://
endpointUritrue
authTypeDefined enum valuetrue
authHeaderNamePattern^([A-Za-z0-9!#$%&'*+.^_|~-]128)?$`
requestTimeoutAt most120s
authQueryParamPattern^([A-Za-z0-9._~-]{1,128})?$

Where used​

ReferenceRelationship
Register a custom MCP serverPOST /api/v1/mcp-servers/create
Update a custom MCP serverPOST /api/v1/mcp-servers/update
Get a custom MCP serverPOST /api/v1/mcp-servers/get
List custom MCP serversPOST /api/v1/mcp-servers/list

Download the public reference contract.

Document: DOC-API-MODEL-custom-mcp-server.