Agent Studio Update Agent Metadata
Immutable Catalog Entry
This descriptor comes from the active versioned Portal catalog.
- Contract tier:
agent_ready - Risk:
write - Catalog version:
2026-07-12.2 - Descriptor hash:
5bd23b72615e01b0b8b83b56a61c92f4a34aab86982481abc72fb65b17f66a06
Update GHL AI Agent Studio agent metadata such as name, description, and status. GHL category: AI Agents / AI Agent Studio. This writes to or executes GHL AI Agent Studio configuration. Do not modify, publish, or execute production agents during validation unless the user explicitly provides disposable fixtures.
Request Body
{
"jsonrpc": "2.0",
"id": "ghl-agent-studio-update-agent-metadata-example",
"method": "tools/call",
"params": {
"name": "ghl.agent_studio_update_agent_metadata",
"arguments": {
"agentId": "agentId_123",
"body": {},
"query": {},
"tenantId": "tenantId_123",
"locationId": "locationId_123",
"strictTenant": false,
"includeFullConfig": false
}
}
}
Arguments Schema
{
"type": "object",
"required": [
"agentId",
"body"
],
"properties": {
"body": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Optional updated agent name."
},
"status": {
"enum": [
"active",
"inactive",
"archived"
],
"type": "string",
"description": "Optional updated agent status."
},
"description": {
"type": "string",
"description": "Optional updated agent description."
}
},
"description": "Request body for updating Agent Studio metadata.",
"additionalProperties": true
},
"query": {
"type": "object",
"description": "Optional GHL-supported query parameters for this official Agent Studio endpoint, such as limit, offset, isPublished, or documented filters. locationId is injected automatically for list/get endpoints that require it.",
"additionalProperties": true
},
"agentId": {
"type": "string",
"description": "agentId path parameter required by /agent-studio/agent/:agentId."
},
"tenantId": {
"type": "string",
"description": "Tenant ID from list_tenants."
},
"locationId": {
"type": "string",
"description": "Optional GHL location ID for safety validation only. If provided, it must match the authenticated runtime location; it is not forwarded for this endpoint unless GHL documents locationId support."
},
"strictTenant": {
"type": "boolean",
"default": true,
"description": "Require tenantId to match locationId routing (default: true)."
},
"includeFullConfig": {
"type": "boolean",
"description": "Defaults to false. Set true only when the user explicitly needs full Agent Studio prompts, version graph data, instructions, nodes, or execution configuration."
}
},
"additionalProperties": false
}
Output Schema
{
"type": "object",
"required": [
"ok",
"data",
"error",
"meta"
],
"properties": {
"ok": {
"type": "boolean",
"description": "Whether the GHL MCP operation completed successfully."
},
"data": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "array",
"items": {}
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Tool-specific GHL or local navigation result when ok is true."
},
"meta": {
"type": "object",
"description": "Safe execution, routing, and timing metadata.",
"additionalProperties": true
},
"error": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Safe error details when ok is false; credential values are never returned."
}
},
"description": "Normalized GHL MCP response envelope.",
"additionalProperties": false
}
Code Examples
- cURL
- Node.js
- Python
curl -X POST 'https://portal.madpanda3d.com/api/mcp' \
-H 'Authorization: Bearer mad_live_***' \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "ghl-agent-studio-update-agent-metadata-example",
"method": "tools/call",
"params": {
"name": "ghl.agent_studio_update_agent_metadata",
"arguments": {
"agentId": "agentId_123",
"body": {},
"query": {},
"tenantId": "tenantId_123",
"locationId": "locationId_123",
"strictTenant": false,
"includeFullConfig": false
}
}
}'
const response = await fetch('https://portal.madpanda3d.com/api/mcp', {
method: 'POST',
headers: {
Authorization: 'Bearer mad_live_***',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": "ghl-agent-studio-update-agent-metadata-example",
"method": "tools/call",
"params": {
"name": "ghl.agent_studio_update_agent_metadata",
"arguments": {
"agentId": "agentId_123",
"body": {},
"query": {},
"tenantId": "tenantId_123",
"locationId": "locationId_123",
"strictTenant": false,
"includeFullConfig": false
}
}
}),
});
const data = await response.json();
console.log(data);
import requests
url = 'https://portal.madpanda3d.com/api/mcp'
headers = {
'Authorization': 'Bearer mad_live_***',
'Content-Type': 'application/json',
}
payload = {
"jsonrpc": "2.0",
"id": "ghl-agent-studio-update-agent-metadata-example",
"method": "tools/call",
"params": {
"name": "ghl.agent_studio_update_agent_metadata",
"arguments": {
"agentId": "agentId_123",
"body": {},
"query": {},
"tenantId": "tenantId_123",
"locationId": "locationId_123",
"strictTenant": false,
"includeFullConfig": false
}
}
}
response = requests.post(url, headers=headers, json=payload, timeout=60)
print(response.json())
Example Responses
- 200 Success
- 502 Upstream Error
{
"ok": true,
"message": "Tool ghl.agent_studio_update_agent_metadata executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}
{
"ok": false,
"classification": "upstream_http_error",
"message": "Upstream MCP returned a non-success status."
}