About Barkme Mcp Server
Barkme is an MCP server that sends iOS push notifications through the Bark service. Its single `notify` tool supports device aliases, asynchronous delivery, and notification updates or deletion.
Key features
- 01Single `notify` tool
- 02Configurable device aliases
- 03Background asynchronous delivery
- 04Update or delete notifications
- 05Bark API parameters including encryption
Use cases
- 01Sending alerts to selected iOS devices
- 02Choosing urgency and notification details
- 03Updating or removing a sent notification
MCP support
The MCP server exposes Bark push notifications through a single `notify` tool, including sending, updating, and deleting notifications.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEBarkme MCP Server
A Model Context Protocol (MCP) server that provides iOS push notifications through the Bark service. Send notifications directly from Claude conversations with a simple, intelligent interface.
Features
- Single Tool Interface: One
notifytool handles all notification scenarios - Device Aliases: Use friendly configurable aliases like "iPhone:key1", "macOS:key2" instead of exposing device keys to AI
- Async-First: Non-blocking notifications with background delivery and structured logging
- Complete Bark API Support: All 20+ parameters including encrypted messages and notification management
- Update/Delete Notifications: Modify or remove previously sent notifications using notification IDs
Quick Start
Prerequisites
- Node.js 20+
- A Bark device key from the iOS app (setup tutorial)
- A MCP Client like Claude Desktop or Claude Code
via npmjs
Claude Desktop Integration
Add to your Claude Desktop configuration file:
- macOS/Linux:
~/.config/claude-desktop/claude_desktop_config.json - Windows:
%AppData%\Claude\claude_desktop_config.json
{
"mcpServers": {
"barkme": {
"command": "npx",
"args": ["@vibeworks/barkme-mcp-server"],
"env": {
"LOG_LEVEL": "info",
"BARK_DEVICES": "iPhone:<your key>",
"BARK_SERVER": "https://api.day.app",
"BARK_GROUP": "Claude",
"BARK_RETRY": "2",
"BARK_ASYNC": "true"
}
}
}
}
Restart Claude Desktop after adding the configuration. The Barkme server will appear in the MCP tools section.
via Smithery
To install barkme-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @vibeworks/barkme-mcp-server --client claude
From source
git clone https://github.com/thevibeworks/barkme-mcp-server
cd barkme-mcp-server
npm install
npm run build
{
"mcpServers": {
"barkme": {
"command": "node",
"args": ["/absolute/path/to/barkme-mcp-server/dist/index.js"],
"env": {
...
}
}
}
}
Usage Examples
Ask Claude:
- "Send me a notification saying 'Hello World'"
- "Send a notification to my iPhone and iPad saying 'Meeting in 10 minutes'"
- "Send a critical alert about server maintenance"
- "Update the notification with ID 'deploy-123' to say 'Deployment completed'"
Tool Reference
notify
Send push notifications to iOS devices via Bark service.
Key Parameters:
| Parameter | Type | Description |
|---|---|---|
message | string | Main notification text |
title | string | Bold title above message |
level | enum | Urgency: passive, active, timeSensitive, critical |
targets | array | Device aliases (e.g., ["iPhone", "iPad"]) |
icon | URL | Custom icon image |
url | URL | Link to open when tapped |
id | string | For updating/deleting notifications |
delete | boolean | Delete notification (requires id) |
Response Format:
Sending notification - queued for background delivery
To: `iPhone`, `iPad`
Level: timeSensitive
Delivery status will be logged to console:
2025-07-29T15:26:17.123Z [INFO] Notification delivered to iPhone in 0.234s
2025-07-29T15:26:17.145Z [INFO] Notification delivered to iPad in 0.267s
Environment Variables
| Variable | Default | Description |
|---|---|---|
BARK_DEVICES | - | Required: Device keys: key1,key2 or aliases: iPhone:key1,iPad:key2 |
BARK_DEFAULT_DEVICE | First device | Default device alias for fallback |
BARK_SERVER | https://api.day.app | Bark server URL |
BARK_GROUP | Bark MCP Server | Default notification group |
BARK_SOUND | - | Default notification sound |
BARK_ICON | - | Default icon URL |
BARK_LEVEL | - | Default urgency level |
BARK_VOLUME | - | Default volume (0-10) |
BARK_RETRY | 1 | Retry count on failure (0-10) |
BARK_ASYNC | true | Async mode: true (fire-and-forget) or false (blocking) |
LOG_LEVEL | info | Logging level: debug, info, warn, error |
Development
Project Structure
barkme-mcp-server/
├── src/
│ ├── index.ts # Main MCP server implementation
│ └── logger.ts # Simple structured logging
├── dist/
│ ├── index.js # Compiled executable
│ ├── logger.js # Compiled logger
│ └── *.d.ts # Type definitions
├── references/ # Reference materials
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── CLAUDE.md # Development guide
└── README.md # This file
Build Commands
npm run build # Compile TypeScript
npm run watch # Watch mode for development
npm start # Run the compiled server
License
MIT
Related Projects
- Bark - The original iOS notification service
- barkme-tools - Original shell script implementation
- Model Context Protocol - The MCP specification
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.