Update an MCP server
Changes an MCP server’s settings. A field left out stays as it is. auth is replaced whole, tools: [] exposes every tool, and static_headers: {} clears the headers. The instance must be ready; otherwise the request answers 409.
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const AgentGatewayMcpServer = await client.agentGateways.mcpServers.update('instance_id', 'server_id', {
name: 'name',
});
console.log(AgentGatewayMcpServer.data);import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
agent_gateway_mcp_server = client.agent_gateways.mcp_servers.update(
instance_id="instance_id",
server_id="server_id",
name="name",
)
print(agent_gateway_mcp_server.data)
package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
mCPServer, err := client.AgentGateways.MCPServers.Update(
context.TODO(),
"instance_id",
"server_id",
telnyx.AgentGatewayMCPServerUpdateParams{
Name: telnyx.String("name"),
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", mCPServer.Data)
}
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.agentGateways.mcpServers.McpServerUpdateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
McpServerUpdateParams params = McpServerUpdateParams.builder()
.name("name")
.build();
var response = client.agentGateways().mcpServers().update("instance_id", "server_id", params);
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
agent_gateway_mcp_server = telnyx.agent_gateways.mcp_servers.update("instance_id", "server_id", name: "name")
puts(agent_gateway_mcp_server)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$agent_gateway_mcp_server = $client->agentGateways->mcpServers->update(
'instance_id',
'server_id',
name: 'name',
);
var_dump($agent_gateway_mcp_server);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx agent-gateways:mcp-servers update \
--api-key 'My API Key' \
--instance-id 32ce035d-3165-4031-b1a7-a7c0c259590a \
--server-id 88d5a97b-4080-4855-8bac-a39811b1dc24 \
--name namecurl --request PATCH \
--url https://api.telnyx.com/v2/agent_gateways/{instance_id}/mcp_servers/{server_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tools": [
"get_order",
"create_ticket"
]
}
'{
"data": {
"id": "88d5a97b-4080-4855-8bac-a39811b1dc24",
"name": "orders",
"url": "http://10.40.3.7:9000/mcp",
"transport": "http",
"auth": {
"type": "api_key"
},
"tools": [
"get_order",
"create_ticket"
],
"static_headers": {
"X-Env": "prod"
},
"forwarded_headers": [
"X-Request-Id"
],
"open_to_every_key": false,
"created_at": "2026-10-28T16:50:43.184000Z",
"updated_at": "2026-10-28T16:50:43.184000Z"
}
}{
"errors": [
{
"code": "10012",
"title": "Duplicate resource",
"detail": "Resource is a duplicate.",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10012"
},
"source": {
"pointer": "/name"
}
}
]
}{
"errors": [
{
"code": "10009",
"title": "Authentication failed",
"detail": "The required authentication headers were either invalid or not included in the request.",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10009"
}
}
]
}{
"errors": [
{
"code": "10005",
"title": "Resource not found",
"detail": "The requested resource or URL could not be found.",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10005"
}
}
]
}{
"errors": [
{
"code": "99901",
"title": "Instance not ready",
"detail": "The instance is not ready; its engine is not running."
}
]
}{
"errors": [
{
"code": "10027",
"title": "Unprocessable Entity",
"detail": "The value is invalid.",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10027"
},
"source": {
"pointer": "/transport"
}
}
]
}{
"errors": [
{
"code": "99903",
"title": "Engine unavailable",
"detail": "The instance's engine did not answer; try again shortly."
}
]
}Authorizations
Telnyx API key
Path Parameters
The Agent Gateway's id.
The MCP server's id.
Body
The fields to change. A field left out stays as it is.
A name for the server, unique on the instance across MCP servers and APIs, regardless of case. Letters, digits, _, and .. The gateway prefixes the server's tools with it and a hyphen.
^[A-Za-z0-9_.]{1,100}$The server's MCP endpoint, http or https.
http for Streamable HTTP, or sse for Server-Sent Events.
http, sse How the gateway authenticates to the server. Replaced whole on an update; {"type": "none"} removes the credential.
- No authentication
- API key
- OAuth client credentials
- Token passthrough
- AWS Signature Version 4
Show child attributes
Show child attributes
The tools the server exposes to every key, by name. [] exposes every tool.
Headers sent on every request.
Show child attributes
Show child attributes
Headers copied from the agent's request, by name.
32true lets every key on the instance use the server, granted or not.
Response
The updated MCP server
Show child attributes
Show child attributes
Was this page helpful?
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const AgentGatewayMcpServer = await client.agentGateways.mcpServers.update('instance_id', 'server_id', {
name: 'name',
});
console.log(AgentGatewayMcpServer.data);import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
agent_gateway_mcp_server = client.agent_gateways.mcp_servers.update(
instance_id="instance_id",
server_id="server_id",
name="name",
)
print(agent_gateway_mcp_server.data)
package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
mCPServer, err := client.AgentGateways.MCPServers.Update(
context.TODO(),
"instance_id",
"server_id",
telnyx.AgentGatewayMCPServerUpdateParams{
Name: telnyx.String("name"),
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", mCPServer.Data)
}
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.agentGateways.mcpServers.McpServerUpdateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
McpServerUpdateParams params = McpServerUpdateParams.builder()
.name("name")
.build();
var response = client.agentGateways().mcpServers().update("instance_id", "server_id", params);
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
agent_gateway_mcp_server = telnyx.agent_gateways.mcp_servers.update("instance_id", "server_id", name: "name")
puts(agent_gateway_mcp_server)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$agent_gateway_mcp_server = $client->agentGateways->mcpServers->update(
'instance_id',
'server_id',
name: 'name',
);
var_dump($agent_gateway_mcp_server);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx agent-gateways:mcp-servers update \
--api-key 'My API Key' \
--instance-id 32ce035d-3165-4031-b1a7-a7c0c259590a \
--server-id 88d5a97b-4080-4855-8bac-a39811b1dc24 \
--name namecurl --request PATCH \
--url https://api.telnyx.com/v2/agent_gateways/{instance_id}/mcp_servers/{server_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tools": [
"get_order",
"create_ticket"
]
}
'{
"data": {
"id": "88d5a97b-4080-4855-8bac-a39811b1dc24",
"name": "orders",
"url": "http://10.40.3.7:9000/mcp",
"transport": "http",
"auth": {
"type": "api_key"
},
"tools": [
"get_order",
"create_ticket"
],
"static_headers": {
"X-Env": "prod"
},
"forwarded_headers": [
"X-Request-Id"
],
"open_to_every_key": false,
"created_at": "2026-10-28T16:50:43.184000Z",
"updated_at": "2026-10-28T16:50:43.184000Z"
}
}{
"errors": [
{
"code": "10012",
"title": "Duplicate resource",
"detail": "Resource is a duplicate.",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10012"
},
"source": {
"pointer": "/name"
}
}
]
}{
"errors": [
{
"code": "10009",
"title": "Authentication failed",
"detail": "The required authentication headers were either invalid or not included in the request.",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10009"
}
}
]
}{
"errors": [
{
"code": "10005",
"title": "Resource not found",
"detail": "The requested resource or URL could not be found.",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10005"
}
}
]
}{
"errors": [
{
"code": "99901",
"title": "Instance not ready",
"detail": "The instance is not ready; its engine is not running."
}
]
}{
"errors": [
{
"code": "10027",
"title": "Unprocessable Entity",
"detail": "The value is invalid.",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10027"
},
"source": {
"pointer": "/transport"
}
}
]
}{
"errors": [
{
"code": "99903",
"title": "Engine unavailable",
"detail": "The instance's engine did not answer; try again shortly."
}
]
}