Skip to main content
Glama
jonmmease

Jon's Pushover MCP Server

by jonmmease

Jon's Pushover MCP Server

An MCP server for sending push notifications via Pushover.

Requirements

  • Python 3.10+

  • Pushover account with API token and user key

Environment Variables

Variable

Required

Description

PUSHOVER_API_TOKEN

Yes

Application API token from https://pushover.net/apps

PUSHOVER_USER_KEY

Yes

User key from https://pushover.net

Installation

# Clone the repository git clone <your-repo-url> cd jons-mcp-pushover # Install with uv uv pip install -e .

Running the Server

uv run jons-mcp-pushover

Claude Desktop Configuration

Add this to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{ "mcpServers": { "pushover": { "command": "uv", "args": ["run", "--project", "/path/to/jons-mcp-pushover", "jons-mcp-pushover"], "env": { "PUSHOVER_API_TOKEN": "your-api-token-here", "PUSHOVER_USER_KEY": "your-user-key-here" } } } }

Adding to Claude Code

# Register the MCP server with Claude Code claude mcp add jons-mcp-pushover \ -e PUSHOVER_API_TOKEN=your-api-token-here \ -e PUSHOVER_USER_KEY=your-user-key-here \ -- uv run --directory /path/to/jons-mcp-pushover jons-mcp-pushover

Available Tools

send_notification

Send a push notification to your devices.

Parameter

Type

Required

Default

Description

message

string

Yes

-

The notification message body

title

string

No

App name

Title shown at top of notification

url

string

No

-

URL to include (tappable in notification)

url_title

string

No

-

Label for the URL

priority

integer

No

0

Priority: -2 (silent) to 2 (emergency)

sound

string

No

device default

Notification sound name

Example:

send_notification( message="Build completed successfully!", title="CI Pipeline", url="https://github.com/user/repo/actions", url_title="View Build", priority=1, sound="magic" )

Development

Setup

# Install with dev dependencies uv pip install -e ".[dev]"

Running Tests

# Run all tests uv run pytest # Run with coverage uv run pytest --cov=src # Run a specific test uv run pytest tests/test_pushover.py::test_send_notification_success

Code Quality

# Type check uv run mypy src/jons_mcp_pushover # Format code uv run black src tests # Lint code uv run ruff check src tests

Project Structure

jons-mcp-pushover/ ├── src/ │ ├── __init__.py │ └── jons_mcp_pushover/ │ ├── __init__.py # Package exports │ ├── constants.py # Configuration constants │ ├── exceptions.py # Custom exceptions │ ├── utils.py # Utility functions │ ├── server.py # FastMCP server setup │ └── tools/ │ ├── __init__.py # Tool exports │ └── pushover.py # Pushover notification tool ├── tests/ │ ├── conftest.py # Test fixtures │ └── test_pushover.py # Pushover tool tests ├── pyproject.toml # Project configuration ├── CLAUDE.md # AI assistant guidance └── README.md # This file

Adding New Tools

  1. Create a new file in src/jons_mcp_pushover/tools/ or add to an existing file

  2. Write an async function with type hints and a docstring:

    async def my_tool(param: str) -> str: """Brief description for the MCP tool listing. Args: param: What this parameter does. Returns: What the tool returns. """ return f"Result: {param}"
  3. Export from src/jons_mcp_pushover/tools/__init__.py

  4. Register in server.py with mcp.tool(my_tool)

License

MIT

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

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/jonmmease/jons-mcp-pushover'

If you have feedback or need assistance with the MCP directory API, please join our Discord server