MCP Servers
Tags: ai, integrations, mcp
Endpoints
GET- ListPOST /oauth-discovery- Oauth DiscoveryDELETE /{server_id}- Delete Server IdGET /{server_id}- Get Server IdPOST /{server_id}/credentials- CredentialsPOST /{server_id}/disable- DisablePOST /{server_id}/enable- EnableGET /{server_id}/icon- IconGET /{server_id}/members- MembersGET /{server_id}/oauth/authorize- AuthorizeGET /{server_id}/prompts- PromptsGET /{server_id}/resources- ResourcesPOST /{server_id}/test- TestGET /{server_id}/tools- Tools
List
GET /api/v2/w/{workspace_uuid}/mcp-servers
Description:
Model Context Protocol server management
List all MCP servers the current member has access to.
Tools are NOT included in the list response. Use GET /app-connections/mcp-servers/{id}/tools to fetch tools for a specific server.
Authorization: Requires apps:read scope
Parameters:
sortBy(McpServerSortField)sortOrder(SortOrder)
Response: List of McpServerResponse
Oauth Discovery
POST /api/v2/w/{workspace_uuid}/mcp-servers/oauth-discovery
Description:
Model Context Protocol server management
Discover OAuth metadata for a given server URL.
Authorization: Requires apps:write scope
Parameters:
data- See OAuthDiscoveryRequest
Response: See OAuthDiscoveryResponse
Delete Server Id
DELETE /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}
Description:
Model Context Protocol server management
Delete an MCP server.
Authorization: Requires apps:admin scope
Parameters:
server_id(Integer)
Response: See dict
Get Server Id
GET /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}
Description:
Model Context Protocol server management
Get a specific MCP server by ID.
Authorization: Requires apps:read scope
Parameters:
server_id(Integer)
Response: See McpServerResponse
Credentials
POST /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/credentials
Description:
Model Context Protocol server management
Create a MemberCredential linking the current member to an MCP server.
Used for direct_auth servers where no OAuth tokens are needed — simply establishes the member-to-app_connection link so the server recognises the member as authorised.
Authorization: Requires apps:write scope
Parameters:
server_id(Integer)
Response: See dict
Disable
POST /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/disable
Description:
Model Context Protocol server management
Disable an MCP server.
Args: server_id: The MCP server ID clear_registration: If true, also clear OAuth registration info (client_id, secret, etc.)
Authorization: Requires apps:write scope
Parameters:
server_id(Integer)clear_registration(Boolean)
Response: See McpServerResponse
Enable
POST /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/enable
Description:
Model Context Protocol server management
Enable an MCP server and test its connection.
This endpoint handles the state transitions:
- READY + enabled -> return current state (already active)
- READY + disabled -> re-enable and return
- REGISTER -> try to connect or determine next setup step
- AUTHORIZE -> error (user needs to complete OAuth flow)
Authorization: Requires apps:write scope
Parameters:
server_id(Integer)
Response: See McpServerResponse
Icon
GET /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/icon
Description:
Model Context Protocol server management
Get the favicon for an MCP server.
Token-authenticated (HMAC) so the endpoint can be embedded in
<img src=...> for the web UI.
Authentication: Public endpoint (no authentication required)
Parameters:
server_id(Integer)token(String)
Members
GET /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/members
Description:
Model Context Protocol server management
List all members who have connected to this MCP server.
Authorization: Requires apps:read scope
Parameters:
server_id(Integer)
Response: List of McpServerMemberResponse
Authorize
GET /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/oauth/authorize
Description:
Model Context Protocol server management
Initiate OAuth authorization flow for an MCP server.
This endpoint dynamically generates the OAuth authorization URL and redirects the client directly into the OAuth flow. The server must be in AUTH state. OAuth discovery and dynamic client registration may run when needed before redirecting.
Authorization: Requires apps:write scope
Parameters:
server_id(Integer)
Prompts
GET /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/prompts
Description:
Model Context Protocol server management
Get the prompts for an MCP server.
Returns 403 with a structured detail when the current user needs to authenticate before prompts can be fetched. OAuth tokens may be refreshed when connecting to the remote server.
Authorization: Requires apps:read scope
Parameters:
server_id(Integer)
Resources
GET /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/resources
Description:
Model Context Protocol server management
Get the resources for an MCP server.
Returns 403 with a structured detail when the current user needs to authenticate before resources can be fetched. OAuth tokens may be refreshed when connecting to the remote server.
Authorization: Requires apps:read scope
Parameters:
server_id(Integer)
Test
POST /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/test
Description:
Model Context Protocol server management
Test an MCP server connection by performing an initialize handshake.
A successful probe marks the server as ready and enabled. Returns success or failure with latency info.
Authorization: Requires apps:read scope
Parameters:
server_id(Integer)
Tools
GET /api/v2/w/{workspace_uuid}/mcp-servers/{server_id}/tools
Description:
Model Context Protocol server management
Get the tools for an MCP server.
Returns 403 with a structured detail when the current user needs to
authenticate before tools can be fetched. The detail object
contains code, authType and either authorizeUrl or
appUuid so any client can prompt the user accordingly.
OAuth tokens may be refreshed and tool definitions are fetched from the remote MCP server when listing tools.
Authorization: Requires apps:read scope
Parameters:
server_id(Integer)