Kibana MCP Server

Model Context Protocol (MCP) server for Kibana Security - manage alerts, rules, and exceptions via AI assistants.
Quick Start
1. Clone and Build
git clone https://github.com/ggilligan12/kibana-mcp.git
cd kibana-mcp
docker build -t kibana-mcp .
2. Configure MCP Client
Add to your MCP client config (Claude Desktop, Cursor, etc.):
Option A: Using Environment Variables (Recommended)
First, set your credentials:
export KIBANA_URL="https://your-kibana.example.com:5601"
# Option 1: API Key (recommended)
export KIBANA_API_KEY="your_base64_api_key"
# Option 2: Username/Password
# export KIBANA_USERNAME="your_username"
# export KIBANA_PASSWORD="your_password"
Then add to your MCP config:
{
"mcpServers": {
"kibana-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "KIBANA_URL", "-e", "KIBANA_API_KEY", "kibana-mcp"]
}
}
}
For username/password, use:
{
"mcpServers": {
"kibana-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "KIBANA_URL", "-e", "KIBANA_USERNAME", "-e", "KIBANA_PASSWORD", "kibana-mcp"]
}
}
}
Option B: Direct Credentials (Easier for Claude Desktop)
Using API Key:
{
"mcpServers": {
"kibana-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm", "--network", "host",
"-e", "KIBANA_URL=https://your-kibana.example.com:5601",
"-e", "KIBANA_API_KEY=your_base64_api_key",
"kibana-mcp"
]
}
}
}
Using Username/Password:
{
"mcpServers": {
"kibana-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm", "--network", "host",
"-e", "KIBANA_URL=https://your-kibana.example.com:5601",
"-e", "KIBANA_USERNAME=your_username",
"-e", "KIBANA_PASSWORD=your_password",
"kibana-mcp"
]
}
}
}
Note: Option B is less secure but more convenient for tools like Claude Desktop where environment variables are harder to manage.
Available Tools
get_alerts- Fetch security alertstag_alert- Add tags to alertsadjust_alert_status- Change alert status (open/acknowledged/closed)find_rules- Search detection rulesget_rule_exceptions- Get rule exception itemsadd_rule_exception_items- Add exceptions to rulescreate_exception_list- Create new exception listsassociate_shared_exception_list- Link exception lists to rules
Local Development
# Install dependencies
uv sync
# Set environment variables (see above)
# Run locally
uv run kibana-mcp
Test Environment
# Start local Kibana/Elasticsearch with test data
pip install -r testing/requirements-dev.txt
./testing/quickstart-test-env.sh
# Access at http://localhost:5601 (elastic/elastic)
Recommend MCP Servers 💡
unsplash-mcp-server
An MCP server that provides tools for interacting with the Unsplash API to search for and download photos.

apify/rag-web-browser
A web browser for AI agents and RAG pipelines that queries Google Search, scrapes web pages, and returns content as Markdown for LLM processing, supporting Model Context Protocol (MCP) via SSE.
@descope-sample-apps/descope-mcp-server
Provides an interface to interact with Descope's Management APIs, enabling search and retrieval of project-related information.
edubase
Enables LLMs to interact with EduBase's comprehensive e-learning platform via the Model Context Protocol.
pinecone-assistant
An MCP server for Pinecone Assistant, enabling AI agents and applications to retrieve context snippets and integrate with Pinecone's vector database capabilities.
gosset-ai/mcps
A collection of MCP servers for biomedical research offering access to PubMed, BioRxiv/MedRxiv, ClinicalTrials.gov, DrugBank, and OpenTargets databases.