Open MCP Portaldocs
ReferenceMCP servers

Change a server's settings (editors and above); the slug never changes

PATCH/v1/teams/{team}/mcp-servers/{serverId}

requirement: omit to keep, null to remove (capability overrides with mode scopes go back to inherit; so do they when the provider changes). A newly chosen provider must be enabled (422 provider_not_found); a turned-off one can be kept. 400 invalid_scope (details.scope). Under approval_required, a published server goes back to pending when its URL changes or its requirement widens what any capability receives (a provider where there was none, another provider, or a scope not in effect before), audited as mcp_server.publish_request with reason url_changed or requirement_changed. Removing or narrowing a requirement never needs review.

authMode and oauth (docs/phase7-upstream-oauth.md): omit to keep. Fields omitted inside oauth keep their stored values; clientSecret is replace-only. Errors as for create. Switching to oauth, choosing another authorization server, or adding a scope not asked for before sends a published server back to review under approval_required (mcp_server.publish_request, reason upstream_auth_changed). Leaving oauth, a URL change, another authorization server or another client ID erases the tokens of every connection to the server (needs_reconsent; leaving oauth deletes them, revoked where possible). Audited as mcp_server.auth_update (before/after, clientIdChanged, clientSecretChanged, connectionsReset; never a secret).

Path Parameters

team*string

Team slug or ID

serverId*string
Formatuuid

Header Parameters

If-Match*string

The resource's revision, as returned in ETag (for example "3"). Missing returns 428; stale returns 412.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/teams/string/mcp-servers/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "If-Match: string" \  -H "Content-Type: application/json" \  -d '{}'
{  "data": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",    "teamSlug": "string",    "teamName": "string",    "slug": "service-status",    "name": "Service status",    "description": "string",    "url": "https://status.example.com/mcp",    "transport": "streamable_http",    "authHeaderName": "string",    "hasAuth": true,    "authValueHint": "string",    "timeoutSeconds": 1,    "enabled": true,    "publishState": "private",    "effectivePublishPolicy": "approval_required",    "publishRequestedAt": "2019-08-24T14:15:22Z",    "publishRequestNote": "string",    "publishReviewedAt": "2019-08-24T14:15:22Z",    "publishReviewedByName": "string",    "publishReviewNote": "string",    "counts": {      "tools": 0,      "resources": 0,      "resourceTemplates": 0,      "prompts": 0    },    "pendingChanges": 0,    "health": {      "status": "healthy",      "checkedAt": "2019-08-24T14:15:22Z",      "statusSince": "2019-08-24T14:15:22Z",      "latencyMs": 0,      "errorClass": "unavailable",      "message": "string",      "signInRequired": true    },    "refreshedAt": "2019-08-24T14:15:22Z",    "lastRefreshError": "string",    "requirement": {      "providerId": "4834bcdc-4a64-444d-966b-1a6fe381da24",      "providerSlug": "string",      "providerName": "string",      "providerEnabled": true,      "scopes": [        "string"      ]    },    "capturePayloads": true,    "authMode": "none",    "oauth": {      "providerId": "4834bcdc-4a64-444d-966b-1a6fe381da24",      "providerSlug": "string",      "resource": "https://api.githubcopilot.com/mcp/",      "resourceMetadataUrl": "https://api.githubcopilot.com/.well-known/oauth-protected-resource/mcp/",      "authorizationServer": "https://github.com/login/oauth",      "issuer": "https://github.com/login/oauth",      "authorizationEndpoint": "https://github.com/login/oauth/authorize",      "tokenEndpoint": "https://github.com/login/oauth/access_token",      "revocationEndpoint": "string",      "scopes": [        "string"      ],      "scopesSupported": [        "string"      ],      "registration": "dcr",      "clientIdHint": "string",      "hasClientSecret": true,      "clientSecretExpiresAt": "2019-08-24T14:15:22Z",      "tokenAuthMethod": "client_secret_basic",      "sendResource": true,      "issParameterSupported": true,      "platformProvider": {        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",        "slug": "string",        "name": "string",        "preset": "github",        "logoUrl": "string",        "kind": "oauth2",        "server": {          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",          "slug": "string",          "name": "string",          "teamSlug": "string"        }      },      "setupConnection": {        "status": "active",        "personId": "f3e5ff26-28ff-4cd6-9b1b-e303a185a13a",        "personName": "string",        "authorizedAt": "2019-08-24T14:15:22Z"      },      "connectionCount": 0,      "discoveredAt": "2019-08-24T14:15:22Z",      "redirectUri": "https://mcp.example.com/connect/callback"    },    "sendIdentity": true,    "revision": 0,    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z"  }}