Skip to main content

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: notify to 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: uvx is a command from the uv package manager that runs Python tools in temporary, isolated environments without installing them permanently. Install it with pip install uv.

Important: Make sure to use uvx bark-mcp with a hyphen, not uvx bark_mcp with 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 notification
      • content (required): Content of the notification
      • url (optional): URL to open when the notification is tapped

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:

  1. Create a .env file based on the .env.example template
  2. Set the required environment variables in your shell or use the --env-file option

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bark_mcp-0.1.1.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bark_mcp-0.1.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

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

Hashes for bark_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3356767cc1dbc8d15e7d2a41b1e4a09cbe9ad0f62396351a2c9ff3f25b3f9c31
MD5 1173e3faa757e515f0e2a7a586076c15
BLAKE2b-256 e43a5f14f0b9985f7bf460f1ec12749e06ff9fbc953f27fe0bbb4ec01e2b6ffd

See more details on using hashes here.

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

Hashes for bark_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2103f56f032be2d8bace990a3337e21889df17ee9d5f56b8e44e8a2583352064
MD5 bb20f707de501bcc7d75929744090c59
BLAKE2b-256 215b019d9e2f275ad426b90670835001297cf520f87bee501dd0de254fda6705

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page