Update an MCP server
/api/v1/mcp-servers/{server_id}Update selected connector fields. Omitted fields are unchanged. Changing the endpoint or credential clears cached tool discovery; run the connection probe again to refresh it. An authenticated connector's endpoint is origin-bound: changing its URL requires re-entering auth_token or explicitly setting auth_type to none. Connector edits are compare-and-swapped against the configuration read for validation; a concurrent edit answers 409, and the caller must retrieve and reconcile the latest configuration.
Required access
Credentials: delegated token, user session
Scope: mcp_servers:edit
A delegated token may update only a connector owned by its user. It cannot exercise the direct-session admin rescue path for a connector owned by somebody else.
Authorization
DelegatedToken A token issued to an external application acting for a specific user, prefixed gsmc_dt_. Carries that user's identity for attribution and ownership, is bound to the organization chosen when it was issued, and stays capped at member role however privileged the user is.
In: header
Path Parameters
uuidHeader Parameters
Selects the active organization for a direct user session that has more than one membership. Service-principal keys and delegated tokens are each bound to one organization and ignore it.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request payload for updating an MCP server (partial).
Visibility changes go through the publish/unpublish endpoints, not here.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/api/v1/mcp-servers/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Authorization: Bearer $GUEST_MACHINES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "description": "Read-only production incident catalog.", "is_active": true, "tool_filter": { "default_enabled": false, "allowed_tools": [ "search_incidents", "get_service" ], "blocked_tools": [] } }'{ "mcp_server": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "owner_user_id": "65139110-7c3c-4777-b692-80c218be3b9d", "visibility": "org_shared", "published_at": "2019-08-24T14:15:22Z", "name": "string", "slug": "string", "description": "string", "url": "string", "transport": "sse", "auth_type": "none", "auth_hint": "string", "tool_filter": { "default_enabled": true, "allowed_tools": [ "string" ], "blocked_tools": [ "string" ] }, "require_approval": "always", "is_active": true, "discovered_tools": [ { "name": "string", "description": "string" } ], "tools_synced_at": "2019-08-24T14:15:22Z", "blocked_by_egress": false, "blocked_reason": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}