Notification MCP Server
An MCP (Model Context Protocol) server for sending notifications via SendGrid (email) and Pushover (push notifications).
Features
- Email via SendGrid: Send plain text and HTML emails
- Push Notifications via Pushover: Send to mobile devices with priority levels, custom sounds, and URL attachments
- User Validation: Validate Pushover user/group keys before sending
Installation
# Using uv (recommended)
uv pip install notification-mcp-server
# Using pip
pip install notification-mcp-server
Configuration
Set the following environment variables:
SendGrid (Email)
SENDGRID_API_KEY- Your SendGrid API key (required for email)SENDGRID_FROM_EMAIL- Default sender email addressSENDGRID_FROM_NAME- Default sender name (optional)
Pushover (Push Notifications)
PUSHOVER_TOKEN- Your Pushover application token (required for push)PUSHOVER_USER- Default Pushover user/group key
General
NOTIFICATION_TIMEOUT- Request timeout in seconds (default: 30)
Usage
As a standalone server (stdio)
notification-mcp-server
With HTTP transport
notification-mcp-server --transport streamable-http --port 8000
MCP Configuration
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"notification": {
"command": "notification-mcp-server",
"env": {
"SENDGRID_API_KEY": "your-sendgrid-api-key",
"SENDGRID_FROM_EMAIL": "noreply@yourdomain.com",
"PUSHOVER_TOKEN": "your-pushover-token",
"PUSHOVER_USER": "your-pushover-user-key"
}
}
}
}
Or with uvx:
{
"mcpServers": {
"notification": {
"command": "uvx",
"args": ["notification-mcp-server"],
"env": {
"SENDGRID_API_KEY": "your-sendgrid-api-key",
"SENDGRID_FROM_EMAIL": "noreply@yourdomain.com",
"PUSHOVER_TOKEN": "your-pushover-token",
"PUSHOVER_USER": "your-pushover-user-key"
}
}
}
}
Available Tools
send_email
Send an email via SendGrid.
Parameters:
to(required): Recipient email addresssubject(required): Email subject linebody(required): Plain text email bodyhtml_body(optional): HTML email bodyfrom_email(optional): Override sender emailfrom_name(optional): Override sender name
Example:
send_email(
to="user@example.com",
subject="Meeting Reminder",
body="Don't forget our meeting at 3pm.",
html_body="<p>Don't forget our meeting at <b>3pm</b>.</p>"
)
send_push
Send a push notification via Pushover.
Parameters:
title(required): Notification titlemessage(required): Notification message bodyuser_key(optional): Pushover user/group key (uses default if not provided)priority(optional): -2 to 2 (default: 0)- -2: Lowest (no sound/vibration)
- -1: Low (quiet hours respected)
- 0: Normal
- 1: High (bypasses quiet hours)
- 2: Emergency (requires acknowledgment)
url(optional): URL to include with messageurl_title(optional): Title for the URLsound(optional): Notification sounddevice(optional): Specific device name
Example:
send_push(
title="Server Alert",
message="CPU usage exceeded 90%",
priority=1,
sound="siren"
)
validate_pushover_user
Validate a Pushover user or group key.
Parameters:
user_key(required): User or group key to validatedevice(optional): Device name to validate
Example:
validate_pushover_user(user_key="uQiRzpo4DXghDmr9QZgGZN27UU9JDR")
Development
# Clone the repository
git clone https://github.com/yourusername/notification-mcp-server.git
cd notification-mcp-server
# Install dependencies with uv
uv sync
# Run tests
uv run pytest
# Run linting
uv run ruff check .
License
MIT
Metadata
Release files for notification-mcp-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| notification_mcp_server-0.1.0.tar.gz | 8.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| notification_mcp_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.0 kB
Release files / notification_mcp_server-0.1.0.tar.gz
| Download URL | notification_mcp_server-0.1.0.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40efe259159cedfb03f5ffcbb6a74fb81a0a9888b8415db18697c5758a0953f0
|
|
BLAKE2b-256 checksum How to use checksums |
1946756fdcd52626c236aa0e005a15546114de63f71ff6a9b4e31392ccc677b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / notification_mcp_server-0.1.0-py3-none-any.whl
| Download URL | notification_mcp_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a5feb61b48fbac282e241d38d94804156f11d1ca192b77f0a4188f00c51afde5
|
|
BLAKE2b-256 checksum How to use checksums |
55f8f1ad1d453d78813825f577d1956eb62f394d724065034044f07bbf9baa14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|