from engini import Engini
client = Engini() # reads ENGINI_API_KEY
client.toolsets.update("<toolset_id>", name="Support agent v2")import { Engini } from "@engini/sdk";
const client = new Engini(); // reads ENGINI_API_KEY
await client.toolsets.update("<toolset_id>", { name: "Support agent v2" });engini toolsets update <toolset_id> --name support-agent-v2const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
connections: [{connectionId: 123, applicationSlug: '<string>', toolSlugs: ['<string>']}],
workflows: ['<string>']
})
};
fetch('https://api.engini.io/v1/toolsets/{toolsetId}', 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.engini.io/v1/toolsets/{toolsetId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'connections' => [
[
'connectionId' => 123,
'applicationSlug' => '<string>',
'toolSlugs' => [
'<string>'
]
]
],
'workflows' => [
'<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.engini.io/v1/toolsets/{toolsetId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"connections\": [\n {\n \"connectionId\": 123,\n \"applicationSlug\": \"<string>\",\n \"toolSlugs\": [\n \"<string>\"\n ]\n }\n ],\n \"workflows\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.engini.io/v1/toolsets/{toolsetId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"connections\": [\n {\n \"connectionId\": 123,\n \"applicationSlug\": \"<string>\",\n \"toolSlugs\": [\n \"<string>\"\n ]\n }\n ],\n \"workflows\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engini.io/v1/toolsets/{toolsetId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"connections\": [\n {\n \"connectionId\": 123,\n \"applicationSlug\": \"<string>\",\n \"toolSlugs\": [\n \"<string>\"\n ]\n }\n ],\n \"workflows\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"toolsetId": "<string>",
"name": "<string>",
"connections": [
{
"connectionId": 123,
"applicationSlug": "<string>",
"toolSlugs": [
"<string>"
],
"applicationName": "<string>"
}
],
"workflows": [
"<string>"
],
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z",
"createdByAccountUserId": 123,
"updatedByAccountUserId": 123
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}Update toolset
Updates a toolset owned by the caller. Only the fields present in the request body are changed - name, connections, and workflows are each left unchanged when omitted (null); supplying connections or workflows replaces the entire set, it does not merge with the existing one.
from engini import Engini
client = Engini() # reads ENGINI_API_KEY
client.toolsets.update("<toolset_id>", name="Support agent v2")import { Engini } from "@engini/sdk";
const client = new Engini(); // reads ENGINI_API_KEY
await client.toolsets.update("<toolset_id>", { name: "Support agent v2" });engini toolsets update <toolset_id> --name support-agent-v2const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
connections: [{connectionId: 123, applicationSlug: '<string>', toolSlugs: ['<string>']}],
workflows: ['<string>']
})
};
fetch('https://api.engini.io/v1/toolsets/{toolsetId}', 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.engini.io/v1/toolsets/{toolsetId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'connections' => [
[
'connectionId' => 123,
'applicationSlug' => '<string>',
'toolSlugs' => [
'<string>'
]
]
],
'workflows' => [
'<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.engini.io/v1/toolsets/{toolsetId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"connections\": [\n {\n \"connectionId\": 123,\n \"applicationSlug\": \"<string>\",\n \"toolSlugs\": [\n \"<string>\"\n ]\n }\n ],\n \"workflows\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.engini.io/v1/toolsets/{toolsetId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"connections\": [\n {\n \"connectionId\": 123,\n \"applicationSlug\": \"<string>\",\n \"toolSlugs\": [\n \"<string>\"\n ]\n }\n ],\n \"workflows\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engini.io/v1/toolsets/{toolsetId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"connections\": [\n {\n \"connectionId\": 123,\n \"applicationSlug\": \"<string>\",\n \"toolSlugs\": [\n \"<string>\"\n ]\n }\n ],\n \"workflows\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"toolsetId": "<string>",
"name": "<string>",
"connections": [
{
"connectionId": 123,
"applicationSlug": "<string>",
"toolSlugs": [
"<string>"
],
"applicationName": "<string>"
}
],
"workflows": [
"<string>"
],
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z",
"createdByAccountUserId": 123,
"updatedByAccountUserId": 123
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}Authorizations
Enter your JWT token
Path Parameters
The identifier of the toolset to update.
Body
The fields to update on the toolset.
Request body for updating a toolset; null members are left unchanged.
Response
The updated toolset.
Public-shape DTO for a toolset (per-account-user, named scope bundling specific connections + an allowed tool set).
Unique identifier of the toolset (the MCPServer token GUID).
Display name of the toolset.
Connections included in this toolset and their permitted tools.
Show child attributes
Show child attributes
Workflow token GUIDs included in this toolset.
When the toolset was created.
When the toolset was last updated; null if never updated.
Account-user ID that created the toolset.
Account-user ID that last updated the toolset; null/0 until first updated.