Skip to content

Depot portalmcp

Registers the portal’s OAuth server and /portal/mcp on the portal mux.

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

GET /.well-known/oauth-authorization-server/portal

Section titled “GET /.well-known/oauth-authorization-server/portal”

GETNo permission neededportal facemspIdempotent

Source: [object Object]

As metadata

StatusBodyDescription
200application/json, objectSuccess.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/.well-known/oauth-authorization-server/portal' \
-H 'Accept: application/json'

OPTIONS /.well-known/oauth-authorization-server/portal

Section titled “OPTIONS /.well-known/oauth-authorization-server/portal”

OPTIONSNo permission neededportal facemspIdempotent

Source: [object Object]

Oauth preflight

StatusBodyDescription
204NoneSuccess, with no body.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X OPTIONS 'https://depot.example.com/.well-known/oauth-authorization-server/portal'

GET /.well-known/oauth-protected-resource/portal/mcp

Section titled “GET /.well-known/oauth-protected-resource/portal/mcp”

GETNo permission neededportal facemspIdempotent

Source: [object Object]

Resource metadata

StatusBodyDescription
200application/json, objectSuccess.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/.well-known/oauth-protected-resource/portal/mcp' \
-H 'Accept: application/json'

OPTIONS /.well-known/oauth-protected-resource/portal/mcp

Section titled “OPTIONS /.well-known/oauth-protected-resource/portal/mcp”

OPTIONSNo permission neededportal facemspIdempotent

Source: [object Object]

Oauth preflight

StatusBodyDescription
204NoneSuccess, with no body.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X OPTIONS 'https://depot.example.com/.well-known/oauth-protected-resource/portal/mcp'

GET /portal/.well-known/oauth-authorization-server

Section titled “GET /portal/.well-known/oauth-authorization-server”

GETNo permission neededportal facemspIdempotent

Source: [object Object]

As metadata

StatusBodyDescription
200application/json, objectSuccess.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/portal/.well-known/oauth-authorization-server' \
-H 'Accept: application/json'

OPTIONS /portal/.well-known/oauth-authorization-server

Section titled “OPTIONS /portal/.well-known/oauth-authorization-server”

OPTIONSNo permission neededportal facemspIdempotent

Source: [object Object]

Oauth preflight

StatusBodyDescription
204NoneSuccess, with no body.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X OPTIONS 'https://depot.example.com/portal/.well-known/oauth-authorization-server'

GETNo permission neededportal facemspIdempotentNot fully resolved

What this page does not know
  • handler
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

GET /portal/mcp

StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/portal/mcp'

POSTNo permission neededportal facemspNot fully resolved

What this page does not know
  • handler
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

POST /portal/mcp

StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/portal/mcp'

DELETENo permission neededportal facemspIdempotentNot fully resolved

What this page does not know
  • handler
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

DELETE /portal/mcp

StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/portal/mcp'

OPTIONSNo permission neededportal facemspIdempotent

Source: [object Object]

mcpPreflight answers a browser client’s CORS preflight, which carries no credentials (the bearer branch lets it through).

Any origin, never credentials; 404 off the canonical Host like the route itself.

StatusBodyDescription
204NoneSuccess, with no body.
404application/problem+json, ProblemDetailsNo resource matches.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X OPTIONS 'https://depot.example.com/portal/mcp' \
-H 'Accept: application/json'

GETNo permission neededportal facemspIdempotentNot fully resolved

What this page does not know
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

authorize validates the client and its redirect URI before anything can be a redirect, as the console’s does (oauth.go), then hands the request to the consent page.

NameInTypeRequiredDescription
client_idquerystringNo
code_challengequerystringNo
code_challenge_methodquerystringNo
redirect_uriquerystringNo
resourcequerystringNo
response_typequerystringNo
scopequerystringNo
statequerystringNo
StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/portal/oauth/authorize?client_id=<client_id>&code_challenge=<code_challenge>&code_challenge_method=<code_challenge_method>&redirect_uri=<redirect_uri>&resource=<resource>&response_type=<response_type>'

POSTNo permission neededportal facemspNot fully resolved

What this page does not know
  • response-status

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

Register

Required, sent as application/json.

FieldTypeDescription
client_namerequiredstring
grant_typesrequiredarray of string
redirect_urisrequiredarray of string
response_typesrequiredarray of string
software_idrequiredstring
software_versionrequiredstring
token_endpoint_auth_methodrequiredstring
StatusBodyDescription
200application/json, objectSuccess.
201application/json, objectCreated.
400application/problem+json, ProblemDetailsThe request body is not acceptable.
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/portal/oauth/register' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data '{
"client_name": "string",
"grant_types": [
"string"
],
"redirect_uris": [
"string"
],
"response_types": [
"string"
],
"software_id": "string",
"software_version": "string",
"token_endpoint_auth_method": "string"
}'

OPTIONSNo permission neededportal facemspIdempotent

Source: [object Object]

Oauth preflight

StatusBodyDescription
204NoneSuccess, with no body.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X OPTIONS 'https://depot.example.com/portal/oauth/register'

POSTNo permission neededportal facemspNot fully resolved

What this page does not know
  • response-status

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

Revoke

NameInTypeRequiredDescription
client_idquerystringNo
client_secretquerystringNo
tokenquerystringNo
StatusBodyDescription
200application/json, objectSuccess.
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/portal/oauth/revoke?client_id=<client_id>&client_secret=<client_secret>&token=<token>' \
-H 'Accept: application/json'

OPTIONSNo permission neededportal facemspIdempotent

Source: [object Object]

Oauth preflight

StatusBodyDescription
204NoneSuccess, with no body.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X OPTIONS 'https://depot.example.com/portal/oauth/revoke'

POSTNo permission neededportal facemspNot fully resolved

What this page does not know
  • response-status

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

Token

NameInTypeRequiredDescription
client_idquerystringNo
client_secretquerystringNo
codequerystringNo
code_verifierquerystringNo
grant_typequerystringNo
redirect_uriquerystringNo
refresh_tokenquerystringNo
StatusBodyDescription
200application/json, objectSuccess.
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/portal/oauth/token?client_id=<client_id>&client_secret=<client_secret>&code=<code>&code_verifier=<code_verifier>&grant_type=<grant_type>&redirect_uri=<redirect_uri>' \
-H 'Accept: application/json'

OPTIONSNo permission neededportal facemspIdempotent

Source: [object Object]

Oauth preflight

StatusBodyDescription
204NoneSuccess, with no body.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X OPTIONS 'https://depot.example.com/portal/oauth/token'

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.