Jon's Pushover MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jon's Pushover MCP Serversend a notification that says 'Meeting starts in 5 minutes' with title 'Team Standup'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Yes | Application API token from https://pushover.net/apps |
| 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-pushoverClaude 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-pushoverAvailable Tools
send_notification
Send a push notification to your devices.
Parameter | Type | Required | Default | Description |
| string | Yes | - | The notification message body |
| string | No | App name | Title shown at top of notification |
| string | No | - | URL to include (tappable in notification) |
| string | No | - | Label for the URL |
| integer | No | 0 | Priority: -2 (silent) to 2 (emergency) |
| 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_successCode Quality
# Type check
uv run mypy src/jons_mcp_pushover
# Format code
uv run black src tests
# Lint code
uv run ruff check src testsProject 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 fileAdding New Tools
Create a new file in
src/jons_mcp_pushover/tools/or add to an existing fileWrite 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}"Export from
src/jons_mcp_pushover/tools/__init__.pyRegister in
server.pywithmcp.tool(my_tool)
License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
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