---
title: "Create Server"
method: POST
path: "/api/py/org-mcp-servers"
tags: ["org-mcp-servers"]
---

# Create Server

`POST /api/py/org-mcp-servers`

## Request

- Base URL: `https://api.getauctor.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getauctor.com/api/py/org-mcp-servers`
- Auth: none declared

## Request body

- OrgMcpServerCreate: An OAuth client (the default), ``member_oauth``, ``no_auth``, or a ``shared_headers`` shared credential. A ``member_oauth`` server has no client of its own: each member signs in with a client registered for them. A ``no_auth`` server needs no sign-in. The OAuth fields and ``shared_headers`` never mix. The auth type cannot change after create.
  - `server_url` string, required
  - `name` string, required
  - `description` string, nullable
  - `icon_bucket_path` string, nullable
  - `auth_type` 'oauth_client' | 'member_oauth' | 'shared_headers' | 'no_auth'
  - `oauth_client_id` string, nullable
  - `oauth_client_secret` string, nullable
  - `token_endpoint_auth_method` 'none' | 'client_secret_post' | 'client_secret_basic', nullable
  - `shared_headers` OrgMcpHeader[], nullable
    - `name` string, required
    - `value` string, password, required

## Response `201`

Successful Response

- OrgMcpServerAdmin
  - `id` string, uuid, required
  - `name` string, required
  - `description` string, nullable, required
  - `server_url` string, required
  - `namespace` string, required
  - `auth_type` 'oauth_client' | 'member_oauth' | 'shared_headers' | 'no_auth', required
  - `oauth_client_id` string, nullable, required
  - `has_client_secret` boolean, required
  - `token_endpoint_auth_method` 'none' | 'client_secret_post' | 'client_secret_basic', required
  - `authorization_server_hosts` string[], required
  - `authorization_issuer` string, nullable, required
  - `shared_header_names` string[], required
  - `icon_bucket_path` string, nullable
  - `icon_url` string, nullable
  - `server_icon_url` string, nullable
  - `approved` boolean, required
  - `created_by_user_id` string, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `500`: Internal Server Error

## Changes

- **2026-11-02** `be39c59c13f6`: 4 info
  - added the new optional request property `icon_bucket_path`
  - added the optional property `icon_bucket_path` to the response with the `201` status
  - added the optional property `icon_url` to the response with the `201` status
  - added the optional property `server_icon_url` to the response with the `201` status
- **2026-10-29** `b4b983695c8d`: 2 warning, 2 info
  - added the new `member_oauth` enum value to the `auth_type` response property for the response status `201`
  - added the new `no_auth` enum value to the `auth_type` response property for the response status `201`
  - added the new `member_oauth` enum value to the request property `auth_type`
  - added the new `no_auth` enum value to the request property `auth_type`
- **2026-10-23** `c5d087c22ef0`: 4 breaking, 2 warning, 8 info
  - removed the enum value `client_secret_basic` of the request property `token_endpoint_auth_method`
  - removed the enum value `client_secret_post` of the request property `token_endpoint_auth_method`
  - removed the enum value `none` of the request property `token_endpoint_auth_method`
  - the `auth_type` response property const value `oauth_client` was removed for the status `201`
  - …10 more
- **2026-10-09** `7a88193131f1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getauctor/apis/getauctor-api/changes/api/py/org-mcp-servers/post.md)

---

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