Kibana AI Agents are powerful conversational AI systems, but they're limited to tools built directly into Kibana. They can't access your local filesystem, run system commands, query external APIs, or use the thousands of tools available through the Model Context Protocol ecosystem.
The AI agent can request tool executions, and the runner picks up those requests, executes them via MCP servers, and returns the results—all without the agent needing direct access to external systems.
This runner creates a "three-way call" between you, the AI agent, and remote tool runners:
sequenceDiagram
participant User as 👤 User
participant Agent as 🤖 Kibana AI Agent
participant Runner as 🏃 Runner
User->>Agent: Ask a question
Agent->>Agent: Needs external tool
Agent->>Runner: Request tool execution
Runner->>Runner: Execute via MCP
Runner->>Agent: Return results
Agent->>User: Answer with insights
Secret Channel: The AI Agent and runner communicate through a secret channel where the runner can poll for requests and the AI Agent can store requests!
MCP Tools: Runners have attached MCP servers for their tools so any MCP tool can be used by the AI agent!
See the Architecture Guide for detailed flow diagrams.
- Python 3.13 or later
- uv for dependency management
- Access to Kibana and Elasticsearch
# Install uv
pip install uv
# Clone and install
git clone https://github.com/strawgate/project-eagle.git
cd project-eagle
uv sync --all-groupsCreate a .env file or set environment variables:
KB_URL=https://your-kibana-instance.com
ES_URL=https://your-elasticsearch-instance.com
API_KEY=your-elasticsearch-api-keyCreate mcp.json to configure your MCP servers:
{
"mcpServers": {
"docker": {
"command": "uvx",
"args": [
"docker-mcp"
]
},
"time": {
"command": "uvx",
"args": ["mcp-server-time"]
}
}
}uv run python -m elastic_agent_builder_runner.mainThe runner will:
- Register itself in Elasticsearch with its hostname
- Publish available MCP tools to Elasticsearch
- Poll Elasticsearch for tool call requests
- Execute tools and store results
- Store results to Elasticsearch
Here is a very simple example demonstrating how the Agent in Kibana interacts with your infrastructure. You can try this out with the provided mcp.json file if you have Docker running on your host:
- Architecture Guide: Detailed technical architecture and implementation details
- Contributing Guide: Development setup and contribution guidelines
- Model Context Protocol - Specification for AI tool integration
- FastMCP - Python MCP framework
- Elastic Agent Builder - Kibana AI Assistant
- MCP Servers - Collection of MCP server implementations
