MCP server talking to Bark notification server for iOS
Project description
bark-mcp
A Model Context Protocol (MCP) server that connects to Bark, a notification server for iOS. This allows LLM applications to send notifications to iOS devices through the MCP standard.
Features
- Simple MCP server implementation using FastMCP
- Single tool:
notifyto send notifications to iOS devices - Configurable via environment variables
- Easy to use command-line interface
Installation
# Install from PyPI
pip install bark-mcp
# Or install from source
git clone https://github.com/yourusername/bark-mcp.git
cd bark-mcp
pip install -e .
Configuration
The server requires the following environment variables:
BARK_SERVER_URL: URL of the Bark server (e.g.,https://api.day.app)BARK_API_KEY: Your Bark API key/device key
You can set these variables in your environment or create a .env file:
BARK_SERVER_URL=https://api.day.app
BARK_API_KEY=your_api_key_here
Bark API Format
The server uses the Bark API with the following URL formats:
GET /{bark-key}/{title}/{content}?url={url}(when title and URL are provided)GET /{bark-key}/{title}/{content}(when only title is provided)GET /{bark-key}/{content}(when only content is provided)
Usage
Command Line
Start the MCP server using either of these commands:
# Using the standard command (after installing the package)
bark-mcp
# Using uvx (runs without installing the package)
uvx bark-mcp
Both commands support the same options:
# Specify a .env file
bark-mcp --env-file /path/to/.env
# or
uvx bark-mcp --env-file /path/to/.env
# Enable debug logging
bark-mcp --debug
# or
uvx bark-mcp --debug
Note:
uvxis a command from theuvpackage manager that runs Python tools in temporary, isolated environments without installing them permanently. Install it withpip install uv.Important: Make sure to use
uvx bark-mcpwith a hyphen, notuvx bark_mcpwith an underscore. The command name must match the entry point defined in the package.
Using with MCP Clients
The server provides a single tool:
notify: Send a notification to an iOS device- Parameters:
title(optional): Title of the notificationcontent(required): Content of the notificationurl(optional): URL to open when the notification is tapped
- Parameters:
Example usage in an MCP client:
# This would be handled by the MCP client
result = await call_tool("notify", {
"title": "Hello from MCP",
"content": "This is a notification sent via MCP",
"url": "https://example.com"
})
Development
Prerequisites
- Python 3.8+
- FastMCP
- Requests
- Python-dotenv
Running Tests
# TODO: Add testing instructions
Troubleshooting
Command Not Found
If you see an error like:
The executable `bark_mcp` was not found.
warning: An executable named `bark_mcp` is not provided by package `bark-mcp`.
Make sure you're using the correct command name: bark-mcp with a hyphen, not bark_mcp with an underscore.
Environment Variables Not Set
If you see errors about missing environment variables:
BARK_SERVER_URL environment variable is required
Make sure to:
- Create a
.envfile based on the.env.exampletemplate - Set the required environment variables in your shell or use the
--env-fileoption
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bark_mcp-0.1.1.tar.gz.
File metadata
- Download URL: bark_mcp-0.1.1.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3356767cc1dbc8d15e7d2a41b1e4a09cbe9ad0f62396351a2c9ff3f25b3f9c31
|
|
| MD5 |
1173e3faa757e515f0e2a7a586076c15
|
|
| BLAKE2b-256 |
e43a5f14f0b9985f7bf460f1ec12749e06ff9fbc953f27fe0bbb4ec01e2b6ffd
|
File details
Details for the file bark_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bark_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2103f56f032be2d8bace990a3337e21889df17ee9d5f56b8e44e8a2583352064
|
|
| MD5 |
bb20f707de501bcc7d75929744090c59
|
|
| BLAKE2b-256 |
215b019d9e2f275ad426b90670835001297cf520f87bee501dd0de254fda6705
|