Skip to content

Depot mcp console

Registers the MCP console routes.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

GETpublic facehosteditmspremoteIdempotent

Source: [object Object]

getApproval returns one of your pending AI tool approvals: the exact action the tool asked to take.

NameInTypeRequiredDescription
idpathstringYes
StatusBodyDescription
200application/json, McpApprovalViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
404application/problem+json, ProblemDetailsThis approval has expired or was already answered.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
approvedAtstring (date-time) or null
clientNamestring
conversationIdstring
createdAtrequiredstring (date-time)
deniedAtstring (date-time) or null
expiresAtrequiredstring (date-time)
idrequiredstring
statusrequiredstring, one of approved, consumed, denied, expired, pending
summaryrequiredany

Arbitrary JSON.

toolrequiredstring
viarequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/console/me/ai-approvals/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/console/me/ai-approvals/{id}/approve

Section titled “POST /api/v1/console/me/ai-approvals/{id}/approve”

POSTpublic facehosteditmspremote

Source: [object Object]

approveApproval approves one of your AI tool approvals; the tool’s retry with the same arguments then runs, once.

NameInTypeRequiredDescription
idpathstringYes
StatusBodyDescription
200application/json, McpApprovalViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
404application/problem+json, ProblemDetailsThis approval has expired or was already answered.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
approvedAtstring (date-time) or null
clientNamestring
conversationIdstring
createdAtrequiredstring (date-time)
deniedAtstring (date-time) or null
expiresAtrequiredstring (date-time)
idrequiredstring
statusrequiredstring, one of approved, consumed, denied, expired, pending
summaryrequiredany

Arbitrary JSON.

toolrequiredstring
viarequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/console/me/ai-approvals/<id>/approve' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/console/me/ai-approvals/{id}/deny

Section titled “POST /api/v1/console/me/ai-approvals/{id}/deny”

POSTpublic facehosteditmspremote

Source: [object Object]

denyApproval refuses one of your AI tool approvals.

NameInTypeRequiredDescription
idpathstringYes
StatusBodyDescription
200application/json, McpApprovalViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
404application/problem+json, ProblemDetailsThis approval has expired or was already answered.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
approvedAtstring (date-time) or null
clientNamestring
conversationIdstring
createdAtrequiredstring (date-time)
deniedAtstring (date-time) or null
expiresAtrequiredstring (date-time)
idrequiredstring
statusrequiredstring, one of approved, consumed, denied, expired, pending
summaryrequiredany

Arbitrary JSON.

toolrequiredstring
viarequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/console/me/ai-approvals/<id>/deny' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETpublic facehosteditmspremoteIdempotent

Source: [object Object]

listOwnConnections returns the signed-in user’s connected AI apps and the server URL to connect another.

StatusBodyDescription
200application/json, AiConnectionsViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
grantsrequiredarray of AiGrantView
grants[].clientNamerequiredstring
grants[].createdAtrequiredstring (date-time)
grants[].firstPartyrequiredboolean
grants[].idrequiredstring
grants[].lastIprequiredstring
grants[].lastUsedAtstring (date-time) or null
grants[].softwareIdrequiredstring
mcpEnabledrequiredboolean
mcpUrlrequiredstring
policyOffrequiredboolean
unguardedrequiredboolean
unguardedAvailablerequiredboolean
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/console/me/ai-connections' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETE /api/v1/console/me/ai-connections/{grantId}

Section titled “DELETE /api/v1/console/me/ai-connections/{grantId}”

DELETEpublic facehosteditmspremoteIdempotent

Source: [object Object]

revokeOwnConnection signs one of your AI apps out: the grant and every access token under it stop working at once.

NameInTypeRequiredDescription
grantIdpathstringYes
StatusBodyDescription
204NoneSuccess, with no body.
404application/problem+json, ProblemDetailsNo such AI connection.
500application/problem+json, ProblemDetailsCould not revoke the AI connection.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/console/me/ai-connections/<grantId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/console/users/{userId}/mcp-unguarded

Section titled “PUT /api/v1/console/users/{userId}/mcp-unguarded”

PUTai:mcp_controlpublic facehosteditmspremoteIdempotent

Source: [object Object]

putUnguarded turns one user’s unguarded mode on or off.

Unguarded AI tools skip the per-call confirmation of high-impact actions; permissions and the never-list still apply. Turning it on needs the server flag, the warning acknowledged and a fresh step-up. Turning it off needs none of them, so a stored switch can always be cleared (ruling R11).

NameInTypeRequiredDescription
userIdpathstringYes

Required, sent as application/json.

FieldTypeDescription
acknowledgerequiredboolean
enabledboolean or null
StatusBodyDescription
200application/json, McpUnguardedUserViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ai:mcp_control.
404application/problem+json, ProblemDetailsNo such user.
500application/problem+json, ProblemDetailsCould not read the user.

200 response body

FieldTypeDescription
displayNamerequiredstring
emailrequiredstring
statusrequiredstring
unguardedrequiredboolean
unguardedAtstring (date-time) or null
unguardedBystring or null
userIdrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X PUT 'https://depot.example.com/api/v1/console/users/<userId>/mcp-unguarded' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"acknowledge": false,
"enabled": false
}'

GETai:managepublic facehosteditmspremoteIdempotent

Source: [object Object]

listActivity returns AI tool calls, newest first, a page at a time.

Pass the previous page’s nextCursor as cursor for the next one.

NameInTypeRequiredDescription
cursorquerystringNo
limitquerystringNo
outcomequerystringNo
toolquerystringNo
userIdquerystringNo
viaquerystringNo
StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ai:manage.
500application/problem+json, ProblemDetailsThe request failed.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/organization/ai/mcp/activity?cursor=<cursor>&limit=<limit>&outcome=<outcome>&tool=<tool>&userId=<userId>&via=<via>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETai:managepublic facehosteditmspremoteIdempotent

Source: [object Object]

listGrants returns every user’s connected AI apps on this console.

StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ai:manage.
500application/problem+json, ProblemDetailsThe request failed.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/organization/ai/mcp/grants' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETE /api/v1/organization/ai/mcp/grants/{grantId}

Section titled “DELETE /api/v1/organization/ai/mcp/grants/{grantId}”

DELETEai:mcp_controlpublic facehosteditmspremoteIdempotent

Source: [object Object]

revokeGrant signs any user’s AI app out.

NameInTypeRequiredDescription
grantIdpathstringYes
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ai:mcp_control.
404application/problem+json, ProblemDetailsNo such AI connection.
500application/problem+json, ProblemDetailsCould not revoke the AI connection.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/organization/ai/mcp/grants/<grantId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETai:mcp_controlpublic facehosteditmspremoteIdempotent

Source: [object Object]

listUnguarded returns every console user with their unguarded switch, and whether this server allows unguarded mode at all.

StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ai:mcp_control.
500application/problem+json, ProblemDetailsThe request failed.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/organization/ai/mcp/unguarded' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.