Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KIBANA_URLNoKibana base URL the server connects to. Can also be set as KIBANA_MCP_KIBANA_URL.http://localhost:5601
KIBANA_API_KEYNostdio mode: the API key used for every request. HTTP mode: ignored unless KIBANA_MCP_ALLOW_ENV_KEY_HTTP=true — each caller sends their own key. Can also be set as KIBANA_MCP_KIBANA_API_KEY.
KIBANA_MCP_TIERNoMax tool tier to register: read, write, or destructive.write
KIBANA_PUBLIC_URLNoURL used to build human-clickable dashboard links, if different from the URL the server itself reaches Kibana on (e.g. behind a proxy). Defaults to KIBANA_URL. Can also be set as KIBANA_MCP_KIBANA_PUBLIC_URL.
KIBANA_MCP_TOOLBOXESNoComma-separated list of toolboxes to register.dashboards,data-management
KIBANA_MCP_EXPORT_DIRNo

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_dashboardsA

Search dashboards by title/description. Empty query lists all.

space targets a Kibana space by id (default: the default space).

get_dashboardA

Get a dashboard summary: title, description, and its panels.

space targets a Kibana space by id (default: the default space).

search_visualizationsA

Search library visualizations (from create_visualization) by title. Empty query lists all.

space targets a Kibana space by id (default: the default space).

get_visualizationB

Get a library visualization: title, chart type, data view, metrics, group_by and filter query.

space targets a Kibana space by id (default: the default space).

create_dashboardA

Create a dashboard from one or more visualization specs. Idempotent: creating with the same title (case-insensitive, whitespace/punctuation-normalized) updates that dashboard instead of duplicating it, replacing its panels (filters, query, tags and display options are preserved); the return's status is created or replaced. Call describe_data_view first to learn real field names.

space targets a Kibana space by id (default: the default space).

create_visualizationB

Create a reusable visualization in the library (not on a dashboard).

space targets a Kibana space by id (default: the default space).

update_visualizationA

Replace a library visualization with a new spec; its id stays the same. Dashboards that show it through add_library_panel change too; panels added with add_panel or create_dashboard are separate copies and do not.

space targets a Kibana space by id (default: the default space).

add_library_panelA

Show a library visualization on an existing dashboard. The panel is linked, not copied: update_visualization changes it on every dashboard.

space targets a Kibana space by id (default: the default space).

add_panelB

Add a visualization panel to an existing dashboard.

space targets a Kibana space by id (default: the default space).

add_esql_metric_panelA

Add an ES|QL metric panel to an existing dashboard: run an ES|QL query and show one of its output columns as a single-number metric. esql is the query (e.g. 'FROM logs | STATS total = COUNT(*)') and column names the output column to display (e.g. 'total'). For field-based charts use add_panel with a VizSpec instead. The query is NOT validated server-side — a wrong query or column yields an empty panel, so write both carefully.

space targets a Kibana space by id (default: the default space).

add_esql_table_panelA

Add an ES|QL table panel to an existing dashboard: show a query's output columns as a table. columns are the grouping/dimension columns — one table row per distinct value (e.g. ["status"]); metric_columns are the numeric value columns shown per row (e.g. ["count"]). esql is the query. It is NOT validated server-side — a wrong query or column name yields an empty panel, so write them carefully. For field-based charts use add_panel with a VizSpec.

space targets a Kibana space by id (default: the default space).

add_esql_xy_panelA

Add an ES|QL bar/line/area panel to an existing dashboard: x_column on the x axis, each of y_columns a plotted series, and an optional breakdown_column to split each series. esql is the query. It is NOT validated server-side — a wrong query or column name yields an empty panel. For field-based charts use add_panel with a VizSpec.

space targets a Kibana space by id (default: the default space).

update_panelA

Replace the visualization at panel_index (see get_dashboard for indexes).

space targets a Kibana space by id (default: the default space).

list_data_viewsA

List Kibana data views (the datasets you can visualize).

space targets a Kibana space by id (default: the default space).

describe_data_viewA

Get a data view's fields and types. Call this before creating a visualization so you use real field names.

space targets a Kibana space by id (default: the default space).

resolve_short_urlA

Resolve a Kibana short-URL slug to its locator and target app path. (Short URLs are a Technical-Preview API.)

space targets a Kibana space by id (default: the default space).

export_saved_objectsA

Export saved objects (dashboards, data views, …) as an NDJSON file on the server, and return a summary + an opaque handle — NOT the content — that you pass to import_saved_objects. Select EITHER types (e.g. ["dashboard"], or ["*"] for the whole space) OR objects (a list of {"type":…, "id":…}), not both. This is a sensitive export surface; what can actually be read is bounded by the API key's privileges, not by this tool.

space targets a Kibana space by id (default: the default space).

import_saved_objectsA

Import a previously-exported set of saved objects, identified by the handle returned from export_saved_objects, as NEW copies (regenerated ids — a clone into the current space, not an in-place restore). Existing objects are never touched. Returns which objects were created (source id -> new destination id). A missing/expired handle errors. To restore in place instead, use overwrite_saved_objects (destructive). A handle carries no space — importing it with space="b" clones its content into b (new ids), regardless of which space it was exported from.

space targets a Kibana space by id (default: the default space).

create_data_viewA

Create a Kibana data view over an index pattern (e.g. 'logs-*'). Optionally set a display name and a time field (for time-series data). The time field must be a date field of the indices the pattern matches: a field they do not have, or one that is not a date, is refused with the pattern's date fields listed, and no data view is created. A pattern that matches no index yet is accepted, but its time field cannot be checked. The name (it defaults to the index pattern) must be unused; to change an existing view, call update_data_view.

space targets a Kibana space by id (default: the default space).

update_data_viewA

Edit an existing data view in place, by id (from list_data_views): its display name, its index_pattern (e.g. 'logs-*') and/or its default time_field. Only the fields you pass change. The time field must be a date field of the view: when you change the index pattern, the time field (the one you pass, or the current one) is checked against the NEW pattern's fields, and on a mismatch nothing changes. A pattern that matches no index yet is accepted, but its time field cannot be checked (field_count is then 0). A name that defaulted to the old pattern stays as it is; pass name to change it too. The time field cannot be removed. Dashboard panels built by this server keep the pattern and time field they were built with; rebuild one with update_panel to use the new ones. Returns id, name, index_pattern, time_field and field_count.

space targets a Kibana space by id (default: the default space).

create_short_urlA

Create a Kibana short URL. Supports locator_id='LEGACY_SHORT_URL_LOCATOR' with params={'url': '/app/...'} (a Kibana app path). (Technical-Preview API.) A slug created in a space resolves under /s/<space>/goto/<slug> and via resolve_short_url(slug, space=…). When space is set, pass the app path WITHOUT a /s/<space> prefix — the space parameter chooses the space, not the path. A /s/<id>-prefixed path passed without space creates the slug in the default space.

space targets a Kibana space by id (default: the default space).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
user-guideFull getting-started guide: setup, first dashboard, safety rails.
toolsTool reference: tiers, inputs, return shapes, error behavior.
troubleshootingThe user guide's Troubleshooting section, extracted.

TDQS

A3.7/5.0

Scored across 21 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but add_panel and add_library_panel overlap (both add a visualization to a dashboard), and the three add_esql_*_panel tools could be seen as variants of one operation. Their descriptions do help clarify the intended use cases.

Naming Consistency5/5

All tools use snake_case with a predictable verb_noun pattern (add_*, create_*, update_*, get_*, search_*, list_*, describe_*, export_*, import_*, resolve_*). There are no mixed conventions or inconsistent verb styles.

Tool Count3/5

21 tools is heavy for this surface; the three ES|QL panel tools and separate export/import saved-object tools add niche operations that could be consolidated. While each tool has a purpose, the set is over-segmented relative to typical scoped MCP servers.

Completeness3/5

Core create/read/update workflows exist for dashboards, visualizations, data views, and panels, but deletion is entirely absent (no delete_dashboard, delete_visualization, delete_data_view, delete_panel, delete_saved_objects). There is also no explicit update_dashboard by id, leaving lifecycle gaps.

Maintenance

ActivityActive
ResponsivenessNo issues