updateServer.md
Update MCP Server
Update an existing MCP server's configuration.
You can update the name, slug, OAuth credentials, and metadata. If updating OAuth credentials, provide the actual values (not obfuscated).
OpenAPI
PUT /api/servers/{server_id}
openapi: 3.1.0
info:
title: Barndoor Platform API
version: 1.0.0
description: >
REST API for the Barndoor Platform - manage MCP servers, OAuth connections,
and proxy MCP requests.
## Authentication
All endpoints require a JWT Bearer token obtained through Barndoor's
OAuth 2.0 authorization-code flow with PKCE. The SDK handles the OAuth
flow automatically using interactive login.
## MCP Integration
The `/mcp/{mcp_server_name}` endpoints provide streaming proxy access to
third-party MCP servers
(Salesforce, Notion, Slack, etc.) with automatic authentication and session
management.
contact:
name: Barndoor Support
url: https://barndoor.ai
servers:
- url: https://{organization_id}.platform.barndoor.ai
description: Trial (Production)
variables:
organization_id:
description: Your organization identifier
default: your-org
- url: https://{organization_id}.platform.barndoor.ai
description: Enterprise (Production)
variables:
organization_id:
description: Your organization identifier
default: your-org
- url: https://{organization_id}.platform.barndooruat.com
description: Enterprise (Production)
variables:
organization_id:
description: Your organization identifier
default: your-org
- url: https://{organization_id}.platform.barndoordev.com
description: Enterprise (Production)
variables:
organization_id:
description: Your organization identifier
default: your-org
security:
- BearerAuth: []
tags:
- name: Servers
description: Manage MCP server instances
- name: Connections
description: Manage OAuth connections to MCP servers
- name: Policies
description: Manage access control policies for agents and servers
- name: Agents
description: Manage AI agent registrations
- name: MCP Proxy
description: Proxy requests to MCP servers
- name: Identity
description: Retrieve identity information for the authenticated user
paths:
/api/servers/{server_id}:
put:
tags:
- Servers
summary: Update MCP server
description: >
Update an existing MCP server's configuration.
You can update the name, slug, OAuth credentials, and metadata.
If updating OAuth credentials, provide the actual values (not
obfuscated).
operationId: updateServer
parameters:
- name: server_id
in: path
required: true
description: Server UUID
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServerUpdateRequest'
responses:
'200':
description: Server updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ServerDetail'
'401':
description: Unauthorized - invalid or missing JWT token
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Server not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Conflict - slug already in use
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ServerUpdateRequest:
type: object
properties:
name:
type: string
description: Human-readable name for the server
example: My Salesforce Instance
slug:
type: string
description: URL-friendly identifier
pattern: ^[a-z0-9-]+$
client_id:
type: string
description: OAuth client ID (provide actual value, not obfuscated)
client_secret:
type: string
description: OAuth client secret (provide actual value, not obfuscated)
meta:
type: object
description: Additional metadata for the server
additionalProperties: true
ServerDetail:
allOf:
- $ref: '#/components/schemas/ServerSummary'
- type: object
properties:
url:
type: string
format: uri
nullable: true
description: MCP base URL from the server directory
example: https://api.salesforce.com/mcp
Error:
type: object
required:
- error
- message
properties:
error:
type: string
description: Error type identifier
example: ServerNotFound
message:
type: string
description: Human-readable error message
example: Server with ID '123' not found
details:
type: object
description: Additional error details
additionalProperties: true
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ServerSummary:
type: object
required:
- id
- name
- slug
- connection_status
properties:
id:
type: string
format: uuid
description: Unique identifier for the server
example: 123e4567-e89b-12d3-a456-426614174000
name:
type: string
description: Human-readable name of the server
example: Salesforce Production
slug:
type: string
description: URL-friendly identifier used in API paths
pattern: ^[a-z0-9-]+$
example: salesforce
provider:
type: string
nullable: true
description: Third-party provider name
example: salesforce
connection_status:
type: string
enum:
- available
- pending
- connected
- error
description: |
Current connection status:
- `available`: Server is available but not connected
- `pending`: Connection is in progress or credentials missing
- `connected`: Server is connected and ready to use
- `error`: Connection failed or encountered an error
example: connected
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: >
JWT token obtained through Barndoor's OAuth 2.0 authorization-code
flow with PKCE.
The token should be included in the Authorization header:
`Authorization: Bearer <your-jwt-token>`
Use the Barndoor SDK's `loginInteractive()` function to obtain tokens
automatically.