curl --request GET \
--url https://app.base44.com/api/apps/platform/{app_id}/mcp/config \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/platform/{app_id}/mcp/config"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/platform/{app_id}/mcp/config', 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://app.base44.com/api/apps/platform/{app_id}/mcp/config",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/platform/{app_id}/mcp/config"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/platform/{app_id}/mcp/config")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/platform/{app_id}/mcp/config")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"config": {
"auth": "oauth",
"tools": {
"entity_overrides": {
"Invoice": {
"operations": []
}
},
"excluded_agents": [
"support_bot"
],
"functions": []
}
},
"tools": [],
"pending_removal": []
}Get MCP config
Returns the app’s editable MCP config and the tools it resolves to.
Every entity and agent the app has is served unless the config holds it back, so tools lists each tool the next publish could serve, with exposed telling you whether the config serves it. pending_removal lists tools the live server still has that the config no longer produces. A publish removes them.
This is limited to 240 requests a minute for each app. Some workspaces have a different limit.
curl --request GET \
--url https://app.base44.com/api/apps/platform/{app_id}/mcp/config \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/platform/{app_id}/mcp/config"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/platform/{app_id}/mcp/config', 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://app.base44.com/api/apps/platform/{app_id}/mcp/config",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/platform/{app_id}/mcp/config"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/platform/{app_id}/mcp/config")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/platform/{app_id}/mcp/config")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"config": {
"auth": "oauth",
"tools": {
"entity_overrides": {
"Invoice": {
"operations": []
}
},
"excluded_agents": [
"support_bot"
],
"functions": []
}
},
"tools": [],
"pending_removal": []
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
ID of the app.
Response
The app's MCP config and its tools.
The app's editable MCP config and the tools it resolves to.
The editable config, or null when the app has no MCP server. It has auth, login_path, consent_path, and the tools object that Update MCP config replaces.
{
"auth": "oauth",
"tools": {
"entity_overrides": { "Invoice": { "operations": [] } },
"excluded_agents": ["support_bot"],
"functions": []
}
}
Every tool the config can serve, and whether it does.
Show child attributes
Show child attributes
Tools the live server still serves that the config no longer produces. The next publish removes them.
Show child attributes
Show child attributes
Was this page helpful?