241 lines
7.6 KiB
YAML
241 lines
7.6 KiB
YAML
execute-tool:
|
|
post:
|
|
operationId: executeMCPTool
|
|
summary: Execute MCP tool
|
|
description: Executes an MCP tool and returns the result.
|
|
tags:
|
|
- MCP
|
|
parameters:
|
|
- name: format
|
|
in: query
|
|
required: false
|
|
description: |
|
|
Format of the tool execution request/response.
|
|
schema:
|
|
type: string
|
|
enum: [chat, responses]
|
|
default: chat
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/mcp.yaml#/ExecuteToolRequest'
|
|
examples:
|
|
chat:
|
|
summary: Chat format example
|
|
value:
|
|
id: "call_123"
|
|
type: "function"
|
|
function:
|
|
name: "get_weather"
|
|
arguments: '{"location": "San Francisco"}'
|
|
responses:
|
|
summary: Responses format example
|
|
value:
|
|
call_id: "call_123"
|
|
name: "get_weather"
|
|
arguments: '{"location": "San Francisco"}'
|
|
responses:
|
|
'200':
|
|
description: Tool executed successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/mcp.yaml#/ExecuteToolResponse'
|
|
examples:
|
|
chat:
|
|
summary: Chat format response
|
|
value:
|
|
name: "get_weather"
|
|
role: "tool"
|
|
tool_call_id: "call_123"
|
|
content: "The weather in San Francisco is 72°F and sunny."
|
|
responses:
|
|
summary: Responses format response
|
|
value:
|
|
id: "msg_123"
|
|
type: "function_call_output"
|
|
status: "completed"
|
|
role: "assistant"
|
|
call_id: "call_123"
|
|
name: "get_weather"
|
|
arguments: '{"location": "San Francisco"}'
|
|
content: "The weather in San Francisco is 72°F and sunny."
|
|
'400':
|
|
$ref: '../../openapi.yaml#/components/responses/BadRequest'
|
|
'500':
|
|
$ref: '../../openapi.yaml#/components/responses/InternalError'
|
|
security:
|
|
- BearerAuth: []
|
|
- BasicAuth: []
|
|
- VirtualKeyAuth: []
|
|
- ApiKeyAuth: []
|
|
|
|
clients:
|
|
get:
|
|
operationId: getMCPClients
|
|
summary: List MCP clients
|
|
description: Returns a list of all configured MCP clients with their tools and connection state.
|
|
tags:
|
|
- MCP
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '../../schemas/management/mcp.yaml#/MCPClient'
|
|
'500':
|
|
$ref: '../../openapi.yaml#/components/responses/InternalError'
|
|
|
|
client:
|
|
post:
|
|
operationId: addMCPClient
|
|
summary: Add MCP client
|
|
description: |
|
|
Adds a new MCP client with the specified configuration.
|
|
Note: tool_pricing is not available when creating a new client as tools are fetched after client creation.
|
|
tags:
|
|
- MCP
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/mcp.yaml#/MCPClientCreateRequest'
|
|
responses:
|
|
'200':
|
|
description: MCP client added successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/common.yaml#/SuccessResponse'
|
|
'400':
|
|
$ref: '../../openapi.yaml#/components/responses/BadRequest'
|
|
'500':
|
|
$ref: '../../openapi.yaml#/components/responses/InternalError'
|
|
|
|
client-by-id:
|
|
put:
|
|
operationId: editMCPClient
|
|
summary: Edit MCP client
|
|
description: |
|
|
Updates an existing MCP client's configuration.
|
|
Unlike client creation, tool_pricing can be included to set per-tool execution costs since tools are already fetched.
|
|
Optionally provide vk_configs to manage which virtual keys have access to this MCP server and with which tools. When provided, this fully replaces all existing VK assignments in a single atomic transaction.
|
|
tags:
|
|
- MCP
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: MCP client ID
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/mcp.yaml#/MCPClientUpdateRequest'
|
|
responses:
|
|
'200':
|
|
description: MCP client updated successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/common.yaml#/SuccessResponse'
|
|
'400':
|
|
$ref: '../../openapi.yaml#/components/responses/BadRequest'
|
|
'500':
|
|
$ref: '../../openapi.yaml#/components/responses/InternalError'
|
|
|
|
delete:
|
|
operationId: removeMCPClient
|
|
summary: Remove MCP client
|
|
description: Removes an MCP client from the configuration.
|
|
tags:
|
|
- MCP
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: MCP client ID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: MCP client removed successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/common.yaml#/SuccessResponse'
|
|
'400':
|
|
$ref: '../../openapi.yaml#/components/responses/BadRequest'
|
|
'500':
|
|
$ref: '../../openapi.yaml#/components/responses/InternalError'
|
|
|
|
client-reconnect:
|
|
post:
|
|
operationId: reconnectMCPClient
|
|
summary: Reconnect MCP client
|
|
description: Reconnects an MCP client that is in an error or disconnected state.
|
|
tags:
|
|
- MCP
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: MCP client ID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: MCP client reconnected successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/common.yaml#/SuccessResponse'
|
|
'400':
|
|
$ref: '../../openapi.yaml#/components/responses/BadRequest'
|
|
'500':
|
|
$ref: '../../openapi.yaml#/components/responses/InternalError'
|
|
|
|
client-complete-oauth:
|
|
post:
|
|
operationId: completeMCPClientOAuth
|
|
summary: Complete MCP client OAuth flow
|
|
description: |
|
|
Completes the OAuth flow for an MCP client after the user has authorized the request.
|
|
This endpoint should be called after the OAuth provider redirects back to the callback endpoint
|
|
and the OAuth token has been stored. It retrieves the pending MCP client configuration and
|
|
establishes the connection with the OAuth-provided credentials.
|
|
tags:
|
|
- MCP
|
|
- OAuth
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: MCP client ID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: MCP client connected successfully with OAuth
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../../schemas/management/common.yaml#/SuccessResponse'
|
|
'400':
|
|
description: OAuth not authorized yet or MCP client not found in pending OAuth clients
|
|
$ref: '../../openapi.yaml#/components/responses/BadRequest'
|
|
'404':
|
|
description: MCP client not found in pending OAuth clients or OAuth config not found
|
|
$ref: '../../openapi.yaml#/components/responses/NotFound'
|
|
'500':
|
|
$ref: '../../openapi.yaml#/components/responses/InternalError'
|