---
title: "Read a custom MCP setup request"
method: POST
path: "/v1/mcp-setup/begin"
tags: ["mcp-setup"]
---

# Read a custom MCP setup request

`POST /v1/mcp-setup/begin`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/mcp-setup/begin`
- Auth: HTTP bearer

Returns the server details stored when Patricia created this single-use setup link.

## Headers

- `X-Tenant-Id` string, nullable

## Request body

- McpSetupBeginBody: The one-time token read from the dashboard URL fragment.
  - `setup_token` string, password, required

## Response `200`

Successful Response

- McpSetupBeginResponse: The stored server details shown before the person submits the separate token.
  - `label` string, nullable, required
  - `server_url` string, required
  - `scope` 'team' | 'personal', required
  - `discovered_auth_mode` 'oauth' | 'open' | 'token_required' | 'unknown': The authentication mode found before an MCP setup intent advances.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden. Inspect response body `code` for the specific reason (for example: PERMISSION_DENIED, EMAIL_NOT_VERIFIED, TENANT_ACCESS_REQUIRED, ROLE_UNRESOLVED)
- `404`: Not found
- `409`: Conflict
- `422`: Validation error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
