Skip to main content
Glama
brienhackney

Kibana Dashboard Builder

by brienhackney
README.md
# Kibana Dashboard Builder — MCP Server

A Model Context Protocol (MCP) server that gives the Elastic Dashboard Architect AI agent
the ability to create Kibana dashboards, Lens visualizations, and data views via the
Kibana Saved Objects API.

## Tools Exposed

| Tool | Description |
|---|---|
| `list_data_views` | List existing Kibana data views |
| `create_data_view` | Create a new data view for an index |
| `list_dashboards` | List existing dashboards |
| `get_dashboard` | Get a dashboard's full definition |
| `create_lens_visualization` | Create a Lens visualization (bar, line, metric, donut, etc.) |
| `create_dashboard` | Assemble visualizations into a dashboard |

## Deploy to Render.com (Free — 5 minutes)

1. **Push this repo to GitHub**
   ```bash
   cd /path/to/kibana-mcp-server
   git init && git add . && git commit -m "Initial commit"
   gh repo create kibana-mcp-server --public --push
   ```

2. **Go to [render.com](https://render.com) → New → Web Service**
   - Connect your GitHub repo
   - Render auto-detects `render.yaml`

3. **Set Environment Variables** in Render dashboard:
   ```
   KIBANA_ENDPOINT        = https://your-cluster.kb.us-east-2.aws.elastic-cloud.com
   ELASTIC_API_KEY        = your-base64-api-key
   ELASTIC_CLOUD_ENDPOINT = https://your-cluster.es.us-east-2.aws.elastic-cloud.com
   ```

4. **Copy your Render URL** (e.g. `https://kibana-mcp-server.onrender.com`)

5. **Update the Kibana MCP connector** to point to your Render URL:
   ```bash
   curl -X PUT "https://your-cluster.kb.../api/actions/connector/YOUR_CONNECTOR_ID" \
     -H "Authorization: ApiKey YOUR_API_KEY" \
     -H "kbn-xsrf: true" \
     -H "Content-Type: application/json" \
     -H "elastic-api-version: 2023-10-31" \
     -d '{
       "name": "Kibana Dashboard Builder",
       "config": {"serverUrl": "https://kibana-mcp-server.onrender.com", "headers": {"Content-Type": "application/json"}},
       "secrets": {}
     }'
   ```

6. **Done.** The Dashboard Architect agent now has a permanent, always-available backend.

## Local Development

```bash
pip install -r requirements.txt
KIBANA_ENDPOINT=https://... ELASTIC_API_KEY=... python main.py
```

## Architecture

```
Dashboard Architect (Kibana AI Agent)
  ↓  calls tools via
Kibana .mcp connector
  ↓  HTTP POST to
THIS SERVER (Render.com — permanent HTTPS URL)
  ↓  calls Kibana Saved Objects API
Kibana → creates dashboard, lens viz, data views
```

Also compatible with Claude Desktop, Cursor, VS Code via:
```
https://your-cluster.kb.../api/agent_builder/mcp
```