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
```
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues