Guest Machines
API referenceConnectors

Update an MCP server

PATCH/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
AuthorizationBearer <token>

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

server_id*Server Id
Formatuuid

Header Parameters

X-Org-Id?|

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"}