BotUyo MCP Server
The BotUyo MCP Server lets you create, configure, and manage AI conversational agents directly from AI coding tools (Cursor, VS Code, Claude Desktop, etc.) through 41 tools covering the full agent lifecycle.
Agent Management
List, create, update, delete, publish/unpublish agents
Check agent channel connection status (WhatsApp, Instagram, Telegram, Web)
Manage agent families — shared base + multiple variants, with bulk publish, export/import
Conversation Flow
Define and update stages (conversation nodes) with instructions, tools, and graph edges
Configure per-channel flow overrides
Tools & Capabilities
List available tools and browse the full tools catalog (metadata, schema, required integrations)
Enable/disable tools on agents
Configure single-instance or multi-instance tool instances with custom params and instructions
Knowledge Base
List, ingest URLs (scrape & index), associate documents to agents (RAG), and delete documents
Templates
List industry-specific templates (beauty, clinic, restaurant, fitness, etc.)
Create agents from templates with automatic business data hydration
Import / Export
Export a full agent config as editable JSON (auto-saved locally)
Import/overwrite an agent config from a local JSON file or inline object
Avatar & Media
List free 3D avatars, select one by catalog ID or custom URL (.glb/.vrm)
Upload local images to the CDN as an agent's avatar or logo
Versioning
List version snapshots and restore an agent to a previous version (with automatic snapshot before rollback)
Account & Session
Switch the active tenant, list tenants, and authenticate via OAuth browser login or email/password
Enables monitoring and management of BotUyo AI agents integrated with Instagram communication channels.
Allows for the configuration and activation of the SearchKnowledgeBase tool, enabling agents to query integrated knowledge sources.
Enables monitoring and management of BotUyo AI agents integrated with Telegram communication channels.
Enables monitoring and management of BotUyo AI agents integrated with WhatsApp communication channels.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BotUyo MCP ServerCreate a support agent named Alex and enable the knowledge base tool"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@botuyo/mcp — BotUyo MCP Server
Create and manage BotUyo AI agents directly from your AI coding tools — no cloning, no building.
Quickstart
The fastest way — one command configures your editor and logs you in:
npx @botuyo/mcp setupIt auto-detects your editor (Cursor, VS Code / Antigravity, Claude Desktop), writes the MCP config, and walks you through authentication.
Manual setup
1. Add the BotUyo server to your MCP client config:
{
"mcpServers": {
"botuyo": {
"command": "npx",
"args": ["-y", "@botuyo/mcp"]
}
}
}No API key goes in the config — authentication is handled by the
auth/logincommands below. Some clients (Cursor, VS Code) use theserverskey instead ofmcpServers.
Client | Config file |
Cursor |
|
VS Code / Antigravity |
|
Claude Desktop |
|
Windsurf |
|
2. Authenticate once — saves a token to ~/.botuyo/credentials.json:
npx @botuyo/mcp auth # browser OAuth (recommended)
# or
npx @botuyo/mcp login # email + password in the terminalThe running MCP server picks up your session automatically — no restart needed. Tokens last 7 days; re-run auth or login to refresh.
Start building agents
Once connected, ask your AI assistant things like:
"Create a new agent called 'Soporte' for my tenant" "Update Mar's objective to focus on sales" "Add a welcomeStage that greets guests in Spanish" "Enable the EscalateToHuman and SearchKnowledgeBase tools on Mar" "Publish the agent"
Related MCP server: Agent5ive MCP Server
CLI commands
npx @botuyo/mcp setup # Configure your editor + authenticate (recommended)
npx @botuyo/mcp auth # Login via browser (OAuth)
npx @botuyo/mcp login # Login via email + password
npx @botuyo/mcp tenants # List your tenants
npx @botuyo/mcp switch-tenant # Switch the active tenant
npx @botuyo/mcp whoami # Show the current session
npx @botuyo/mcp logout # Clear stored credentialsThe server resolves your JWT from BOTUYO_TOKEN, falling back to ~/.botuyo/credentials.json. The backend URL defaults to https://api.botuyo.com (override with BOTUYO_API_URL).
Available tools
The server exposes 45 tools. Read tools (list_*, get_*, export_*, audit_*) need viewer+; write/publish tools need developer+; channel connect/disconnect need admin+ (see Roles).
For AI assistants / IDE agents: every tool is self-describing — its
inputSchemalists the exact arguments (withrequired) and itsdescriptionstates role requirements and side effects. Discover the live catalog with the MCPtools/listrequest; you never need to hardcode tool names. A typical build flow iscreate_agent→update_agent(identity/voice) →upsert_stage(conversation graph) →update_enabled_tools/configure_agent_tool(capabilities) →publish_agent. Useexample_agentto see a fully documented reference config, andaudit_agent_familyto validate before publishing.
Agents
Tool | Description |
| List all agents in the tenant |
| Get an agent's full config (identity, stages, enabled tools) |
| Channel connection status + admin link to connect missing channels |
| Create a new agent |
| Update identity (tone, language, objective, custom instructions) |
| Soft-delete an agent (irreversible; requires explicit confirmation) |
| Publish or unpublish an agent (live vs draft) |
| Return a fully documented example agent config (read-only reference) |
Agent families
A family is one logical agent with a shared base config plus multiple variants (each variant stores only its overrides and is materialized into a real agent) — ideal for a single assistant offered in several levels or flavors.
Tool | Description |
| List agent families in the tenant |
| Get a family's shared base + all its variants |
| Create a family with a shared base and an initial set of variants |
| Replace the shared base (re-materializes every variant) |
| Add a new variant (materialized into a draft agent) |
| Update a variant's label / overrides / handoff targets / order |
| Remove a variant (cannot remove the entry variant) |
| Publish the family and all its member agents |
| Delete a family and all its agents (irreversible; requires confirmation) |
| Export a portable family JSON (base + variants) to a local file |
| Replace a family's base + variants from JSON (full replace), or create a new family from a folder/payload |
| Read-only config-quality audit of one family ( |
Conversation flow
Tool | Description |
| Create or update a named stage in the agent's conversation graph |
Tools & capabilities
Tool | Description |
| List tools available to your tenant (core + custom) |
| Enable/disable tools on an agent |
| Full tool catalog with metadata (configurable, multi-instance, schema, required integrations) |
| Create/update a tool's config on an agent (single or multi-instance) |
| List an agent's tool configs, grouped |
| View the full config of a specific tool on an agent |
| Remove a tool's configuration |
Knowledge base
Tool | Description |
| List knowledge base documents |
| Ingest a URL into the knowledge base |
| Link knowledge document IDs to an agent |
| Delete a knowledge document and all its chunks |
Templates
Tool | Description |
| List agent templates by industry |
| Create a new agent from a template |
Import / export
Tool | Description |
| Export an agent's full config as editable JSON |
| Replace an agent's full config from JSON (full overwrite) |
Avatar & media
Tool | Description |
| List the free 3D avatars in the catalog |
| Set a 3D avatar for an agent (catalog ID or custom .glb/.vrm URL) |
| Upload a local image to the CDN as an agent's avatar/logo |
Versioning
Tool | Description |
| List an agent's saved version snapshots |
| Roll back an agent to a previous version |
Channels
Connect messaging channels to the tenant with their secrets. Secrets are write-only — the server stores them and never returns their values; list_channels reports only which credential keys are set. Connect/disconnect require role owner or admin.
Tool | Description |
| List the tenant's channels + status. Never returns secret values — only |
| Connect a channel (WhatsApp, Telegram, Discord, Web, …) with its credentials. Validated against the provider API and stored server-side |
| Disconnect a channel by id (archives its open conversations) |
Passing secrets safely. connect_channel accepts the secret two ways:
credentials— literal values, e.g.{ "botToken": "123:ABC" }. Simplest, but the secret passes through the conversation/LLM.credentialsFromEnv(recommended for real secrets) — a map of credential key → environment variable name, e.g.{ "botToken": "MY_TG_TOKEN" }. The MCP server reads the value from its own environment (set it in your MCP client config), so the secret never appears in the chat.
Channels that require an interactive flow (WhatsApp/Instagram Embedded Signup QR/OAuth) still need admin.botuyo.com. Channels that authenticate with a static token (Telegram, Discord, WhatsApp Cloud API with an existing token, Web) can be connected here.
Account
Tool | Description |
| Switch the active tenant for the session |
Roles
Role | Read | Write | Publish |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ |
| ✅ | ❌ | ❌ |
Channels:
connect_channel/disconnect_channeladditionally require owner or admin (adevelopercan build agents but not wire up channel secrets).
Channel Integrations
Channels that authenticate with a static secret — Telegram (bot token), Discord (bot token), WhatsApp Cloud API (existing access token), Web — can be connected directly via the connect_channel tool (see Channels). Channels that need an interactive flow (WhatsApp/Instagram Embedded Signup with QR scans or OAuth consent) must still be connected from admin.botuyo.com.
Use get_agent_status to check which channels are connected (it links to the admin panel for any missing channel), or list_channels for the tenant-wide channel list and status.
Build from source
git clone https://github.com/MarcoAR1/botuyo-mcp.git
cd botuyo-mcp
npm install
npm run buildTest with MCP Inspector
Authenticate first (npx @botuyo/mcp login), then run:
npm run inspectContributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
Please note that this project follows a Code of Conduct.
Security
To report a vulnerability, see SECURITY.md.
License
MIT © BotUyo
Available Tools
30 toolsassociate_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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent to update | |
| documentIds | Yes | Array of knowledge document IDs to associate with the agent. Pass an empty array to remove all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it states the tool performs a replacement operation ('replaces the current list'), specifies that an empty array removes all associations, and mentions the need for valid document IDs from another tool. It doesn't cover aspects like permissions or error handling, but for a mutation tool with zero annotation coverage, this is above the baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by critical behavioral details and usage guidance in the second. Every sentence adds value without redundancy, making it efficient and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is reasonably complete: it covers the purpose, behavior, and usage guidelines. However, it lacks details on return values or error cases, which would be helpful for full contextual understanding. It compensates well with the guidance provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear details for both parameters. The description adds some semantic context by explaining that 'documentIds' are 'knowledge base document IDs' and that an empty array removes all, but this mostly reinforces what the schema already states. With high schema coverage, the baseline is 3, and the description doesn't significantly enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('associates/link knowledge base document IDs to an agent') and the resource ('agent'), distinguishing it from siblings like 'update_agent' or 'list_knowledge_documents'. It explicitly mentions the replacement behavior, which differentiates it from tools that might append or modify partially.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs alternatives: it specifies to use 'list_knowledge_documents' to get valid document IDs, and it clarifies the replacement behavior ('replaces the current list'), which helps avoid misuse with tools like 'update_agent' that might handle other aspects. It also implies usage for updating agent knowledge associations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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_pedidosbasada encall_webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | ID del agente | |
| toolName | Yes | Nombre del tool (existente para single-instance, o nombre custom para multi-instance) | |
| baseTool | No | Tool base del registry (solo multi-instance). Ej: "call_webhook", "sync_to_google_sheets", "sync_to_hubspot" | |
| params | No | Parámetros invisibles al LLM, inyectados en execute() (ej. fromEmail, url, spreadsheetId) | |
| fields | No | Campos tipados que la IA ve (override del declaration). Array de {name, type, label, required, enumValues, validation} | |
| instruction | No | Guía de 1 línea para el LLM explicando qué hace esta tool/instancia |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the two operational modes and the automatic enabledTools behavior, but lacks details on permissions needed, error conditions, or what happens when toolName already exists. It provides useful context but not comprehensive behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening statement followed by bullet-point modes, using bold formatting for emphasis. It's appropriately sized for the complexity, though the second paragraph could be slightly more concise. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, nested objects) and no annotations or output schema, the description provides good operational context but lacks information about return values, error handling, or system constraints. It's adequate for understanding what the tool does but incomplete for full implementation guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds some semantic context by explaining the distinction between toolName usage in single vs. multi-instance modes and mentioning params as 'invisibles al LLM', but doesn't provide significant additional meaning beyond what the schema already specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('crea o actualiza') and resource ('config de un tool para un agente'), with specific differentiation from siblings by focusing on tool configuration rather than agent creation/deletion or knowledge management. It distinguishes between single-instance and multi-instance modes, making the purpose highly specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided on when to use each mode: single-instance for configuring existing tools with fixed parameters, and multi-instance for creating virtual instances based on real tools (requiring baseTool). The description also mentions automatic addition to enabledTools, providing clear operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name of the agent (e.g. "Mar 🌊") | |
| description | No | Brief description of what this agent does | |
| type | No | Agent type. Use "agent" (default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the agent is created in 'draft' status, configuration requires a separate tool ('update_agent'), and specific roles are needed. However, it lacks details on rate limits, error conditions, or response format, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by status details, usage guidance, and prerequisites in three concise sentences. Each sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does well by covering purpose, status, usage flow, and permissions. However, it omits details on the return value (e.g., agent ID or object) and potential errors, which could be critical for a creation tool, slightly reducing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the three parameters. The description adds no additional parameter information beyond what the schema provides, such as examples or constraints. Baseline 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new agent') and resource ('for the tenant'), distinguishing it from siblings like 'update_agent' or 'list_agents'. It specifies the initial status ('draft') and mentions subsequent configuration steps, providing precise differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool ('to create a new agent') and when not to ('Use update_agent to configure identity, stages, and tools afterward'), naming the alternative. It also specifies prerequisites ('Requires role: owner, admin, or developer'), offering comprehensive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | Template ID from list_templates (e.g. "beauty-salon", "dental-clinic", "restaurant-bar") | |
| businessName | Yes | Business name — will replace {{businessName}} in the template | |
| contactPhone | No | Optional contact phone number | |
| contactEmail | No | Optional contact email | |
| address | No | Optional business address | |
| services | No | Optional list of services with name, duration (minutes), and price |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It effectively describes key behavioral aspects: the creation action, template hydration process, and role requirements. However, it doesn't mention potential side effects (e.g., whether this affects existing agents), rate limits, or error conditions that would be helpful for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with three focused paragraphs: purpose/mechanism, workflow guidance, and access requirements. Every sentence adds value with zero redundancy, making it easy to parse while being comprehensive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations and no output schema, the description does well by explaining the template mechanism, hydration process, prerequisites, and workflow. The main gap is the lack of information about what the tool returns (output format) and potential error cases, which would help the agent understand the complete interaction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds context about business data being 'automatically hydrated into the template placeholders,' which helps explain the relationship between parameters and template variables, but doesn't provide additional parameter-specific details beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new agent from a pre-built template, specifying the exact resource (agent) and mechanism (template). It distinguishes from sibling tools like create_agent (which presumably creates from scratch) by emphasizing the template-based approach with pre-configured components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use list_templates first to see available templates' and 'Requires role: owner, admin, or developer.' It clearly indicates prerequisites and the recommended workflow, helping the agent understand when and how to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent to delete | |
| confirm | Yes | Must be true to confirm deletion. If false or missing, the deletion will be rejected. | |
| confirmName | Yes | The exact name of the agent to delete (for safety confirmation). Must match the actual agent name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: the action is a 'soft delete' (deactivation and hiding), 'IRREVERSIBLE', requires confirmation parameters, and has role-based access control. This covers safety, permissions, and procedural constraints without contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action ('Delete an agent (soft delete)'), followed by critical warnings and requirements in a structured manner. Every sentence serves a purpose: stating the action, emphasizing irreversibility, detailing confirmation steps, and specifying role requirements, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is highly complete: it covers purpose, behavioral traits (irreversible, soft delete), usage guidelines (confirmation, roles), and parameter context. The only minor gap is the lack of explicit mention of output or error handling, but given the context, this is sufficient for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds value by explaining the purpose of 'confirm' and 'confirmName' parameters in the context of safety confirmation ('You MUST set `confirm` to true AND provide the exact agent name'), which enhances understanding beyond the schema's technical descriptions. However, it doesn't detail 'agentId' beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete an agent') and qualifies it as 'soft delete', distinguishing it from permanent deletion. It explicitly mentions the resource ('agent') and the irreversible nature of the action, which differentiates it from sibling tools like 'update_agent' or 'get_agent'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: it requires explicit confirmation with 'confirm' set to true and 'confirmName' matching the agent name. It also specifies role requirements ('owner, admin, or developer'), helping the agent decide when this tool is appropriate versus alternatives like deactivation or update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_knowledge_documentB
Deletes a knowledge base document and all its chunks from the current tenant.
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | The ID of the document to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the destructive action ('Deletes') and scope ('all its chunks'), which is helpful, but lacks critical details: permission requirements, irreversibility warning, confirmation prompts, error handling, or what happens on success. For a destructive operation, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It front-loads the core action and resource, making it immediately understandable. Every word earns its place by specifying scope and secondary effects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It covers the basic action but omits critical context: success/error responses, side effects beyond chunk deletion (e.g., impact on associated agents), and safety warnings. The agent lacks sufficient information to use this tool responsibly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single 'documentId' parameter. The description adds no additional parameter semantics beyond what the schema provides (e.g., format examples, sourcing guidance, or validation rules). Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Deletes'), the resource ('a knowledge base document and all its chunks'), and the scope ('from the current tenant'). It distinguishes from siblings like 'delete_agent' by specifying the exact resource type being deleted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing the document ID from 'list_knowledge_documents'), exclusions, or compare with other deletion tools like 'delete_agent'. The agent must infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly discloses key behavioral traits: it's 'read-only' (non-destructive), returns a 'complete, documented example' (output format), and serves as a 'reference' (educational purpose). However, it doesn't mention potential limitations like rate limits, authentication needs, or whether the example is static or dynamically generated. Given the lack of annotations, this is good but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: the first sentence states the core purpose, followed by usage guidance and a bulleted list of specific scenarios. Every sentence earns its place by adding clarity or practical value, with no redundant or vague phrasing. It's appropriately sized for a tool with no parameters but significant contextual complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (educational reference with no output schema) and lack of annotations, the description does a strong job: it explains what the tool returns, its read-only nature, and when to use it. However, it doesn't detail the output format (e.g., JSON structure depth) or potential errors, which could be helpful for an agent. With no output schema, some additional context on returns would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose and usage. A baseline of 4 is applied since no parameters exist, and the description adds value beyond the schema by explaining the tool's context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Returns a complete, documented example of an agent configuration JSON with ALL possible fields explained.' It uses specific verbs ('returns', 'explained') and clearly distinguishes this reference tool from sibling tools that actually create, modify, or manage agents (e.g., create_agent, update_agent, import_agent_json).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Use this as a reference when creating or editing agents' and lists specific use cases under 'Useful for:' (e.g., new users learning, checking fields before import, understanding components). It also clarifies when NOT to use it: 'This is a read-only reference tool — it doesn't create or modify anything,' distinguishing it from alternatives like import_agent_json or create_agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent to export | |
| savePath | No | Optional. Directory path where the JSON file will be saved. Default: ./agents/ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool saves the exported JSON to a local file (default or custom path), includes read-only apiKey for integrations, and returns the complete configuration. However, it lacks details on error handling, file overwriting, or response format, leaving some gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by essential details in logical order (what's included, file saving behavior, usage context). Every sentence adds value without redundancy, and it's structured efficiently for quick comprehension, making it highly concise and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a good job covering the tool's purpose, usage, and key behaviors. It explains the export process, file saving, and integration with 'import_agent_json'. However, as a mutation tool (exporting and saving files), it could benefit from more details on error cases or response handling, slightly limiting completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (agentId and savePath). The description adds minimal value beyond the schema: it mentions savePath defaults to './agents/' and implies agentId identifies the agent to export, but doesn't provide additional context like format examples or constraints. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Export') and resource ('full agent configuration as clean, editable JSON'), distinguishing it from siblings like 'import_agent_json' (re-import) and 'get_agent' (retrieve without export). It explicitly lists what's included in the export (agentConfig, apiKey, etc.), making the purpose unambiguous and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: for exporting agent configuration for editing, with a default save location and option for custom paths. It also names an alternative ('import_agent_json') for re-importing after editing, clearly defining the workflow context and distinguishing it from other agent-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agentA
Get the full configuration of a specific agent, including identity (tone, language, objective, customInstructions), stages, and enabled tools.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what information is retrieved but does not mention permissions required, rate limits, error conditions, or the response format. For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and details the included components without unnecessary words. Every part of the sentence contributes directly to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving detailed configuration), lack of annotations, and no output schema, the description is incomplete. It specifies what is retrieved but not the structure of the return data, potential errors, or operational constraints. This is adequate for basic understanding but leaves gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'agentId' fully documented as 'The MongoDB ID of the agent'. The description does not add any additional meaning beyond this, such as format examples or validation rules. With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'full configuration of a specific agent', specifying the exact components included: identity (tone, language, objective, customInstructions), stages, and enabled tools. It distinguishes itself from siblings like 'list_agents' (which lists multiple agents) and 'get_agent_status' (which focuses on status rather than configuration).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing detailed agent configuration, but does not explicitly state when to use this tool versus alternatives like 'list_agents' for summaries or 'get_agent_status' for operational state. No exclusions or prerequisites are mentioned, leaving some ambiguity in context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool shows connected channels and provides admin panel links, which adds useful behavioral context beyond a simple status check. However, it doesn't cover aspects like rate limits, error conditions, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates the tool's purpose and key outputs. Every element (what it gets, what channels, what it provides) earns its place with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with 1 parameter and no output schema, the description is adequate but could be more complete. It explains what information is returned (channel status and admin links) but doesn't describe the return format or potential limitations. Given the low complexity, it meets minimum viable standards.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'agentId', which is documented as 'The MongoDB ID of the agent'. The description doesn't add any additional parameter semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'channel connection status of an agent', specifying the channels involved (WhatsApp, Instagram, Telegram, Web). It distinguishes from siblings like 'get_agent' (general agent info) by focusing on channel status, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to check agent channel connections, but doesn't provide explicit guidance on when to use this versus 'get_agent' or other agent-related tools. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tool_configC
Ver el config completo de un tool específico de un agente (formato JSON).
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | ID del agente | |
| toolName | Yes | Nombre del tool o instancia |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it returns JSON format without disclosing behavioral traits like permissions needed, rate limits, error conditions, or whether it's a read-only operation. It lacks details on what 'completo' entails or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Spanish that front-loads the purpose. It could be slightly more structured but wastes no words, making it appropriately concise for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 required parameters, no output schema, no annotations), the description is minimally adequate but incomplete. It covers the basic purpose and output format but lacks behavioral context, usage guidelines, and details on the JSON structure, leaving gaps for an agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (agentId and toolName) adequately. The description adds no additional meaning about parameters beyond implying they identify a specific tool of an agent, which is already clear from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Ver' meaning 'View') and resource ('config completo de un tool específico de un agente'), specifying it retrieves complete configuration in JSON format. It distinguishes from siblings like 'get_tools_catalog' (lists tools) and 'list_tool_configs' (likely lists configs), but doesn't explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tools_catalogC
Lista el catálogo completo de tools disponibles con su metadata: configurable, allowMultiInstance, configSchema, requiredIntegrations.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filtro opcional: "configurable" (solo configurables), "multi" (solo multi-instance), o vacío para todas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read-only operation by listing metadata, but doesn't disclose behavioral traits such as permissions needed, rate limits, response format, or pagination. The description is minimal and lacks critical operational context for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose and key metadata returned. It is front-loaded with no wasted words, making it easy to parse quickly for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It lacks details on return values, error handling, or operational constraints, which are essential for a tool that lists metadata. The description does not compensate for the missing structured data, leaving gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the optional 'filter' parameter with its possible values. The description adds no parameter-specific information beyond what the schema provides, resulting in a baseline score of 3 as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Lista') and resource ('catálogo completo de tools disponibles'), specifying it returns metadata like configurable, allowMultiInstance, configSchema, requiredIntegrations. It distinguishes from siblings like list_available_tools by focusing on metadata rather than just listing tools, but could be more explicit about the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like list_available_tools or list_tool_configs. The description mentions metadata details but doesn't specify use cases, prerequisites, or exclusions, leaving the agent to infer usage based on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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:
Use export_agent_json to save the agent config to a local file (auto-saved to ./agents/)
Edit the local file as needed
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent to update. If not provided and filePath contains _agentId, that will be used. | |
| filePath | No | Path to a local JSON file with the agent config (e.g. ./agents/mar.json). Preferred over inline agentConfig. | |
| agentConfig | No | The full agentConfig object (fallback if filePath is not provided). Must include name and identity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It thoroughly explains the tool's behavior: it's a 'FULL REPLACE operation' that overwrites the entire config, details null handling (null strips fields, omitted fields not preserved), specifies internal fields that are preserved automatically, explains priority between filePath and agentConfig, and states role requirements. This provides rich behavioral context beyond basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (overview, null handling, workflow, input options, requirements) and uses bold for key points. Every sentence adds value: the first states purpose, subsequent sections explain critical behaviors, and it ends with role requirements. There's no wasted text, and information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation operation with 3 parameters, nested objects, no annotations, no output schema), the description is largely complete. It covers purpose, behavior, usage guidelines, and parameter context. However, it doesn't describe the return value or error conditions, which would be helpful for a mutation tool. The absence of output schema means the agent doesn't know what to expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema: it explains the relationship between agentId and filePath ('If not provided and filePath contains _agentId, that will be used'), clarifies that agentConfig is a 'fallback if filePath is not provided', and emphasizes filePath as 'preferred'. However, it doesn't add syntax or format details for parameters beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Import/replace an agent's FULL configuration from a local JSON file or from a JSON object.' It specifies the verb (import/replace), resource (agent's FULL configuration), and distinguishes from sibling update_agent for partial updates. This is specific and differentiates from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs alternatives: 'For partial updates (changing just one field), use update_agent instead.' It also outlines a preferred workflow (export → edit → import) and specifies prerequisites ('Requires role: owner, admin, or developer'). This covers when, when-not, alternatives, and context comprehensively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to scrape and index (must be publicly accessible) | |
| name | No | Optional display name for the document. If omitted, the page title is used. | |
| description | No | Optional description of what this URL contains | |
| tags | No | Optional tags for categorization (e.g. ["docs", "faq"]) | |
| topic | No | Optional topic label for search filtering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the scraping and indexing process, which is valuable behavioral context. However, it doesn't mention important behavioral aspects like authentication requirements, rate limits, error conditions, or what happens if the URL is inaccessible. The description doesn't contradict any annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with just two sentences that each serve a clear purpose: the first explains the core functionality, and the second provides important context about subsequent usage. There's zero wasted language or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description provides adequate but incomplete context. It explains the core purpose and mentions a related tool, but doesn't cover behavioral aspects like error handling, performance characteristics, or what the tool returns. The absence of output schema means the description should ideally explain the return value, which it doesn't.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter information in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Add a URL to the knowledge base'), the mechanism ('scrape the page content and index it for intelligent search'), and distinguishes from sibling tools by mentioning 'associate_knowledge_to_agent' as a follow-up action. It provides a complete picture of what the tool does beyond just the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (to add URL-based content to the knowledge base) and mentions a related tool ('associate_knowledge_to_agent') for subsequent actions. However, it doesn't explicitly state when NOT to use this tool or mention alternatives for different content types (e.g., file uploads).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsA
Lists all agents for the authenticated tenant. Returns id, name, description, status (draft/published), and how many tools each agent has enabled.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns specific fields (id, name, description, status, tool count), which adds useful behavioral context beyond a basic list operation. However, it doesn't mention pagination, rate limits, or authentication requirements, leaving gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the action, scope, and return data. Every word earns its place, with no redundant or vague phrasing, making it highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is reasonably complete. It explains what the tool does and what it returns, covering the essential context. However, without annotations or output schema, it could benefit from mentioning authentication or response format details for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing on the tool's purpose and output. A baseline of 4 is applied since no parameters exist, and the description adds value elsewhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Lists') and resource ('all agents for the authenticated tenant'), specifying exactly what the tool does. It distinguishes from siblings like 'get_agent' (singular) and 'list_agent_versions' (versions of a specific agent), making the scope explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating it lists 'all agents for the authenticated tenant', suggesting it's for retrieving a comprehensive list. However, it doesn't explicitly guide when to use this versus alternatives like 'get_agent' for a single agent or 'list_templates' for templates, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns historical data (snapshots) and is for inspection purposes, which is useful. However, it lacks details on behavioral traits like pagination, rate limits, permissions needed, or error conditions, leaving gaps for an agent to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a utility note. Every word earns its place, with no redundancy or fluff, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete. It covers the purpose and usage context but lacks details on return format (beyond listing fields), error handling, or operational constraints. For a tool with minimal structured data, it should do more to compensate, leaving room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with 'agentId' documented as 'The MongoDB ID of the agent'. The description does not add further parameter details beyond what the schema provides, but since schema coverage is high and there is only one parameter, the baseline is elevated. It implies the tool operates on a specific agent, which aligns with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('version history for an agent'), specifying it returns 'all saved snapshots with version number, change source, and timestamp'. It distinguishes from siblings like 'list_agents' (which lists agents, not versions) and 'restore_agent_version' (which restores, not lists).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage ('Useful to see what changed and when before deciding to restore'), implying it should be used for inspection prior to restoration. However, it does not explicitly state when not to use it or name alternatives (e.g., 'get_agent' for current state), so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the return content (core and tenant tools) but lacks details on format, pagination, or error handling. It adds some context about tool IDs but doesn't fully cover behavioral traits like rate limits or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a specific usage guideline. Every sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete. It explains what the tool does and when to use it, though it could benefit from mentioning output format or limitations to be fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a baseline score of 4 for not adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'all tools available for this tenant', specifying both 'core' and 'tenant' tools. It distinguishes from siblings like 'get_tools_catalog' by focusing on tenant-specific availability rather than a general catalog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool: to get tool IDs for enabling tools with 'update_enabled_tools' or configuring stage tools. This provides clear guidance on its purpose versus alternatives like 'get_tools_catalog' or other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_avatarsB
Lista los avatares 3D gratuitos disponibles en el catálogo. Muestra nombre, formato y categoría.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that the tool lists free 3D avatars and shows name, format, and category, but does not disclose behavioral traits such as whether it's read-only, if it requires authentication, rate limits, or pagination. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, consisting of two clear sentences that directly state the tool's function and output. There is no wasted language, and every sentence earns its place by providing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple list operation with 0 parameters), no annotations, and no output schema, the description is minimally adequate. It explains what the tool does and what it returns (name, format, category), but lacks details on behavioral aspects like safety or performance, which would be helpful for an agent. It meets basic requirements but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there is no need for parameter details in the description. The baseline for 0 parameters is 4, as the description appropriately does not discuss parameters, and the schema fully covers the input structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Lista los avatares 3D gratuitos disponibles en el catálogo' (List the free 3D avatars available in the catalog). It specifies the verb (list), resource (3D avatars), and scope (free, in catalog), but does not explicitly differentiate from sibling tools like 'select_avatar' or 'upload_agent_media', which keeps it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'select_avatar' (which might be for choosing an avatar) or 'upload_agent_media' (which might involve uploading avatars), leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_knowledge_documentsC
Lists all knowledge base documents for the current tenant. Returns document id, name, type, status, chunks count, and file size.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of documents to return (default: 50) | |
| offset | No | Number of documents to skip for pagination (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the return fields (e.g., id, name, type) but doesn't disclose behavioral traits like pagination behavior (implied by parameters but not explained), rate limits, authentication needs, or whether it's a read-only operation. The description is minimal and misses key operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, stating the core purpose in the first sentence and detailing return fields in the second. Both sentences add value: the first defines the action and scope, and the second informs about output structure. No wasted words, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It covers the basic purpose and return fields but lacks behavioral context (e.g., pagination, errors) and doesn't fully compensate for the missing structured data. For a simple list tool, it's minimally adequate but leaves gaps in operational understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear documentation for 'limit' and 'offset' parameters. The description adds no additional parameter semantics beyond what the schema provides, such as default values or usage examples. Baseline score of 3 is appropriate since the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lists') and resource ('knowledge base documents for the current tenant'), specifying the scope as 'all' documents. It distinguishes from siblings like 'delete_knowledge_document' by focusing on listing rather than modification. However, it doesn't explicitly differentiate from other list tools (e.g., 'list_agents') beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing knowledge documents to exist, or compare it to other list operations like 'list_agents'. The description lacks context on usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses return content (templates organized by industry vertical with pre-configured elements) but lacks details on format, pagination, or error handling. It adequately describes what the tool returns but misses behavioral specifics like rate limits or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: first states purpose, second details return structure, third provides usage guidance. Each sentence adds distinct value, and the description is front-loaded with the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is mostly complete: it explains purpose, return content, and usage context. However, it lacks details on output format (e.g., JSON structure) and error cases, which would be helpful given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately focuses on output semantics, explaining what is returned without redundant parameter info, meeting the baseline for zero-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all available agent templates'), specifies the purpose ('for quick agent creation'), and distinguishes from sibling 'create_from_template' by indicating this is for listing only, not creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('List all available agent templates for quick agent creation') and when to use an alternative ('Use create_from_template to create an agent from any template'), providing clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | ID del agente |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions grouping into categories but does not disclose behavioral traits like whether it's read-only, pagination, rate limits, authentication needs, or error handling. For a list operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Spanish that front-loads the purpose and details the grouping structure. It avoids unnecessary words, though it could be slightly more structured for clarity in English contexts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple input schema, the description is minimally adequate. It explains what the tool does but lacks details on return values, error cases, or operational context, making it incomplete for full agent understanding without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'agentId' clearly documented in the schema. The description does not add any meaning beyond what the schema provides (e.g., it doesn't explain format or constraints for 'agentId'), so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lista las configs de tools') and the resource ('de un agente'), specifying it groups configurations into categories: configured (single and multi-instance), enabled without config, and multi-instance summary. It does not explicitly differentiate from sibling tools like 'get_tool_config' or 'list_available_tools', which is why it's not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'get_tool_config' (for a specific tool) or 'list_available_tools' (for catalog). It lacks explicit when/when-not instructions or prerequisite context, relying solely on the implied need to list configurations for a given agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent | |
| publish | Yes | true = publish (go live), false = unpublish (back to draft) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains the core behavior (publishing/unpublishing changes live status) and adds critical context about required roles, which is valuable. However, it lacks details on side effects (e.g., impact on ongoing conversations), rate limits, or error conditions, leaving gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with two concise sentences that directly explain the tool's purpose and prerequisites without any wasted words. Every sentence earns its place by providing essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation with no annotations and no output schema), the description is moderately complete. It covers the action, status implications, and role requirements, but lacks details on return values, error handling, or broader system impacts. This leaves room for improvement in fully guiding an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description adds no specific parameter semantics beyond what the schema provides (e.g., it doesn't clarify 'agentId' format or 'publish' implications further). However, with 0 parameters, the baseline would be 4, but here it's slightly lower due to no extra value added, yet still above the 3 baseline since the schema is comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('publish or unpublish an agent') and the resource ('agent'), distinguishing it from siblings like 'create_agent', 'update_agent', or 'delete_agent' by focusing on live/draft status management. It explicitly defines what published vs. unpublished means, avoiding vagueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (to change an agent's live/draft status) and includes prerequisites (required roles: owner, admin, or developer). However, it does not explicitly state when not to use it or name alternatives (e.g., vs. 'update_agent' for other changes), which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_tool_configB
Elimina la configuración de un tool. Si es multi-instance, también la remueve de enabledTools automáticamente.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | ID del agente | |
| toolName | Yes | Nombre del tool o instancia a eliminar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that removal is automatic for multi-instance tools ('también la remueve de enabledTools automáticamente'), which adds context beyond the basic 'remove' action. However, it doesn't cover critical behavioral traits like whether this is reversible, permission requirements, side effects on agent functionality, or error handling, leaving significant gaps for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences in Spanish, front-loaded with the core action and followed by a clarifying detail about multi-instance handling. Every word earns its place with no redundancy or fluff, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a destructive tool with no annotations and no output schema, the description is incomplete. It lacks details on return values, error conditions, safety warnings, or integration with sibling tools like 'update_enabled_tools'. For a tool that removes configuration, this leaves the agent with insufficient context to use it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('agentId', 'toolName') well-documented in the schema. The description adds no additional parameter details beyond what the schema provides, such as format examples or constraints. Given the high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't need to heavily.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Elimina' - removes) and resource ('configuración de un tool' - tool configuration), making the purpose specific. It distinguishes from siblings like 'configure_agent_tool' (which likely adds/modifies) and 'get_tool_config' (which reads). However, it doesn't explicitly differentiate from 'delete_agent' or other deletion tools, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning multi-instance handling ('Si es multi-instance...'), suggesting when this tool is appropriate. However, it lacks explicit guidance on when to use this vs. alternatives like 'delete_agent' or 'update_enabled_tools', and doesn't specify prerequisites or exclusions, making it only implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent | |
| version | Yes | Version number to restore (from list_agent_versions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well: it discloses that the current config is automatically saved as a new snapshot before restoring, enabling undo capability. It also mentions role requirements. However, it lacks details on side effects, error handling, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by key behavioral details and usage guidelines in three concise sentences. Every sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is fairly complete: it covers purpose, behavioral traits (auto-snapshot, undo), and prerequisites. It could improve by detailing the response or error cases, but it's adequate given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (agentId and version). The description adds minimal value by referencing list_agent_versions for the version parameter, but doesn't provide additional semantics beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('restore an agent to a previous version') and resource ('agent'), distinguishing it from siblings like update_agent or create_agent by focusing on version rollback. It explicitly mentions 'rollback' to reinforce the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: use list_agent_versions first to see available versions, and specifies required roles (owner, admin, or developer). It implies when to use (for rollback) and references a sibling tool for prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_avatarC
Selecciona un avatar 3D para un agente. Puede ser del catálogo (por ID) o una URL custom (.glb/.vrm).
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | ID del agente | |
| avatarId | No | ID del avatar del catálogo (ej: avatar_corporate_female_01). Mutuamente excluyente con avatarUrl. | |
| avatarUrl | No | URL directa a un modelo .glb/.vrm. Mutuamente excluyente con avatarId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states what the tool does, not behavioral traits. It doesn't disclose if this is a read/write operation, permission requirements, side effects, or response format. More context is needed for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Spanish that front-loads the purpose and key options. Every word contributes to understanding without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral aspects, error conditions, and what happens post-selection (e.g., confirmation, agent state change). More detail is needed given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal value by mentioning catalog vs. custom options and file formats (.glb/.vrm), but doesn't provide additional semantics beyond the schema's mutual exclusivity note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Selecciona' - Select) and resource ('un avatar 3D para un agente'), specifying it can be from a catalog or custom URL. It doesn't explicitly differentiate from sibling tools like 'list_avatars' or 'upload_agent_media', but the purpose is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'list_avatars' (for browsing) or 'upload_agent_media' (for media uploads). The description mentions catalog vs. custom options but doesn't address tool selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tenantId | No | The tenant or sub-tenant ID to switch to. Omit to list available tenants. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's dual functionality (list vs. switch), the immediate effect of switching ('takes effect immediately for subsequent tool calls'), and the scope of listing ('including sub-tenants within organizations'). It doesn't mention authentication requirements or rate limits, but covers the core behavior well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with three sentences that each serve a distinct purpose: stating the tool's dual functionality, explaining the conditional behavior based on parameter presence, and describing the immediate effect. There is zero wasted language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no annotations and no output schema, the description provides excellent coverage of purpose, usage, and behavioral effects. It doesn't describe the format of the listed tenants or potential error conditions, but given the tool's simplicity, it's nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for its single parameter, so the baseline is 3. The description adds value by explaining the semantic meaning of omitting the parameter ('lists all available tenants') versus providing it ('switches to that tenant or sub-tenant'), which goes beyond the schema's technical description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('switch' and 'list') and resources ('active tenant for this MCP session'). It distinguishes itself from sibling tools by focusing on tenant management rather than agent, knowledge, or tool configuration operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use each mode: 'If no tenantId is provided, lists all available tenants' and 'If a tenantId is provided, switches to that tenant or sub-tenant.' It provides clear conditional guidance for both parameter scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent | |
| name | No | Agent display name | |
| description | No | Agent description | |
| identity | No | Identity configuration for the agent (deep-merged) | |
| channels | No | Channels where this agent is active (replaces entire array). Valid: "web", "whatsapp", "telegram", "instagram", "discord", "phone" | |
| widgetConfig | No | Widget appearance and behavior (deep-merged). Set any field to null to remove it. Common fields: welcomeMessage, placeholder, headerText, starterPrompt, position ("bottom-right"/"bottom-left"), defaultLocale ("es"/"en"/"pt"/"fr"), avatarUrl, logoUrl, avatarScale, showPromptAvatar, avatar3dUrl, cssVariables (object), darkCssVariables (object), animations (object), effects (object). | |
| voice | No | Voice configuration (deep-merged). liveModel is admin-only and preserved automatically. | |
| channelPrompts | No | Per-channel system prompt overrides. Key = channel name, value = prompt text. Example: { "whatsapp": "Sé concisa, mensajes cortos" } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels. It details the partial merge behavior, field handling rules (omitted, set, null deletion), deep-merge for nested objects, array replacement, and permission requirements. This provides comprehensive behavioral context beyond what the input schema alone offers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, field behavior, nested objects, arrays, usage guidance, permissions). Every sentence adds value: the first sentence states the core purpose, subsequent sections explain behavioral nuances, and final sentences provide usage differentiation and prerequisites. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with 8 parameters, nested objects, no annotations, and no output schema, the description is highly complete. It covers purpose, behavior, usage guidelines, and permissions. The only minor gap is the lack of information about return values or error conditions, but given the comprehensive behavioral disclosure, this is a strong description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining the semantics of how parameters are processed: partial merge behavior, field handling rules (omitted/set/null), deep-merge for nested objects, and array replacement. However, it doesn't provide specific examples for all parameter types beyond the widgetConfig example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Update an agent's configuration with partial merge.' It distinguishes from siblings by specifying what this tool configures (WHO the agent is and HOW it looks) versus alternatives like upsert_stage (WHAT the agent does) and update_enabled_tools (which tools the agent can call).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives: '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.' It also specifies prerequisites: 'Requires role: owner, admin, or developer.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent | |
| toolIds | Yes | Array of tool IDs to enable (replaces current list). Get valid IDs from list_available_tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses key behavioral traits: the operation 'REPLACES the current list' (destructive/replacement behavior) and role requirements. However, it doesn't mention potential side effects (e.g., if disabling tools affects active agents), rate limits, or error conditions, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each essential: purpose, prerequisite, and access requirement. No wasted words, front-loaded with the core action. Structure is logical and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is fairly complete for a mutation tool: it covers purpose, usage, parameters, and behavioral aspects like replacement and permissions. However, it lacks details on return values or error handling, which could be useful for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining that tool IDs should be obtained from 'list_available_tools', providing context beyond the schema's technical definitions. This helps the agent understand parameter semantics practically.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and resource 'which tools are enabled for an agent', specifying it REPLACES the current list. It distinguishes from siblings like 'configure_agent_tool' (which might modify individual tools) and 'list_available_tools' (which is read-only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Use list_available_tools to see the valid tool IDs for your tenant first' (prerequisite), and 'Requires role: owner, admin, or developer' (access control). This tells the agent when to use this tool versus alternatives like checking available tools first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent | |
| filePath | Yes | Absolute path to the local image file (webp, png, jpg, svg) | |
| mediaType | No | Type of media: "avatar" for agent avatar, "logo" for widget logo. Default: "avatar" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the multi-step process (reads from local filesystem, uploads via Cloudinary API, updates widgetConfig), discloses technical constraints (supported formats, max size 2MB), and implies a mutation operation (uploading and updating). It doesn't mention error handling, permissions, or rate limits, but provides substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured: first sentence states the core purpose, second explains the process, third provides technical constraints. Every sentence earns its place with no wasted words, and it's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does well by explaining the process, constraints, and purpose. It could be more complete by mentioning what the tool returns (e.g., success confirmation, URL, error details) or any authentication requirements, but it covers the essential context given the available structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds some context about the 'mediaType' parameter ('avatar or logo') and implies file format constraints for 'filePath', but doesn't provide significant additional semantic meaning beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Upload a local image file'), the target resource ('to the CDN and assign it to an agent'), and the purpose ('as avatar or logo'). It distinguishes this tool from sibling tools like 'select_avatar' or 'list_avatars' by specifying it's an upload operation rather than selection or listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool: for uploading local image files to assign as agent avatars or logos. It doesn't explicitly mention when not to use it or name specific alternatives, but the context is sufficiently clear given the sibling tools (e.g., 'select_avatar' might be an alternative for choosing from existing avatars).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The MongoDB ID of the agent | |
| stageName | Yes | Name key for this stage (e.g. "welcomeStage", "salesStage") | |
| stageConfig | Yes | Full stage configuration object. | |
| connections | No | Graph edges between stages. Replaces ALL existing connections. | |
| channelFlows | No | Per-channel flow overrides. Key = channel name, value = { connections: [...] }. Replaces ALL existing channelFlows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by explaining the merge behavior ('stage config is merged with existing stages'), replacement behavior for connections/channelFlows, and permission requirements. It could improve by mentioning potential side effects or error conditions, but covers key behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear paragraph breaks: purpose statement, conceptual explanation, examples, behavioral details, and permission requirements. Every sentence adds value with no redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with 5 parameters, nested objects, and no annotations/output schema, the description does well by explaining the tool's purpose, behavior, and permissions. It could be more complete by describing what happens on success/failure or providing more guidance about the stageConfig structure, but covers most essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter-specific information beyond what's in the schema (only mentioning that connections and channelFlows replace existing values). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('create or update') and resource ('named stage in an agent's conversation flow'), with specific examples of stage names provided. It distinguishes this tool from siblings like 'create_agent' or 'update_agent' by focusing on stages within agents rather than agents themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool (to define what an agent does at a particular step in a conversation flow) and specifies required roles (owner, admin, or developer). However, it doesn't explicitly mention when NOT to use it or name alternative tools for related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
30 tool updates
v0.3.18- First observed
associate_knowledge_to_agent - First observed
configure_agent_tool - First observed
create_agent - First observed
create_from_template - First observed
delete_agent - First observed
delete_knowledge_document - First observed
example_agent - First observed
export_agent_json - First observed
get_agent - First observed
get_agent_status - First observed
get_tool_config - First observed
get_tools_catalog - First observed
import_agent_json - First observed
ingest_knowledge_url - First observed
list_agent_versions - First observed
list_agents - First observed
list_available_tools - First observed
list_avatars - First observed
list_knowledge_documents - First observed
list_templates - First observed
list_tool_configs - First observed
publish_agent - First observed
remove_tool_config - First observed
restore_agent_version - First observed
select_avatar - First observed
switch_tenant - First observed
update_agent - First observed
update_enabled_tools - First observed
upload_agent_media - First observed
upsert_stage
TDQS
Most tools have distinct purposes, but some overlap exists that could cause confusion. For example, 'configure_agent_tool' and 'update_enabled_tools' both relate to tool management, and 'list_available_tools' vs 'get_tools_catalog' serve similar listing functions. Descriptions help clarify, but an agent might misselect between these pairs.
Naming conventions are mixed, with some tools using verb_noun patterns (e.g., 'create_agent', 'list_agents') and others using noun_verb or more descriptive phrases (e.g., 'associate_knowledge_to_agent', 'example_agent'). There's also inconsistency in language, with some tools in Spanish and others in English, which adds to the lack of a predictable pattern.
With 30 tools, the count feels excessive for an agent management server, leading to potential overwhelm and redundancy. While the domain is broad, many tools could be consolidated (e.g., multiple listing tools), making the set feel heavy and less focused than ideal for efficient agent use.
The tool set provides comprehensive coverage for agent lifecycle management, including creation, configuration, publishing, and version control. It also handles knowledge bases, templates, and media. Minor gaps might exist in advanced analytics or bulk operations, but core workflows are well-supported with no dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Build and manage AI-native customer support agents from Claude or any MCP client.
Give any MCP-compatible AI assistant a builder for live, hosted web tools and workflows.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables management of Mistral AI agents through MCP tools including creating, listing, searching, viewing details, and deleting agents. Integrates with Mistral API to provide agent management capabilities through natural language interactions.1-
- AlicenseNot gradedqualityDmaintenanceEnables MCP-compatible clients to interact with deployed Agent5ive agents as tools. Allows users to query agent purposes and send messages to leverage Agent5ive capabilities through natural language.77MIT
- AlicenseNot gradedqualityNot gradedmaintenanceExposes LangChain and Anthropic Claude capabilities as tools for generating production-ready RAG systems, Supabase vector stores, and document ingestion pipelines. It enables users to instantly scaffold AI infrastructure and document processing code through natural language prompts in MCP-compatible clients.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents with persistent, multi-layer memory, multi-agent collaboration rooms, and video generation, all accessible via MCP tools.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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