Gatana logoGatana Docs
Routesv2Servers

/servers

Create a new MCP server. Requires slug and transportConfig. All other fields are optional with sensible defaults. Read-only fields are silently ignored

POST
/servers
AuthorizationBearer <token>

In: header

Request Body

application/json

slug*string

URL-friendly name of the server, unique within the tenant

Match^[a-z0-9][-a-z0-9]*$
Lengthlength <= 20
transportConfig?||||

Transport configuration used to connect to the server

transportConfigType?string

Transport type to create with a default configuration, used instead of transportConfig

Value in"httpstreaming" | "sse" | "stdio" | "hosted" | "openapi"
description?string

Human-readable description of the server

authorization?

Authorization configuration for the server

oauthMetadata?|

Discovered OAuth metadata, or null when not discovered

oauthClientConfiguration?|

OAuth client configuration, or null when not configured

isEnabled?boolean

Whether the server is enabled

timeoutProtocol?integer

Timeout in seconds for a single protocol request to the server

Range0 < value <= 9007199254740991
timeoutTotal?integer

Total timeout in seconds for a tool call, including progress notifications

Range0 < value <= 9007199254740991
resetTimeoutOnProgressNotification?boolean

Whether a progress notification resets the protocol timeout

isOutputCompressionEnabled?boolean

Whether large tool outputs are compressed before they are returned to the client

isOutputCompressionTransformEnabled?boolean

Whether the compression transform step is applied to tool outputs

outputCompressionThresholdBytes?integer

Minimum output size in bytes before compression is applied

Range1024 <= value <= 9007199254740991
firewallRules?array<>

Firewall rules evaluated against tool calls to the server

visibility?string

Who can see the server: only members or the whole organization

Value in"private" | "organization"
id?string

Read-only; accepted and ignored

tenantId?string

Read-only; accepted and ignored

lastToolRefreshAt?|

Read-only; accepted and ignored

createdAt?|

Read-only; accepted and ignored

updatedAt?|

Read-only; accepted and ignored

Response Body

application/json

curl -X POST "https://YOUR_ORG_ID.gatana.ai/api/v2/servers" \  -H "Content-Type: application/json" \  -d '{    "slug": "string"  }'
{
  "id": "string",
  "slug": "string",
  "tenantId": "string",
  "description": "string",
  "authorization": {
    "method": "none",
    "credentialsScope": "server",
    "apikeys": [
      "string"
    ],
    "toolRefreshCredentialPolicy": "server-scoped"
  },
  "transportConfig": {
    "type": "httpstreaming",
    "url": "string",
    "headers": [
      [
        "string",
        "string"
      ]
    ]
  },
  "oauthClientConfiguration": {},
  "oauthMetadata": {},
  "visibility": "private",
  "isEnabled": true,
  "lastToolRefreshAt": "string",
  "timeoutProtocol": 9007199254740991,
  "timeoutTotal": 9007199254740991,
  "resetTimeoutOnProgressNotification": true,
  "isOutputCompressionEnabled": true,
  "isOutputCompressionTransformEnabled": true,
  "outputCompressionThresholdBytes": 1024,
  "firewallRules": [
    {
      "condition": "string",
      "action": "deny"
    }
  ],
  "createdAt": "string",
  "updatedAt": "string"
}