Skip to main content

MCP server for sending notifications via SendGrid email and Pushover push notifications

Project description

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 address
  • SENDGRID_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 address
  • subject (required): Email subject line
  • body (required): Plain text email body
  • html_body (optional): HTML email body
  • from_email (optional): Override sender email
  • from_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 title
  • message (required): Notification message body
  • user_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 message
  • url_title (optional): Title for the URL
  • sound (optional): Notification sound
  • device (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 validate
  • device (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

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

notification_mcp_server-0.1.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

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

notification_mcp_server-0.1.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file notification_mcp_server-0.1.0.tar.gz.

File metadata

File hashes

Hashes for notification_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 40efe259159cedfb03f5ffcbb6a74fb81a0a9888b8415db18697c5758a0953f0
MD5 42c573c1134e65860b3c2139157bc519
BLAKE2b-256 1946756fdcd52626c236aa0e005a15546114de63f71ff6a9b4e31392ccc677b0

See more details on using hashes here.

File details

Details for the file notification_mcp_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for notification_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a5feb61b48fbac282e241d38d94804156f11d1ca192b77f0a4188f00c51afde5
MD5 2aec8588ec83b2bd469f83a10255a865
BLAKE2b-256 55f8f1ad1d453d78813825f577d1956eb62f394d724065034044f07bbf9baa14

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