Skip to main content
POST
/
safari
/
mcp
/
server
/
create
Create MCP server
curl --request POST \
  --url 'https://api.flashcat.cloud/safari/mcp/server/create?app_key=' \
  --header 'Content-Type: application/json' \
  --data '
{
  "server_name": "GitHub Tools",
  "description": "Read issues and pull requests from GitHub.",
  "transport": "stdio",
  "command": "npx",
  "args": [
    "-y",
    "@modelcontextprotocol/server-github"
  ],
  "env": {
    "GITHUB_TOKEN": "ghp_xxx"
  },
  "status": "enabled",
  "team_id": 0
}
'
{
  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
  "data": {
    "server_id": "mcp-2b5e8d14a7c9",
    "account_id": 10023,
    "team_id": 0,
    "can_edit": true,
    "server_name": "GitHub Tools",
    "description": "Read issues and pull requests from GitHub.",
    "transport": "stdio",
    "command": "npx",
    "args": [
      "-y",
      "@modelcontextprotocol/server-github"
    ],
    "env": {
      "GITHUB_TOKEN": "ghp_xxx"
    },
    "status": "enabled",
    "connect_timeout": 10,
    "call_timeout": 30,
    "tool_count": 12,
    "auth_mode": "shared",
    "created_by": 80011,
    "created_at": 1716960000000,
    "updated_at": 1717046400000
  }
}

Restrictions

AspectValue
Rate limits1,000 requests/minute; 50 requests/second per account
PermissionsNone — any valid app_key can call this operation

Usage

  • transport must be one of stdio, sse, or streamable-http; other values return InvalidParameter.
  • Duplicate server names return InvalidParameter.
  • Every call is recorded in the account’s audit log.

Authorizations

app_key
string
query
required

App key issued from the Flashduty console under Account → APP Keys. Required on every public API call.

Body

application/json

Configuration for a new MCP server.

server_name
string
required

Display name of the server.

Required string length: 1 - 255
description
string
required

What this MCP server provides.

Required string length: 1 - 1024
transport
enum<string>
required

Transport used to reach the server.

Available options:
stdio,
sse,
streamable-http
command
string

Executable to launch for stdio transport.

args
string[]

Command-line arguments for the stdio executable.

env
object

Environment variables for the stdio process.

url
string

Endpoint URL for sse or streamable-http transport.

headers
object

HTTP headers sent to the remote endpoint.

connect_timeout
integer

Connection timeout in seconds.

call_timeout
integer

Per-call timeout in seconds.

status
enum<string>

Initial lifecycle state of the server.

Available options:
enabled,
disabled
team_id
integer<int64>

Owning team for the new server; 0 for account scope.

auth_mode
string

Credential model; defaults to shared.

secret_schema
string

JSON schema of the per-user secret; required when auth_mode is per_user_secret.

oauth_metadata
string

OAuth metadata JSON; reserved for OAuth-based auth.

Response

Success

Standard response envelope used by every Flashduty public API. On success data contains the endpoint-specific payload and error is absent. On failure error is present and data is absent. request_id is always present and is also mirrored in the Flashcat-Request-Id response header.

request_id
string
required

Unique ID for this request. Mirrored in the Flashcat-Request-Id header. Include it when reporting issues.

Example:

"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"

error
object

Error payload inside the response envelope. Present only on non-2xx responses.

data
object

A configured MCP (Model Context Protocol) server the agent can call tools through.