Tools
The AI MCP Server exposes a set of tools that Robi AI can invoke to interact with Universal Controller. These tools are used by the Robi AI Assistant during conversations.
By default, all tools are allowed for the AI Assistant. This allows Robi AI to utilize its full set of capabilities while assisting you.
It is possible to disallow specific tools in application.yml, but be aware that doing so will limit the functionality of Robi AI. We recommend leaving all tools whitelisted unless you have a specific reason to disable one.
The AI Analyze feature uses a subset of the available tools by default. Again, it is possible to disable any of these tools, but we do not recommend doing so. It is also possible to whitelist more tools for AI Analyze, but this is not recommended either. The AI Analyze tools are intentionally limited to keep its functionality focused on task instance analysis.
All Tools
The tables below list all available tools, organized by category.
By default, all tools are allowed for the AI Assistant. The column on the right indicates if the tool is allowed by default for AI Analyze.
Task Tools
Tools for managing Task definitions: listing, retrieving details, launching, and auditing.
| Tool | Description | Allowed for AI Analyze |
|---|---|---|
launch_task | Launch a task by exact task definition name. Returns a taskInstanceId for tracking the execution. | |
list_tasks | List task definitions with optional filtering. Supports wildcards (*, ?) in taskName. | |
get_task | Get full details of a specific task definition by ID or exact name. For workflows, includes graph information (edges and vertices). | |
get_task_audit | Get Audit records showing all configuration changes made to a task definition. Audit information returned by this tool may be limited based on a user's roles. | |
get_task_schema | Get an example JSON template for a specific task type from the UC OpenAPI specification. |
Task Instance Tools
Tools for managing Task Instances (runtime executions): retrieving details, listing, updating, rerunning, and retrieving output.
| Tool | Description | Allowed for AI Analyze |
|---|---|---|
get_task_instance | Get full details of a specific task instance, including all properties, execution details, status, status history, and optionally, any output from the current attempt if includeOutput=true. | |
get_workflow_instance | Get workflow instance information, including base task instance details. | |
get_task_instance_dependencies | Get dependencies of a task instance. Shows which tasks or conditions it is waiting for. | |
update_task_instance_fields | Update task instance fields using a JSON object matching the get_task_instance output format. | |
rerun_task_instance | Rerun a task instance after fixing its command or when retry is needed. | |
retrieve_task_instance_output | Actively retrieve task instance output from the agent. Use when get_task_instance with includeOutput=true returns empty output for agent-based tasks. | |
get_task_instance_universal_template | Get Universal Template information for a Universal task instance, including fields, output mapping, exit codes, and optionally scripts or extension source code. | |
list_task_instances_by_name | List task instances by instance name. Supports wildcards (*, ?). | |
list_task_instances_by_task_name | List task instances created from a specific task definition by exact task name. | |
list_task_instances_by_task_id | List task instances created from a specific task definition by task definition sysId. | |
list_task_instances_by_workflow_instance_name | List task instances within a specific workflow instance by workflow instance name. | |
list_task_instances_by_workflow_instance_id | List task instances within a specific workflow instance by workflow instance sysId. | |
list_task_instances_by_top_level_workflow_instance_id | List all task instances across an entire workflow hierarchy (including nested sub-workflows) in a single call. | |
get_task_instance_audit | Get Audit records for a specific task instance showing user actions and system operations on that instance. Audit information returned by this tool may be limited based on a user's roles. | |
list_task_instance_variables | List variables associated with a task instance. | |
update_task_instance_variable | Update a variable value for a specific task instance. |
Trigger Tools
Tools for listing and retrieving Trigger definitions.
| Tool | Description | Allowed for AI Analyze |
|---|---|---|
list_triggers | List triggers with optional filtering. Supports wildcards (*, ?) in triggerName. | |
get_trigger | Get full details of a specific trigger definition by ID or exact name. |
Agent Tools
Tools for managing Agents and Agent Clusters.
| Tool | Description | Allowed for AI Analyze |
|---|---|---|
list_universal_agents | List Universal Agents with optional filtering by name, type, and status. | |
get_universal_agent | Get details of a specific Universal Agent by exact name or ID. | |
list_agent_clusters | List Agent Clusters with optional filtering. Supports wildcards (*, ?). | |
get_agent_cluster | Get details of a specific agent cluster by exact ID or name. |
Script Tools
Tools for managing Scripts: retrieving, updating content, and auditing.
| Tool | Description | Allowed for AI Analyze |
|---|---|---|
get_script | Get details of a specific Script by ID or name, including content, type, and configuration. | |
update_script_content | Update the content of a Script by name without changing other script properties. | |
get_script_audit | Get Audit records for a Script showing all changes. Audit information returned by this tool may be limited based on a user's roles. |
Variable Tools
Tools for managing Global Variables.
| Tool | Description | Allowed for AI Analyze |
|---|---|---|
get_global_variable | Get a global variable by name. Global variables are system-wide and apply to all tasks unless overridden. | |
update_global_variable | Update a global variable value. Affects all task instances unless overridden at task or workflow level. |
Other Tools
Tools which do not manage Controller records.
| Tool | Description | Allowed for AI Analyze |
|---|---|---|
search_documentation | Search the documentation if the user prompt is a request for product knowledge, or information from the docs is needed to perform an analysis. Unlike all other tools, |
Configuring Tools
Both the AI Assistant and AI Analyze features support a configurable tool whitelist, which you can use to restrict which tools are available to each service. When a whitelist is configured, only the listed tools will be exposed to the AI.
This provides administrators with fine-grained control over what operations the AI is permitted to perform. This is an advanced configuration option. We generally recommend against disabling tools, as this can diminish the effectiveness of the AI Assistant and AI Analyze features. However, you may want to customize tool availability in some scenarios, such as:
- Restricting write operations (e.g., remove
update_*andrerun_*tools) for read-only deployments - Limiting tool access based on security or compliance requirements
- Gradually rolling out new tools by adding them to the whitelist as they are validated
You can configure the tool whitelist in application.yml. The default (recommended) configuration is given below:
stonebranch:
ai:
# Tool access control - defines which tools are available in each mode
# Use wildcard "*" to allow all tools, or specify a list of tool names
#
# Environment variable override (comma-separated):
# export STONEBRANCH_AI_TOOLS_CHAT_ALLOWED="*"
# export STONEBRANCH_AI_TOOLS_ANALYZE_ALLOWED="get_task_instance,update_task_instance_command,search_documentation"
#
# Spring Boot relaxed binding converts comma-separated env vars to List<String>
# Environment variables override the YAML defaults below
tools:
chat-allowed:
- "*"
analyze-allowed:
- get_task_instance
- get_workflow_instance
- get_task_instance_dependencies
- list_task_instances_by_workflow_instance_id
- list_task_instances_by_top_level_workflow_instance_id
- update_task_instance_fields
- rerun_task_instance
- retrieve_task_instance_output
- get_task_instance_universal_template
- get_task_instance_audit
- list_task_instance_variables
- update_task_instance_variable
- get_global_variable
- update_global_variable
- get_task_audit
- get_script_audit
- get_universal_agent
- list_universal_agents
- get_agent_cluster
- list_agent_clusters
- get_task
- get_script
- update_script_content
- search_documentation