Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BOTUYO_API_KEYYesYour BotUyo API key (pk_live_...). Get it from admin.botuyo.com → your tenant → Settings → API Keys

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_agentsA

Lists all agents for the authenticated tenant. Returns id, name, description, status (draft/published), and how many tools each agent has enabled.

get_agentA

Get the full configuration of a specific agent, including identity (tone, language, objective, customInstructions), stages, and enabled tools.

get_agent_statusA

Get the channel connection status of an agent (WhatsApp, Instagram, Telegram, Web). Shows which channels are connected and provides a direct link to the admin panel to connect missing channels.

create_agentA

Create a new agent for the tenant. The agent is created in "draft" status. Use update_agent to configure identity, stages, and tools afterward. Requires role: owner, admin, or developer.

update_agentA

Update an agent's configuration with partial merge. Only the fields you provide are changed — everything else is preserved.

Field behavior:

  • Omitted field → not touched (keeps existing value)

  • Field with value → sets/overwrites that field

  • Field set to null → deletes that field from the agent config

Nested objects (identity, widgetConfig, voice, widgetConfig.cssVariables) are deep-merged: update_agent({ widgetConfig: { logoUrl: "https://..." } }) → only logoUrl changes, all other widgetConfig fields preserved

Arrays (channels, enabledTools) are replaced entirely: update_agent({ channels: ["web", "whatsapp"] }) → replaces the full channels array

Use this to configure WHO the agent is and HOW it looks. For defining WHAT the agent does in each conversation flow, use upsert_stage. For changing which tools the agent can call, use update_enabled_tools.

Requires role: owner, admin, or developer.

upsert_stageA

Create or update a named stage in an agent's conversation flow.

A stage defines what the agent does at a particular step in the conversation. Stages are nodes in a graph connected by edges (connections).

Examples of stage names: "welcomeStage", "salesStage", "hostStage", "checkoutStage"

The stage config is merged with existing stages — existing stages you don't specify are kept unchanged. Connections and channelFlows replace existing values when provided.

Requires role: owner, admin, or developer.

list_available_toolsA

List all tools available for this tenant. Returns both "core" tools (available to all tenants) and "tenant" tools (custom tools specific to your tenant). Use tool IDs when enabling tools with update_enabled_tools or configuring stage tools.

update_enabled_toolsA

Set which tools are enabled for an agent. This REPLACES the current list of enabled tools.

Use list_available_tools to see the valid tool IDs for your tenant first.

Requires role: owner, admin, or developer.

publish_agentA

Publish or unpublish an agent. Published agents are live and handle incoming conversations. Unpublished agents are in "draft" status.

Requires role: owner, admin, or developer.

switch_tenantA

Switch the active tenant for this MCP session. If no tenantId is provided, lists all available tenants (including sub-tenants within organizations). If a tenantId is provided, switches to that tenant or sub-tenant. The switch takes effect immediately for subsequent tool calls.

export_agent_jsonA

Export the full agent configuration as clean, editable JSON.

Returns the complete agentConfig including identity, stages, connections (graph edges), channelFlows, enabledTools, channels, widgetConfig, voice, and all other settings. Also includes apiKey (read-only) for external integrations.

The exported JSON is automatically saved to a local file for easy editing:

  • Default: saves to ./agents/{agent-name}.json in the current working directory

  • Custom: use savePath to specify a different directory

Use import_agent_json to re-import after editing.

import_agent_jsonA

Import/replace an agent's FULL configuration from a local JSON file or from a JSON object.

This is a FULL REPLACE operation — the entire agentConfig is overwritten with the provided config. For partial updates (changing just one field), use update_agent instead.

Null handling:

  • Fields set to null are stripped before saving (field is removed from the stored config)

  • Omitted fields are NOT preserved — this is a full replace, not a merge

  • Internal fields (model, temperature, summaryThreshold, voice.liveModel) are preserved automatically

Preferred workflow:

  1. Use export_agent_json to save the agent config to a local file (auto-saved to ./agents/)

  2. Edit the local file as needed

  3. Use this tool with filePath pointing to that file to apply the changes

You can provide the config either via:

  • filePath: path to a local JSON file (preferred — reads the file from disk)

  • agentConfig: inline JSON object (fallback if no file)

If both are provided, filePath takes priority.

Requires role: owner, admin, or developer.

list_templatesA

List all available agent templates for quick agent creation.

Returns templates organized by industry vertical (beauty, clinic, restaurant, fitness, etc.). Each template includes pre-configured stages, connections (graph flow), tools, and channel overrides.

Use create_from_template to create an agent from any template.

create_from_templateA

Create a new agent from a pre-built template.

Templates contain pre-configured stages, connections (graph flow), tools, and channel overrides for specific industries. Business data (name, phone, email, services) is automatically hydrated into the template placeholders.

Use list_templates first to see available templates.

Requires role: owner, admin, or developer.

example_agentA

Returns a complete, documented example of an agent configuration JSON with ALL possible fields explained.

Use this as a reference when creating or editing agents. Every field includes a description of what it does, its type, valid values, and conditions. This is a read-only reference tool — it doesn't create or modify anything.

Useful for:

  • New users learning the agent config structure

  • Checking available fields before using import_agent_json

  • Understanding how stages, connections, channelFlows, and tools work together

  • Learning the widget theming system (cssVariables, darkCssVariables, animations, effects)

  • Understanding per-tool configuration (toolConfigs) with single and multi-instance patterns

delete_agentA

Delete an agent (soft delete). This action is IRREVERSIBLE — the agent will be deactivated and hidden.

⚠️ IMPORTANT: This tool requires explicit confirmation. You MUST set confirm to true AND provide the exact agent name in confirmName to proceed.

Requires role: owner, admin, or developer.

list_knowledge_documentsC

Lists all knowledge base documents for the current tenant. Returns document id, name, type, status, chunks count, and file size.

delete_knowledge_documentB

Deletes a knowledge base document and all its chunks from the current tenant.

associate_knowledge_to_agentA

Associates (links) knowledge base document IDs to an agent. Replaces the current list of knowledgeDocumentIds on the agent. Use list_knowledge_documents to get valid document IDs.

ingest_knowledge_urlA

Add a URL to the knowledge base. BotUyo will scrape the page content and index it for intelligent search. The document can then be associated to agents using associate_knowledge_to_agent.

configure_agent_toolA

Crea o actualiza la config de un tool para un agente. Si la tool no está en enabledTools, la agrega automáticamente.

Dos modos:

  • Single-instance: configura una tool existente (ej. send_email) con params fijos.

  • Multi-instance: crea una instancia virtual con nombre propio basada en una tool real (requiere baseTool). Ej: webhook_pedidos basada en call_webhook.

list_tool_configsC

Lista las configs de tools de un agente agrupadas: configuradas (single y multi-instance), habilitadas sin config, y resumen de multi-instance.

remove_tool_configB

Elimina la configuración de un tool. Si es multi-instance, también la remueve de enabledTools automáticamente.

get_tool_configC

Ver el config completo de un tool específico de un agente (formato JSON).

get_tools_catalogC

Lista el catálogo completo de tools disponibles con su metadata: configurable, allowMultiInstance, configSchema, requiredIntegrations.

list_avatarsB

Lista los avatares 3D gratuitos disponibles en el catálogo. Muestra nombre, formato y categoría.

select_avatarC

Selecciona un avatar 3D para un agente. Puede ser del catálogo (por ID) o una URL custom (.glb/.vrm).

upload_agent_mediaA

Upload a local image file to the CDN and assign it to an agent as avatar or logo.

Reads the file from the local filesystem, uploads it via the backend media API (Cloudinary), and updates the agent's widgetConfig with the resulting URL.

Supported formats: webp, png, jpg, jpeg, svg. Max size: 2MB.

list_agent_versionsA

List version history for an agent. Returns all saved snapshots with version number, change source, and timestamp. Useful to see what changed and when before deciding to restore.

restore_agent_versionA

Restore an agent to a previous version (rollback). The current config is automatically saved as a new snapshot before restoring, so you can always undo a restore. Use list_agent_versions first to see available versions.

Requires role: owner, admin, or developer.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MarcoAR1/botuyo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server