An intelligent chat interface for Grafana that leverages Large Language Models (LLMs) to provide interactive assistance with monitoring, observability, and system analysis.
- Install the plugin (see Installation)
- Restart Grafana
- Navigate to Apps > AI Chat Assistant
- Configure LLM provider in Administration > Plugins > LLM App
- Start a new chat conversation
- Interactive AI Chat: Real-time streaming conversations with AI assistants
- LLM Integration: Works with OpenAI, Azure OpenAI, and other LLM providers via Grafana's LLM service
- MCP Tool Integration: Automatic tool calling with Model Context Protocol servers
- Real-time tool execution tracking and status indicators
- Support for multiple MCP servers
- Ability to cancel long-running tool operations
- Multi-Session Management: Create, switch, rename, and delete chat sessions
- Backend Persistence: Database (PostgreSQL, SQLite) or file-based storage with per-user isolation and configurable limits
- Rich Message Display: Markdown rendering with syntax-highlighted code blocks
- Configurable Settings: System prompts, session limits, and MCP toggle
- Grafana >= 10.4.0 with the LLM App plugin installed and configured
- LLM Service Configuration: API keys for OpenAI, Azure OpenAI, or other supported providers
- Optional: MCP Client plugin for enhanced tool capabilities
Installation via grafana-cli will be available once published to the Grafana plugin catalog.
grafana-cli plugins install cisco-aichat-app- Download the latest release from GitHub
- Extract to your Grafana plugins directory
- Restart Grafana
Mount the plugin directory and configure in your deployment:
volumes:
- ./plugins/cisco-aichat-app:/var/lib/grafana/plugins/cisco-aichat-app
environment:
- GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=cisco-aichat-appPrerequisites:
- Go >= 1.24.1
- Node.js >= 18
git clone <repository-url>
cd cisco-aichat-app
npm install
npm run build
./scripts/build.shVia Provisioning (Recommended):
# grafana/provisioning/plugins/apps.yaml
- type: grafana-llm-app
orgId: 1
enabled: true
jsonData:
openAIConfig:
provider: "openai"
model: "gpt-4"
secureJsonData:
openai_apiKey: "${OPENAI_API_KEY}"Via UI:
- Navigate to Administration > Plugins > LLM App
- Configure provider settings and API key
- Test connection
Access via the gear icon in chat:
- System Prompt: Customize AI assistant behavior
- Max Sessions: Sessions per user (default: 10)
- Max Messages: Messages per session (default: 100)
- MCP Integration: Enable/disable tool calling
# Development build with watch mode
npm run dev
# Production build
npm run build
# Run tests
npm run test
# Run linter
npm run lint# Build for current platform
go build -o dist/gpx_cisco-aichat-app ./pkg
# Build for Linux/ARM64 (containers)
GOOS=linux GOARCH=arm64 go build -o dist/gpx_cisco-aichat-app ./pkgSee MULTIPLATFORM-BUILD.md for multi-platform options.
- Frontend (TypeScript/React): Chat interface, session management, settings
- Backend (Go): REST API for persistence and session management
- LLM Integration: Via
@grafana/llmlibrary - MCP Integration: Optional integration with MCP Client plugin
- Session lifecycle API (CRUD operations)
- Storage: PostgreSQL, SQLite, file-based, or in-memory (auto-detected from environment)
- Rate limiting (10 req/sec, burst 20)
- Input validation and XSS protection
- Health check endpoints
- Verify LLM service is configured in Administration > Plugins > LLM App
- Check API keys are valid with sufficient quota
- Check browser console (F12) for errors
- Ensure plugin is installed and Grafana restarted
- Check Grafana logs for loading errors
- Verify plugin signing configuration
- Install and configure MCP Client plugin separately
- Ensure MCP servers are running and accessible
- Verify MCP servers are enabled in configuration
- API Keys: Stored securely in Grafana configuration, supports environment variables
- Chat History: Per-user isolated storage with path traversal protection
- Access Control: Integrates with Grafana permissions
- Rate Limiting: Per-user limits prevent abuse
- Input Validation: XSS protection on all inputs
- Data Privacy: No data sent outside configured LLM provider
See docs/API.md for backend endpoint documentation.
See CONTRIBUTING.md for development setup and guidelines.
