curl --request POST \
--url 'https://api.flashcat.cloud/safari/mcp/server/create?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"server_name": "prometheus",
"description": "Query Prometheus metrics and alerts.",
"transport": "streamable-http",
"url": "https://mcp.example.com/prometheus",
"status": "enabled"
}
'import requests
url = "https://api.flashcat.cloud/safari/mcp/server/create?app_key="
payload = {
"server_name": "prometheus",
"description": "Query Prometheus metrics and alerts.",
"transport": "streamable-http",
"url": "https://mcp.example.com/prometheus",
"status": "enabled"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
server_name: 'prometheus',
description: 'Query Prometheus metrics and alerts.',
transport: 'streamable-http',
url: 'https://mcp.example.com/prometheus',
status: 'enabled'
})
};
fetch('https://api.flashcat.cloud/safari/mcp/server/create?app_key=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.flashcat.cloud/safari/mcp/server/create?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'server_name' => 'prometheus',
'description' => 'Query Prometheus metrics and alerts.',
'transport' => 'streamable-http',
'url' => 'https://mcp.example.com/prometheus',
'status' => 'enabled'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.flashcat.cloud/safari/mcp/server/create?app_key="
payload := strings.NewReader("{\n \"server_name\": \"prometheus\",\n \"description\": \"Query Prometheus metrics and alerts.\",\n \"transport\": \"streamable-http\",\n \"url\": \"https://mcp.example.com/prometheus\",\n \"status\": \"enabled\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.flashcat.cloud/safari/mcp/server/create?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"server_name\": \"prometheus\",\n \"description\": \"Query Prometheus metrics and alerts.\",\n \"transport\": \"streamable-http\",\n \"url\": \"https://mcp.example.com/prometheus\",\n \"status\": \"enabled\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/mcp/server/create?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"server_name\": \"prometheus\",\n \"description\": \"Query Prometheus metrics and alerts.\",\n \"transport\": \"streamable-http\",\n \"url\": \"https://mcp.example.com/prometheus\",\n \"status\": \"enabled\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"server_id": "mcp_4kP9wQ2nLceRtY7uVb3xA1",
"account_id": 10023,
"team_id": 0,
"can_edit": true,
"environments": [],
"server_name": "prometheus",
"description": "Query Prometheus metrics and alerts.",
"transport": "streamable-http",
"url": "https://mcp.example.com/prometheus",
"status": "enabled",
"connect_timeout": 10,
"call_timeout": 60,
"auth_mode": "shared",
"created_by": 80011,
"created_at": 1716960000000,
"updated_at": 1717046400000
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter skill_id is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "AccessDenied",
"message": "Access Denied."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}创建 MCP 服务器
在账户下注册新的 MCP 服务器(连接器)。
curl --request POST \
--url 'https://api.flashcat.cloud/safari/mcp/server/create?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"server_name": "prometheus",
"description": "Query Prometheus metrics and alerts.",
"transport": "streamable-http",
"url": "https://mcp.example.com/prometheus",
"status": "enabled"
}
'import requests
url = "https://api.flashcat.cloud/safari/mcp/server/create?app_key="
payload = {
"server_name": "prometheus",
"description": "Query Prometheus metrics and alerts.",
"transport": "streamable-http",
"url": "https://mcp.example.com/prometheus",
"status": "enabled"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
server_name: 'prometheus',
description: 'Query Prometheus metrics and alerts.',
transport: 'streamable-http',
url: 'https://mcp.example.com/prometheus',
status: 'enabled'
})
};
fetch('https://api.flashcat.cloud/safari/mcp/server/create?app_key=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.flashcat.cloud/safari/mcp/server/create?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'server_name' => 'prometheus',
'description' => 'Query Prometheus metrics and alerts.',
'transport' => 'streamable-http',
'url' => 'https://mcp.example.com/prometheus',
'status' => 'enabled'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.flashcat.cloud/safari/mcp/server/create?app_key="
payload := strings.NewReader("{\n \"server_name\": \"prometheus\",\n \"description\": \"Query Prometheus metrics and alerts.\",\n \"transport\": \"streamable-http\",\n \"url\": \"https://mcp.example.com/prometheus\",\n \"status\": \"enabled\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.flashcat.cloud/safari/mcp/server/create?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"server_name\": \"prometheus\",\n \"description\": \"Query Prometheus metrics and alerts.\",\n \"transport\": \"streamable-http\",\n \"url\": \"https://mcp.example.com/prometheus\",\n \"status\": \"enabled\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/mcp/server/create?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"server_name\": \"prometheus\",\n \"description\": \"Query Prometheus metrics and alerts.\",\n \"transport\": \"streamable-http\",\n \"url\": \"https://mcp.example.com/prometheus\",\n \"status\": \"enabled\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"server_id": "mcp_4kP9wQ2nLceRtY7uVb3xA1",
"account_id": 10023,
"team_id": 0,
"can_edit": true,
"environments": [],
"server_name": "prometheus",
"description": "Query Prometheus metrics and alerts.",
"transport": "streamable-http",
"url": "https://mcp.example.com/prometheus",
"status": "enabled",
"connect_timeout": 10,
"call_timeout": 60,
"auth_mode": "shared",
"created_by": 80011,
"created_at": 1716960000000,
"updated_at": 1717046400000
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter skill_id is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "AccessDenied",
"message": "Access Denied."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}限制说明
| 项目 | 说明 |
|---|---|
| 速率限制 | 每个 app_key 1,000 次/分钟;50 次/秒 |
| 权限要求 | MCP 管理(ai-sre) |
使用说明
command/args/env用于stdio;url/headers用于sse/streamable-http。- 服务器名称必须以字母开头,且只能包含字母、数字、
-或_,在其作用域(账户范围或单个团队)内不区分大小写唯一;不满足则返回 InvalidParameter。 environments限定服务器可运行的环境:cloud和/或 BYOC Runner 的环境 ID 列表;省略或为空表示所有环境。per_user_secret认证模式要求secret_schema为合法 JSON 且包含非空的header_name。- 每次调用都会记录到账户审计日志。
授权
App key issued from the Flashduty console. Required on every public API call. Keep it secret — it grants the same access as the owning account.
请求体
新建 MCP 服务器的配置。
MCP 服务器名称:必须以字母开头,仅含字母、数字、-、_(@ 为保留字符);在其作用域(账户范围或单个团队)内唯一,大小写不敏感。
1 - 255服务器描述。
1 - 1024传输协议:stdio 通过 command/args/env 启动本地进程,sse / streamable-http 通过 url/headers 连接远程服务。
stdio, sse, streamable-http 可执行命令(stdio 传输)。
命令参数(stdio 传输)。
环境变量(stdio 传输)。
Show child attributes
Show child attributes
服务器 URL(sse / streamable-http 传输)。
HTTP 头(sse / streamable-http)。
Show child attributes
Show child attributes
连接超时,单位秒。0 表示默认(10 秒)。
工具调用超时,单位秒。0 表示默认(60 秒)。
认证模式:shared(默认)、per_user_secret 或 per_user_oauth。
JSON 密钥 schema;auth_mode=per_user_secret 时必填。
JSON OAuth 元数据;为 per_user_oauth 预留。
初始状态:enabled(默认)创建即启用,disabled 创建后保持停用。
enabled, disabled 团队范围:0 表示账户级;>0 表示团队。
该服务器可运行的执行环境:cloud 和/或 BYOC Runner 的环境 ID 列表。省略或为空表示所有环境。
允许该服务器的 OAuth 令牌交换使用明文 HTTP,仅用于测试,默认 false。
连接该服务器时跳过 TLS 证书校验,仅用于测试,默认 false。
从连接器模板创建时的市场模板名称。
响应
成功
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.
此页面对您有帮助吗?