Custom AI Toolsets
Custom AI Toolsets let you define organization-scoped tools and skills that the OpenObserve AI agent loads into its set of available capabilities, so the SRE Agent and AI Assistant can act on systems and knowledge specific to your environment.
Enterprise feature.
Overview
The OpenObserve AI agent ships with a built-in set of tools for querying and reasoning over your observability data. Custom AI Toolsets extend that set with capabilities you define yourself, scoped to a single organization.
A toolset is a named configuration that the agent loads at request time. Depending on its kind, a toolset can connect the agent to a remote Model Context Protocol (MCP) server, allow it to run an approved command-line tool, teach it a reusable skill written in Markdown, or supply a generic JSON configuration. When you start a chat session or trigger a root-cause analysis (RCA), OpenObserve loads the organization's toolsets and passes them to the agent alongside the request.
Custom AI Toolsets are managed from the OpenObserve UI and through a REST API. Each toolset's configuration is encrypted at rest using per-organization envelope encryption, and access is controlled through role-based access control (RBAC).
Toolset kinds
Every toolset has a kind that determines how the agent uses it and what its configuration (data) contains. OpenObserve supports four kinds.
| Kind | Purpose | Configuration (data) |
|---|---|---|
mcp |
Connect the agent to a remote Model Context Protocol server that exposes additional tools. | MCP endpoint URL, request headers, and a request timeout. |
cli |
Allow the agent to run an approved command-line tool. | Command, allowed subcommands, environment variables, credential files, and a confirmation requirement before execution. |
skill |
Teach the agent a reusable skill or procedure. | A Markdown skill definition. |
generic |
Supply an arbitrary configuration for the agent to consume. | A free-form JSON object. |
The configuration for each kind is stored in the toolset's data field as a kind-specific JSON payload. A toolset whose kind needs no configuration can omit data.
MCP toolsets
An mcp toolset points the agent at a remote MCP server. The agent connects to the server's endpoint and makes the tools that the server exposes available during a session. Configure the MCP endpoint URL, any request headers the server requires (for example, an authorization header), and a timeout for requests to the server.
CLI toolsets
A cli toolset lets the agent run a specific command-line tool. To keep execution constrained, you define which command may run, the subcommands that are allowed, environment variables to pass, and any credential files the command needs. You can also require confirmation, so the agent must obtain user approval before the command runs.
Skill toolsets
A skill toolset provides a skill definition written in Markdown. Use it to capture a reusable procedure, runbook, or domain knowledge that the agent should follow.
Generic toolsets
A generic toolset holds a free-form JSON configuration. Use it when the agent expects a configuration shape that does not match the other kinds.
Managing toolsets
Manage toolsets from the OpenObserve UI under Management > AI Toolsets.
Create a toolset
- Go to Management > AI Toolsets.
- Click Create.
- Enter a Name for the toolset. The name must be unique within the organization.
- Select the Kind:
mcp,cli,skill, orgeneric. - Optionally enter a Description.
- Fill in the kind-specific configuration. See Toolset kinds for the fields each kind expects.
- Click Save.
Edit a toolset
- Go to Management > AI Toolsets.
- Select the toolset you want to change.
- Update the description or configuration. When you provide new configuration data, it fully replaces the existing configuration.
- Click Save.
Delete a toolset
- Go to Management > AI Toolsets.
- Select the toolset you want to remove.
- Click Delete and confirm. Deletion is permanent.
How toolsets are used
When a request reaches the AI agent through a chat session or an RCA trigger, OpenObserve loads the organization's toolsets and includes them with the request to the SRE Agent. The agent then has those tools available while it works on the request. This means changes you make to an organization's toolsets apply to subsequent agent requests for that organization.
API reference
Custom AI Toolsets are available through a REST API. All endpoints are scoped to an organization by org_id and require enterprise deployments. The RBAC resource for these endpoints is ai_toolsets.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/{org_id}/ai/toolsets |
List toolsets for the organization. |
POST |
/api/{org_id}/ai/toolsets |
Create a toolset. |
GET |
/api/{org_id}/ai/toolsets/{id} |
Get a single toolset by id. |
PUT |
/api/{org_id}/ai/toolsets/{id} |
Update a toolset's description and/or configuration. |
DELETE |
/api/{org_id}/ai/toolsets/{id} |
Delete a toolset. |
Toolset fields
| Field | Type | Description |
|---|---|---|
id |
String | The toolset's identifier (a 27-character KSUID), generated on create. |
name |
String | Unique name within the organization. |
kind |
String | One of mcp, cli, skill, or generic. |
description |
String | Optional description. |
data |
JSON | Kind-specific configuration. Omitted when no configuration is needed. |
created_by |
String | The user who created the toolset. |
created_at |
Int | Creation time, in microseconds. |
updated_at |
Int | Last update time, in microseconds. |
List query parameters
The list endpoint accepts the following optional query parameters:
| Parameter | Description |
|---|---|
name |
Case-insensitive substring filter on the toolset name. |
kind |
Exact filter on the kind: mcp, cli, skill, or generic. |
limit |
Maximum number of results to return. |
Create a toolset
Send a POST request with the toolset's name, kind, optional description, and kind-specific data:
curl -X POST "https://<your-openobserve-host>/api/{org_id}/ai/toolsets" \
-H "Authorization: Basic <base64_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "incident-runbook",
"kind": "skill",
"description": "Runbook the agent follows during incidents",
"data": { "content": "# Incident runbook\n..." }
}'
On success, the API returns the created toolset, including its generated id. Creating a toolset whose name already exists in the organization returns a 409 Conflict.
Notes
- Encryption at rest: A toolset's
dataconfiguration is encrypted at rest using per-organization envelope encryption. OpenObserve auto-provisions a per-organization data encryption key (DEK) and uses it to encrypt and decrypt toolset configuration transparently, so configuration values such as MCP headers and CLI credentials are not stored in plaintext. - RBAC: Access to the toolset API and UI is governed by the
ai_toolsetsRBAC resource. Grant the appropriate permissions on this resource to users who need to view or manage toolsets. - Uniqueness: Toolset names must be unique within an organization.
- Updates replace configuration: When you update a toolset and provide new
data, it fully replaces the existing configuration rather than merging with it.