OpenObserve · Capability
openobserve — Dashboards
openobserve — Dashboards. 15 operations. Lead operation: List organization dashboards. Self-contained Naftiko capability covering one Openobserve business surface.
What You Can Do
GET
Listdashboards
— List organization dashboards
/v1/api/{org-id}/dashboards
POST
Createdashboard
— Create new dashboard
/v1/api/{org-id}/dashboards
PATCH
Movedashboards
— Move multiple dashboards
/v1/api/{org-id}/dashboards/move
GET
Getdashboard
— Get dashboard details
/v1/api/{org-id}/dashboards/{dashboard-id}
PUT
Updatedashboard
— Update existing dashboard
/v1/api/{org-id}/dashboards/{dashboard-id}
DELETE
Deletedashboard
— Delete dashboard
/v1/api/{org-id}/dashboards/{dashboard-id}
GET
Getannotations
— Get timed annotations for dashboard
/v1/api/{org-id}/dashboards/{dashboard-id}/annotations
POST
Createannotations
— Create timed annotations for dashboard
/v1/api/{org-id}/dashboards/{dashboard-id}/annotations
DELETE
Deleteannotations
— Delete timed annotations from dashboard
/v1/api/{org-id}/dashboards/{dashboard-id}/annotations
DELETE
Removetimedannotationfrompanel
— Remove timed annotation from panel
/v1/api/{org-id}/dashboards/{dashboard-id}/annotations/panels/{timed-annotation-id}
PUT
Updateannotations
— Update timed annotation
/v1/api/{org-id}/dashboards/{dashboard-id}/annotations/{timed-annotation-id}
POST
Addpanel
— Add a panel to a dashboard
/v1/api/{org-id}/dashboards/{dashboard-id}/panels
PUT
Updatepanel
— Update a single panel in a dashboard
/v1/api/{org-id}/dashboards/{dashboard-id}/panels/{panel-id}
DELETE
Deletepanel
— Delete a single panel from a dashboard
/v1/api/{org-id}/dashboards/{dashboard-id}/panels/{panel-id}
PUT
Movedashboard
— Move dashboard to folder
/v1/api/{org-id}/folders/dashboards/{dashboard-id}
MCP Tools
list-organization-dashboards
List organization dashboards
read-only
idempotent
create-new-dashboard
Create new dashboard
move-multiple-dashboards
Move multiple dashboards
idempotent
get-dashboard-details
Get dashboard details
read-only
idempotent
update-existing-dashboard
Update existing dashboard
idempotent
delete-dashboard
Delete dashboard
idempotent
get-timed-annotations-dashboard
Get timed annotations for dashboard
read-only
idempotent
create-timed-annotations-dashboard
Create timed annotations for dashboard
delete-timed-annotations-dashboard
Delete timed annotations from dashboard
idempotent
remove-timed-annotation-panel
Remove timed annotation from panel
idempotent
update-timed-annotation
Update timed annotation
idempotent
add-panel-dashboard
Add a panel to a dashboard
update-single-panel-dashboard
Update a single panel in a dashboard
idempotent
delete-single-panel-dashboard
Delete a single panel from a dashboard
idempotent
move-dashboard-folder
Move dashboard to folder
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: openobserve — Dashboards
description: 'openobserve — Dashboards. 15 operations. Lead operation: List organization dashboards. Self-contained Naftiko
capability covering one Openobserve business surface.'
tags:
- Openobserve
- Dashboards
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
OPENOBSERVE_API_KEY: OPENOBSERVE_API_KEY
capability:
consumes:
- type: http
namespace: openobserve-dashboards
baseUri: ''
description: openobserve — Dashboards business capability. Self-contained, no shared references.
resources:
- name: api-org_id-dashboards
path: /api/{org_id}/dashboards
operations:
- name: listdashboards
method: GET
description: List organization dashboards
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: folder
in: query
type: string
description: Optional folder ID filter parameter
- name: title
in: query
type: string
description: The optional case-insensitive title substring with which to filter
- name: pageSize
in: query
type: integer
description: The optional number of dashboards to retrieve. If not set then all
- name: createdashboard
method: POST
description: Create new dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: folder
in: query
type: string
description: Folder ID where the dashboard will be created. Used for RBAC checks in enterprise version. Defaults
to 'default' if not specified
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-org_id-dashboards-move
path: /api/{org_id}/dashboards/move
operations:
- name: movedashboards
method: PATCH
description: Move multiple dashboards
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-org_id-dashboards-dashboard_id
path: /api/{org_id}/dashboards/{dashboard_id}
operations:
- name: getdashboard
method: GET
description: Get dashboard details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: dashboard_id
in: path
type: string
description: Dashboard ID
required: true
- name: folder
in: query
type: string
description: Folder ID where the dashboard is located. Used for RBAC permission checks in enterprise version
- name: updatedashboard
method: PUT
description: Update existing dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: dashboard_id
in: path
type: string
description: Dashboard ID
required: true
- name: folder
in: query
type: string
description: Folder ID where the dashboard is located
required: true
- name: hash
in: query
type: string
description: Hash value for conflict detection. Required when updating an existing dashboard to prevent concurrent
edit conflicts
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deletedashboard
method: DELETE
description: Delete dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: dashboard_id
in: path
type: string
description: Dashboard ID
required: true
- name: folder
in: query
type: string
description: Folder ID where the dashboard is located. Used for RBAC permission checks in enterprise version
- name: api-org_id-dashboards-dashboard_id-annotations
path: /api/{org_id}/dashboards/{dashboard_id}/annotations
operations:
- name: getannotations
method: GET
description: Get timed annotations for dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: panels
in: query
type: string
description: Commas separated list of panels
- name: start_time
in: query
type: integer
description: Time in microseconds
required: true
- name: end_time
in: query
type: integer
description: Time in microseconds
required: true
- name: org_id
in: path
type: string
required: true
- name: dashboard_id
in: path
type: string
required: true
- name: createannotations
method: POST
description: Create timed annotations for dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
required: true
- name: dashboard_id
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deleteannotations
method: DELETE
description: Delete timed annotations from dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
required: true
- name: dashboard_id
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-org_id-dashboards-dashboard_id-annotations-panels-timed_annotation_id
path: /api/{org_id}/dashboards/{dashboard_id}/annotations/panels/{timed_annotation_id}
operations:
- name: removetimedannotationfrompanel
method: DELETE
description: Remove timed annotation from panel
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
required: true
- name: dashboard_id
in: path
type: string
required: true
- name: timed_annotation_id
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-org_id-dashboards-dashboard_id-annotations-timed_annotation_id
path: /api/{org_id}/dashboards/{dashboard_id}/annotations/{timed_annotation_id}
operations:
- name: updateannotations
method: PUT
description: Update timed annotation
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
required: true
- name: dashboard_id
in: path
type: string
required: true
- name: timed_annotation_id
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-org_id-dashboards-dashboard_id-panels
path: /api/{org_id}/dashboards/{dashboard_id}/panels
operations:
- name: addpanel
method: POST
description: Add a panel to a dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: dashboard_id
in: path
type: string
description: Dashboard ID
required: true
- name: folder
in: query
type: string
description: Folder ID where the dashboard is located
- name: hash
in: query
type: string
description: Hash value for conflict detection
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-org_id-dashboards-dashboard_id-panels-panel_id
path: /api/{org_id}/dashboards/{dashboard_id}/panels/{panel_id}
operations:
- name: updatepanel
method: PUT
description: Update a single panel in a dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: dashboard_id
in: path
type: string
description: Dashboard ID
required: true
- name: panel_id
in: path
type: string
description: Panel ID
required: true
- name: folder
in: query
type: string
description: Folder ID where the dashboard is located
- name: hash
in: query
type: string
description: Hash value for conflict detection
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deletepanel
method: DELETE
description: Delete a single panel from a dashboard
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: dashboard_id
in: path
type: string
description: Dashboard ID
required: true
- name: panel_id
in: path
type: string
description: Panel ID
required: true
- name: folder
in: query
type: string
description: Folder ID where the dashboard is located
- name: hash
in: query
type: string
description: Hash value for conflict detection
required: true
- name: tabId
in: query
type: string
description: Tab ID to search for the panel
- name: api-org_id-folders-dashboards-dashboard_id
path: /api/{org_id}/folders/dashboards/{dashboard_id}
operations:
- name: movedashboard
method: PUT
description: Move dashboard to folder
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: org_id
in: path
type: string
description: Organization name
required: true
- name: dashboard_id
in: path
type: string
description: Dashboard ID
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
authentication:
type: apikey
key: Authorization
value: '{{env.OPENOBSERVE_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: openobserve-dashboards-rest
port: 8080
description: REST adapter for openobserve — Dashboards. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/api/{org-id}/dashboards
name: api-org-id-dashboards
description: REST surface for api-org_id-dashboards.
operations:
- method: GET
name: listdashboards
description: List organization dashboards
call: openobserve-dashboards.listdashboards
with:
org_id: rest.org_id
folder: rest.folder
title: rest.title
pageSize: rest.pageSize
outputParameters:
- type: object
mapping: $.
- method: POST
name: createdashboard
description: Create new dashboard
call: openobserve-dashboards.createdashboard
with:
org_id: rest.org_id
folder: rest.folder
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/{org-id}/dashboards/move
name: api-org-id-dashboards-move
description: REST surface for api-org_id-dashboards-move.
operations:
- method: PATCH
name: movedashboards
description: Move multiple dashboards
call: openobserve-dashboards.movedashboards
with:
org_id: rest.org_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/{org-id}/dashboards/{dashboard-id}
name: api-org-id-dashboards-dashboard-id
description: REST surface for api-org_id-dashboards-dashboard_id.
operations:
- method: GET
name: getdashboard
description: Get dashboard details
call: openobserve-dashboards.getdashboard
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
folder: rest.folder
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updatedashboard
description: Update existing dashboard
call: openobserve-dashboards.updatedashboard
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
folder: rest.folder
hash: rest.hash
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletedashboard
description: Delete dashboard
call: openobserve-dashboards.deletedashboard
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
folder: rest.folder
outputParameters:
- type: object
mapping: $.
- path: /v1/api/{org-id}/dashboards/{dashboard-id}/annotations
name: api-org-id-dashboards-dashboard-id-annotations
description: REST surface for api-org_id-dashboards-dashboard_id-annotations.
operations:
- method: GET
name: getannotations
description: Get timed annotations for dashboard
call: openobserve-dashboards.getannotations
with:
panels: rest.panels
start_time: rest.start_time
end_time: rest.end_time
org_id: rest.org_id
dashboard_id: rest.dashboard_id
outputParameters:
- type: object
mapping: $.
- method: POST
name: createannotations
description: Create timed annotations for dashboard
call: openobserve-dashboards.createannotations
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteannotations
description: Delete timed annotations from dashboard
call: openobserve-dashboards.deleteannotations
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/{org-id}/dashboards/{dashboard-id}/annotations/panels/{timed-annotation-id}
name: api-org-id-dashboards-dashboard-id-annotations-panels-timed-annotation-id
description: REST surface for api-org_id-dashboards-dashboard_id-annotations-panels-timed_annotation_id.
operations:
- method: DELETE
name: removetimedannotationfrompanel
description: Remove timed annotation from panel
call: openobserve-dashboards.removetimedannotationfrompanel
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
timed_annotation_id: rest.timed_annotation_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/{org-id}/dashboards/{dashboard-id}/annotations/{timed-annotation-id}
name: api-org-id-dashboards-dashboard-id-annotations-timed-annotation-id
description: REST surface for api-org_id-dashboards-dashboard_id-annotations-timed_annotation_id.
operations:
- method: PUT
name: updateannotations
description: Update timed annotation
call: openobserve-dashboards.updateannotations
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
timed_annotation_id: rest.timed_annotation_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/{org-id}/dashboards/{dashboard-id}/panels
name: api-org-id-dashboards-dashboard-id-panels
description: REST surface for api-org_id-dashboards-dashboard_id-panels.
operations:
- method: POST
name: addpanel
description: Add a panel to a dashboard
call: openobserve-dashboards.addpanel
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
folder: rest.folder
hash: rest.hash
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/{org-id}/dashboards/{dashboard-id}/panels/{panel-id}
name: api-org-id-dashboards-dashboard-id-panels-panel-id
description: REST surface for api-org_id-dashboards-dashboard_id-panels-panel_id.
operations:
- method: PUT
name: updatepanel
description: Update a single panel in a dashboard
call: openobserve-dashboards.updatepanel
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
panel_id: rest.panel_id
folder: rest.folder
hash: rest.hash
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletepanel
description: Delete a single panel from a dashboard
call: openobserve-dashboards.deletepanel
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
panel_id: rest.panel_id
folder: rest.folder
hash: rest.hash
tabId: rest.tabId
outputParameters:
- type: object
mapping: $.
- path: /v1/api/{org-id}/folders/dashboards/{dashboard-id}
name: api-org-id-folders-dashboards-dashboard-id
description: REST surface for api-org_id-folders-dashboards-dashboard_id.
operations:
- method: PUT
name: movedashboard
description: Move dashboard to folder
call: openobserve-dashboards.movedashboard
with:
org_id: rest.org_id
dashboard_id: rest.dashboard_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: openobserve-dashboards-mcp
port: 9090
transport: http
description: MCP adapter for openobserve — Dashboards. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: list-organization-dashboards
description: List organization dashboards
hints:
readOnly: true
destructive: false
idempotent: true
call: openobserve-dashboards.listdashboards
with:
org_id: tools.org_id
folder: tools.folder
title: tools.title
pageSize: tools.pageSize
outputParameters:
- type: object
mapping: $.
- name: create-new-dashboard
description: Create new dashboard
hints:
readOnly: false
destructive: false
idempotent: false
call: openobserve-dashboards.createdashboard
with:
org_id: tools.org_id
folder: tools.folder
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: move-multiple-dashboards
description: Move multiple dashboards
hints:
readOnly: false
destructive: false
idempotent: true
call: openobserve-dashboards.movedashboards
with:
org_id: tools.org_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-dashboard-details
description: Get dashboard details
hints:
readOnly: true
destructive: false
idempotent: true
call: openobserve-dashboards.getdashboard
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
folder: tools.folder
outputParameters:
- type: object
mapping: $.
- name: update-existing-dashboard
description: Update existing dashboard
hints:
readOnly: false
destructive: false
idempotent: true
call: openobserve-dashboards.updatedashboard
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
folder: tools.folder
hash: tools.hash
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-dashboard
description: Delete dashboard
hints:
readOnly: false
destructive: true
idempotent: true
call: openobserve-dashboards.deletedashboard
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
folder: tools.folder
outputParameters:
- type: object
mapping: $.
- name: get-timed-annotations-dashboard
description: Get timed annotations for dashboard
hints:
readOnly: true
destructive: false
idempotent: true
call: openobserve-dashboards.getannotations
with:
panels: tools.panels
start_time: tools.start_time
end_time: tools.end_time
org_id: tools.org_id
dashboard_id: tools.dashboard_id
outputParameters:
- type: object
mapping: $.
- name: create-timed-annotations-dashboard
description: Create timed annotations for dashboard
hints:
readOnly: false
destructive: false
idempotent: false
call: openobserve-dashboards.createannotations
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-timed-annotations-dashboard
description: Delete timed annotations from dashboard
hints:
readOnly: false
destructive: true
idempotent: true
call: openobserve-dashboards.deleteannotations
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: remove-timed-annotation-panel
description: Remove timed annotation from panel
hints:
readOnly: false
destructive: true
idempotent: true
call: openobserve-dashboards.removetimedannotationfrompanel
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
timed_annotation_id: tools.timed_annotation_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: update-timed-annotation
description: Update timed annotation
hints:
readOnly: false
destructive: false
idempotent: true
call: openobserve-dashboards.updateannotations
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
timed_annotation_id: tools.timed_annotation_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: add-panel-dashboard
description: Add a panel to a dashboard
hints:
readOnly: false
destructive: false
idempotent: false
call: openobserve-dashboards.addpanel
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
folder: tools.folder
hash: tools.hash
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: update-single-panel-dashboard
description: Update a single panel in a dashboard
hints:
readOnly: false
destructive: false
idempotent: true
call: openobserve-dashboards.updatepanel
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
panel_id: tools.panel_id
folder: tools.folder
hash: tools.hash
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-single-panel-dashboard
description: Delete a single panel from a dashboard
hints:
readOnly: false
destructive: true
idempotent: true
call: openobserve-dashboards.deletepanel
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
panel_id: tools.panel_id
folder: tools.folder
hash: tools.hash
tabId: tools.tabId
outputParameters:
- type: object
mapping: $.
- name: move-dashboard-folder
description: Move dashboard to folder
hints:
readOnly: false
destructive: false
idempotent: true
call: openobserve-dashboards.movedashboard
with:
org_id: tools.org_id
dashboard_id: tools.dashboard_id
body: tools.body
outputParameters:
- type: object
mapping: $.