Skip to main content
PATCH
Update an MCP server
Partial update. Omitted fields are left as they are. The same write-time refusals apply as on create: a new upstream_url is re-validated through the SSRF chokepoint, a literal credential in auth.headers is refused, and userinfo in the URL (https://user:pass@host/) is rejected — a credential written into a URL lands in plaintext in every log line and error message that echoes it. Setting allowed_tools to [] takes every tool off the server. That is a valid thing to want and it is not a soft state: the server will advertise nothing. Requires the update capability on ai_gateway. See the control-plane overview for authentication, the {data, meta} envelope, pagination and error types.

Authorizations

Authorization
string
header
required

OAuth 2.1 authentication — recommended for new integrations. Access tokens (kc_ prefix) are minted at the root-host token endpoint https://api.knoxcall.com/oauth/token and passed as Authorization: Bearer <access_token>. Public clients must use PKCE with the authorization_code grant; confidential clients may use client_credentials. The first-party SDKs and the knoxcall login CLI handle token minting, caching, refresh, and DPoP for you.

Path Parameters

id
string<uuid>
required

The MCP server UUID.

Body

application/json
name
string
description
string | null
upstream_url
string<uri>
transport
enum<string>

Only streamable_http is accepted (see the create request).

Available options:
streamable_http
allowed_tools
string[]
pii_inspection
boolean
auth
object

Upstream auth for an MCP server. A secret reference is the only supported path: every header value must contain a {{secret_id:<uuid>}} (or legacy {{secret:<name>}}) placeholder. A literal is refused with 422 plaintext_auth — it would sit in cleartext in the control plane.

status
enum<string>

Use DELETE to archive.

Available options:
active,
paused
pii_redact_policy_id
string<uuid> | null

A PII policy THIS tenant owns (AIGW-151). A policy id you do not own is refused 422 — the FK is id-only, so the ownership check is the control.

firewall_policy_id
string<uuid> | null
guardrail_webhook_url
string<uri> | null

https only; no embedded credentials; SSRF-checked at write time.

guardrail_webhook_secret_id
string<uuid> | null
guardrail_webhook_mode
enum<string>
Available options:
off,
request,
response,
both
guardrail_webhook_timeout_ms
integer
Required range: 100 <= x <= 10000
guardrail_webhook_failure_action
enum<string>
Available options:
fail_open,
fail_closed

Response

The updated MCP server.

data
object

An MCP server KnoxCall proxies and governs. connect_url and resource are deliberately different values — see their descriptions.

meta
object

Metadata included with every API response.