Update the tool policy for an External MCP Connection
curl --request PUT \
--url https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"allDisabled": true,
"disabledTools": [
"<string>"
]
}
'import requests
url = "https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy"
payload = {
"allDisabled": True,
"disabledTools": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({allDisabled: true, disabledTools: ['<string>']})
};
fetch('https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy', 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.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'allDisabled' => true,
'disabledTools' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy"
payload := strings.NewReader("{\n \"allDisabled\": true,\n \"disabledTools\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"allDisabled\": true,\n \"disabledTools\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"allDisabled\": true,\n \"disabledTools\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"policy": {
"allDisabled": true,
"disabledTools": [
"<string>"
],
"updatedBy": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
}{
"error": "unauthorized"
}{
"error": "forbidden",
"reason": "<string>",
"message": "<string>"
}{
"error": "connection_not_found",
"message": "<string>"
}Capability Sources
Update the tool policy for an External MCP Connection
Replaces the connection’s tool policy with the full desired state: allDisabled plus the complete list of disabled tool names (duplicates are collapsed). The policy takes effect immediately for capability search, Code Mode, and tool execution and records the calling admin as its author.
PUT
/
v1
/
mcp-connections
/
{connectionId}
/
tool-policy
Update the tool policy for an External MCP Connection
curl --request PUT \
--url https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"allDisabled": true,
"disabledTools": [
"<string>"
]
}
'import requests
url = "https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy"
payload = {
"allDisabled": True,
"disabledTools": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({allDisabled: true, disabledTools: ['<string>']})
};
fetch('https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy', 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.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'allDisabled' => true,
'disabledTools' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy"
payload := strings.NewReader("{\n \"allDisabled\": true,\n \"disabledTools\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"allDisabled\": true,\n \"disabledTools\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/mcp-connections/{connectionId}/tool-policy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"allDisabled\": true,\n \"disabledTools\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"policy": {
"allDisabled": true,
"disabledTools": [
"<string>"
],
"updatedBy": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
}{
"error": "unauthorized"
}{
"error": "forbidden",
"reason": "<string>",
"message": "<string>"
}{
"error": "connection_not_found",
"message": "<string>"
}Authorizations
bearerAuthdenApiKey
Session token passed as Authorization: Bearer <session-token> for user-authenticated Den routes.
Path Parameters
Den TypeID with 'emc_' prefix and a 26-character base32 suffix.
Required string length:
30Body
application/json
Response
External MCP tool policy updated.
Show child attributes
Show child attributes
Was this page helpful?