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

# Complete a custom MCP setup request

`POST /v1/mcp-setup/complete`

## 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/complete`
- Auth: HTTP bearer

Consumes the single-use setup link, then validates and probes the stored server before registration. The response never includes the submitted server credential.

## Headers

- `X-Tenant-Id` string, nullable

## Request body

- McpSetupCompleteBody: The one-time setup token and the sign-in choice the person made in the browser. ``auth_mode`` is the console dialog's own vocabulary, minus the option this route cannot serve: signing in AT the server is a redirect ceremony and lives on ``/mcp-setup/oauth/start``. What is left is the pair a single request can settle, and stating which one was chosen is what makes the no-credential answer an ANSWER rather than an empty field. A blank token used to be that answer by accident. ``min_length=1`` admitted a single space, which ``_resolve_auth`` then stripped to nothing and recorded as a server needing no credential — so a mistyped paste and a deliberate choice produced the same connection, and neither the person nor the row could tell them apart. A whitespace-only token is now a 422 and the choice has its own field.
  - `setup_token` string, password, required
  - `auth_mode` 'none' | 'token'
  - `token` string, password, nullable
  - `header_name` string, nullable

## Response `200`

Successful Response

- McpSetupCompleteResponse: The connected account created by a completed setup.
  - `account_id` string, required

## 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/864787a3fcf0?raw)
