Polybar Notification MCP
This server displays notification popups via Quickshell on Linux with rich customization options.
Core Capabilities:
Display notifications - Show customizable popup notifications with messages, titles, and severity levels (info/warn/crit)
Customize appearance - Control accent colors (via severity or custom hex), background patterns (waves, grid, stripes, sunset), and left panel images (ghost, claude, openai, or custom paths)
Configure behavior - Set auto-hide timeouts (0 for persistent), transition effects (glow, ghost, ripple, none), and actions on backtick keypress (switch workspace or focus app)
Check status - Verify if Quickshell is running with the ohai IPC target registered
Test notifications - Use the bundled CLI tool to test preset notifications or create custom ones
Client integration - Configure for use with Claude, Cursor, or codex-cli via environment variables for default image and transition settings
Setup Quickshell - Launch the popup daemon and verify IPC target registration for communication between the MCP server and Quickshell
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Polybar Notification MCPshow a warning notification saying 'Build failed' with title 'CI Pipeline'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ohai
MCP for displaying Quickshell-based notifications on Linux.
Installation
npm install
npm run buildRelated MCP server: MCP Server Basic Example
Tools
ohai
Display a notification popup.
Parameter | Type | Required | Description |
| string | yes | Message body |
| string | no | Popup title (defaults to message) |
|
| no | Accent color (default: |
| string | no | Custom accent color (CSS/hex; overrides severity) |
| number | no | Auto-hide delay (default: 8; 0 = persistent) |
| string | no | Background pattern ID or path |
| string | no | Image ID or path (default: |
| string | no | Workspace to switch to on backtick |
| string | no | App/window to focus on backtick |
|
| no | Entry transition effect (default: |
ohai_status
Check if Quickshell is running with the ohai IPC target registered.
Transition Effects
Effect | Description |
| Soft blur glow pulse (default) |
| Expanding/fading copies of actual notification content |
| Border ripples emanating outward |
| No transition effect |
Set a default transition via environment variable:
export OHAI_TRANSITION=ghostQuickshell Setup
Start the popup daemon:
qs -p /path/to/ohai-mcp/ohai/shell.qmlVerify the IPC target is registered:
qs ipc show
# Should list: target ohaiTest manually:
qs ipc call ohai notify "Hello" "Test message" "info" 5 "" "" "" "" "" "glow"Controls while popup is visible:
Escape- hide popupBacktick (`) - switch to workspace or focus app (if configured), then hide
Testing with ohai-test
A CLI helper for testing notification appearance:
bin/ohai-test [preset] # Run a preset
bin/ohai-test custom [options] # Custom notificationPresets:
Preset | Description |
| Basic info notification (default) |
| Warning notification |
| Critical notification |
| Long text (test layout) |
| Minimal notification |
| Claude-themed |
| OpenAI-themed |
| Grid pattern background |
| Stripes pattern background |
| Waves pattern background |
| Test glow transition effect |
| Test ghost echo transition effect |
| Test ripple transition effect |
| Cycle through all presets |
Custom options:
bin/ohai-test custom \
-t "Title" \
-b "Body text" \
-s warn \
-i claude \
-p grid-01 \
-d 10 \
-c "#ff00ff" \
-x ghostOption | Description |
| Title text |
| Body text |
|
|
| Image ID or path |
| Pattern ID or path |
| Timeout in seconds |
| Custom accent color (hex) |
| Workspace to switch on backtick |
| App to focus on backtick |
|
|
Bundled Assets
Patterns (background overlays):
waves-01,grid-01,stripes-01,sunset-01
Images (left panel):
ghost(default),claude,openai
Use an absolute path for custom assets.
Integration
Use environment variables to configure defaults per client.
Claude Code
To add via the CLI for user scope:
claude mcp add ohai \
--scope user \
--env OHAI_TRANSITION=glow \
--env OHAI_DEFAULT_IMAGE=claude \
-- node <OHAI_PATH>/bin/ohai-mcp~/.claude.json:
{
"mcpServers": {
"ohai": {
"type": "stdio",
"command": "node",
"args": ["/path/to/ohai-mcp/bin/ohai-mcp"],
"env": {
"OHAI_DEFAULT_IMAGE": "claude",
"OHAI_TRANSITION": "glow"
}
}
}
}Cursor
Add to MCP settings:
{
"mcpServers": {
"ohai": {
"command": "node",
"args": ["/path/to/ohai-mcp/bin/ohai-mcp"],
"env": {
"OHAI_DEFAULT_IMAGE": "claude",
"OHAI_TRANSITION": "ghost"
}
}
}
}codex-cli
~/.codex/config.toml:
[mcp_servers.ohai]
command = "node"
args = ["/path/to/ohai-mcp/bin/ohai-mcp"]
[mcp_servers.ohai.env]
OHAI_DEFAULT_IMAGE = "openai"
OHAI_TRANSITION = "glow"Auto-launch (Hyprland)
exec-once = qs -p /path/to/ohai-mcp/ohai/shell.qmlEnvironment Variables
Variable | Description |
| Default image when |
| Default transition effect (e.g., |
Architecture
┌─────────────┐ qs ipc call ┌─────────────────┐
│ MCP Client │ ──────────────────▶ │ Quickshell │
│ (Claude) │ │ (shell.qml) │
└─────────────┘ └─────────────────┘
│ │
│ │
▼ ▼
┌─────────────┐ ┌─────────────────┐
│ ohai-mcp │ │ IpcHandler │
│ (Node.js) │ │ target: "ohai" │
└─────────────┘ └─────────────────┘The MCP server communicates with Quickshell via its built-in IPC mechanism (qs ipc call), which uses a Unix socket for instant, reliable delivery.
Development
npm run dev # Watch mode
npm run build # Build
npm run lint # Lint
npm run format # FormatRequirements
Linux with Quickshell
Node.js 18+
Credit
Original implementation adapted from neotanx/neomcps - sound notification mcp.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/khughitt/polybar-dunst-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server