Barkme MCP Server
Enables sending iOS push notifications through the Bark service directly from Claude conversations. Supports device aliases, all Bark API parameters, and async delivery.
README
Barkme 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.