curl --request POST \
--url 'https://api.flashcat.cloud/safari/mcp/server/list?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"p": 1,
"limit": 20,
"include_account": true
}
'import requests
url = "https://api.flashcat.cloud/safari/mcp/server/list?app_key="
payload = {
"p": 1,
"limit": 20,
"include_account": True
}
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({p: 1, limit: 20, include_account: true})
};
fetch('https://api.flashcat.cloud/safari/mcp/server/list?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/list?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([
'p' => 1,
'limit' => 20,
'include_account' => true
]),
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/list?app_key="
payload := strings.NewReader("{\n \"p\": 1,\n \"limit\": 20,\n \"include_account\": true\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/list?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"p\": 1,\n \"limit\": 20,\n \"include_account\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/mcp/server/list?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 \"p\": 1,\n \"limit\": 20,\n \"include_account\": true\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"total": 1,
"servers": [
{
"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
}
]
}
}{
"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": "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."
}
}List MCP servers
List configured MCP servers visible to the caller across account and team scopes, with pagination.
curl --request POST \
--url 'https://api.flashcat.cloud/safari/mcp/server/list?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"p": 1,
"limit": 20,
"include_account": true
}
'import requests
url = "https://api.flashcat.cloud/safari/mcp/server/list?app_key="
payload = {
"p": 1,
"limit": 20,
"include_account": True
}
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({p: 1, limit: 20, include_account: true})
};
fetch('https://api.flashcat.cloud/safari/mcp/server/list?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/list?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([
'p' => 1,
'limit' => 20,
'include_account' => true
]),
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/list?app_key="
payload := strings.NewReader("{\n \"p\": 1,\n \"limit\": 20,\n \"include_account\": true\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/list?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"p\": 1,\n \"limit\": 20,\n \"include_account\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/mcp/server/list?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 \"p\": 1,\n \"limit\": 20,\n \"include_account\": true\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"total": 1,
"servers": [
{
"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
}
]
}
}{
"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": "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."
}
}Restrictions
| Aspect | Value |
|---|---|
| Rate limits | 1,000 requests/minute; 50 requests/second per account |
| Permissions | None — any valid app_key can call this operation |
Authorizations
App key issued from the Flashduty console under Account → APP Keys. Required on every public API call.
Body
Filters for listing MCP servers.
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.
Unique ID for this request. Mirrored in the Flashcat-Request-Id header. Include it when reporting issues.
"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
Error payload inside the response envelope. Present only on non-2xx responses.
Show child attributes
Show child attributes
Paginated MCP server list.
Show child attributes
Show child attributes
Was this page helpful?