A side-by-side look at the Kibana and Maidr MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Kibana for data visualization work as a local process; choose Maidr for data visualization as a local process. You can also run both side by side in one mcpServers block.
KIBANA_URL, KIBANA_API_KEY, KIBANA_USERNAME, KIBANA_PASSWORD, KIBANA_COOKIES.get_status, execute_kb_api, search_kibana_api_paths.show_chart, update_chart, maidr_list_charts.Rows where the two servers differ are marked.
| Spec | M Maidr | |
|---|---|---|
| Category | Data Visualization | Data Visualization |
| Quality signal | 69/100 · Great | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | No auth required |
| Pricing | Free | Free |
| Required env vars | KIBANA_URLKIBANA_API_KEYKIBANA_USERNAMEKIBANA_PASSWORDKIBANA_COOKIES | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 84 | 1 |
| Directory activity | 4 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 16 | 7 |
| Full listing | View Kibana | View Maidr |
get_statusGet Kibana server status with multi-space supportexecute_kb_apiExecute a custom API request for Kibana with multi-space support.
RETRY SAFETY: this tool can reach any write endpoint. A POST retried after a
timeout or dropped response can create a duplicate — prefer a caller-chosen
stable id (or the vl_* tool for that object type, which documents the safe
pattern) over letting the server auto-generate one.search_kibana_api_pathsSearch Kibana API endpoints by keywordlist_all_kibana_api_pathsList all Kibana API endpoints as a resource listget_kibana_api_detailGet details for a specific Kibana API endpointget_available_spacesGet all available Kibana spaces with current contextvl_search_saved_objectsSearch for Kibana saved objects using Elasticsearch query syntax. This is a universal tool that can search across all saved object types (dashboard, visualization, index-pattern, search, config, lens, map, tag, canvas-workpad, canvas-element, etc.). IMPORTANT: You must specify the 'types' parameter - it is required by the Kibana API. PERFORMANCE TIPS: Always use 'fields' parameter to specify only needed fields (e.g., ['title', 'description']) for faster responses. Use 'perPage' 5-20 for optimal speed. PAGINATION: To get all results, make multiple requests with incrementing 'page' numbers (page=1, page=2, etc.) until you receive fewer results than 'perPage'. Don't stop at the first page - iterate through all pages for complete data. Returns formatted saved object information including type, title, description, and timestamps.vl_get_saved_objectGet a single Kibana saved object by type and ID. This is a universal tool that can retrieve any type of saved object (dashboard, visualization, index-pattern, search, config, lens, map, tag, canvas-workpad, canvas-element, etc.) by its exact type and ID. Use this when you know the specific object you want to retrieve. PERFORMANCE: This is much faster than searching when you have the exact type and ID.vl_bulk_delete_saved_objectsBulk delete multiple Kibana saved objects by type and ID. This is a destructive operation that permanently removes saved objects (dashboard, visualization, index-pattern, search, config, lens, map, tag, canvas-workpad, canvas-element, etc.). WARNING: Deleted objects cannot be recovered. Use with caution. IMPORTANT: Objects that exist in multiple namespaces require the 'force' parameter to be deleted.vl_create_saved_objectCreate a new Kibana saved object (dashboard, visualization, index-pattern, search, config, lens, map, tag, canvas-workpad, canvas-element, etc.). This is a universal tool that can create any type of saved object by specifying the type and attributes. Each object type has specific attribute requirements. IMPORTANT: The 'title' field is required for most object types. Complex fields like panelsJSON, visState should be JSON strings.vl_update_saved_objectUpdate a single Kibana saved object by type and ID. This performs a partial update - only the specified attributes will be changed, other attributes remain unchanged. Supports all saved object types (dashboard, visualization, index-pattern, search, config, lens, map, tag, canvas-workpad, canvas-element, etc.). IMPORTANT: Use version parameter for optimistic concurrency control to prevent conflicts.vl_bulk_update_saved_objectsUpdate multiple Kibana saved objects in a single operation. Each object can be of different types and will be partially updated (only specified attributes changed). Supports all saved object types (dashboard, visualization, index-pattern, search, config, lens, map, tag, canvas-workpad, canvas-element, etc.). PERFORMANCE: More efficient than multiple single updates. Each object can have individual version control.show_chartDraws the chart and shows it. Returns the `viewId` the other tools take.update_chartDraws a new chart and puts it in place of the one in that `viewId`'s view. Adds no view. A reader in the chart stays in it, on the new chart; anyone else keeps their focus. Both are told it changed.maidr_list_chartsReturns the chart's layers, point counts, and, while the reader is in the chart, where they are, live. Silent.maidr_get_layer_dataReturns a page of a layer's points, each with the `target` that `maidr_navigate` takes. Silent.maidr_navigateMoves the reader to a point and announces it. With `focus: true`, for a reader who asked to be taken there, maidr first moves their keyboard focus into the chart, and answers `focused: true`, or `focused: false` when it could not, leaving the move to wait for them.maidr_list_commandsReturns the reader's commands, each with its id, title, keys, and whether the model can run it, and the reader's current modes (text, sound, braille, autoplay and more). Silent.maidr_run_commandRuns one of the reader's commands, such as `toggle_braille`, `autoplay_forward` or `go_to_max_value`, as if they had pressed its keys, and announces the result. Commands that open a dialog or text field are the reader's own. With `focus: true`, for a reader who asked for it now, maidr first moves t…Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"kibana": {
"command": "npx",
"args": [
"-y",
"@tocharianou/mcp-server-kibana"
],
"env": {
"KIBANA_URL": "YOUR_KIBANA_URL_HERE",
"KIBANA_API_KEY": "YOUR_KIBANA_API_KEY_HERE",
"KIBANA_USERNAME": "YOUR_KIBANA_USERNAME_HERE",
"KIBANA_PASSWORD": "YOUR_KIBANA_PASSWORD_HERE",
"KIBANA_COOKIES": "YOUR_KIBANA_COOKIES_HERE"
}
}
}
}
{
"mcpServers": {
"maidr": {
"command": "uvx",
"args": [
"maidr-mcp"
]
}
}
}